From: Hoehle, Joerg-C. <Joe...@t-...> - 2004-09-07 07:28:28
|
Hi, >How can this be possible? SP_bound is defined ifndef NO_SP_CHECK, and >is used only if NO_SP_CHECK. > >> spvw.d was compiled as follows: >> ..\utils\gcc-cccp\cccp -U__GNUC__ -+ -D_M_IX86=3D500 = -D_WIN32 >> -I"C:/Programme/Microsoft Visual Studio/VC98"/include = -D_MSC_VER=3D1100 >> -D_INTEGRAL_MAX_BITS=3D64 -DUNICODE -DDYNAMIC_FFI=20 >-DNO_GETTEXT -DNO_SIGSEGV >> -I. spvw.c > spvw.i.c > >NO_SIGSEGV implies !defined(HAVE_STACK_OVERFLOW_RECOVERY) which = implies >NO_SP_CHECK. Can you look (in spvw.i.c) where the unexpected reference >to SP_bound comes from? spvw.d:2564ff #if defined(WIN32_NATIVE) && !defined(NO_SP_CHECK) # Even if the NOCOST_SP_CHECK stack overflow detection = (using a # guard page) works, we set SP_bound. The comment looks like it should have been !defined(NOCOST_SP*) But this is not the branch that's taken. Oh, I see, you forgot to commit spvw.d. BTW, lispbibl.d has the following: #if defined(HAVE_STACK_OVERFLOW_RECOVERY) #define NOCOST_SP_CHECK #else #define NO_SP_CHECK #endif #if !(defined(NO_SP_CHECK) || defined(NOCOST_SP_CHECK)) This branch is now never taken. BTW, it seems to me like a bad idea to have to rely on the OS (or = MS-Windows) or on the SDK editbin program to get an adequate stack = setting, instead of a per-application user-settable variable on startup = of CLISP. On UNIX, one can use ulimit in the shell that starts CLISP, but what on = MS-Windows? What will users running stack intensive applications do? Regards, J=C3=B6rg H=C3=B6hle. Regards, J=C3=B6rg H=C3=B6hle |