In the Cog/src/vm
running the -E option on gcc shows the NoDbgRegParms NOT being replaced in gcc3x-cointerp.c (along with some warnings that may be relevant, I don't know)
gcc -E gcc3x-cointerp.c -I /home/wm/usr/src/smalltalk/CMake.oscog/Cog/platforms/unix/vm -I /home/wm/usr/src/smalltalk/CMake.oscog/Cog/platforms/Cross/vm/ -I /home/wm/usr/src/smalltalk/CMake.oscog/Cog/build.linux32x86/squeak.cog.v3/build.assert/ -I ./ | cat > ~/gcc3x In file included from /home/wm/usr/src/smalltalk/CMake.oscog/Cog/platforms/Cross/vm/sq.h:18:0, from /home/wm/usr/src/smalltalk/CMake.oscog/Cog/platforms/unix/vm/sqGnu.h:37, from gcc3x-cointerp.c:28: /home/wm/usr/src/smalltalk/CMake.oscog/Cog/platforms/unix/vm/sqConfig.h:12:2: error: #error "LSB_FIRST is undefined. Used for setting platform endianesness!" #error "LSB_FIRST is undefined. Used for setting platform endianesness!" ^ gcc3x-cointerp.c:77:0: warning: "sigsetjmp" redefined [enabled by default] # define sigsetjmp(jb,ssmf) _setjmp(jb) ^ In file included from gcc3x-cointerp.c:26:0: /usr/include/setjmp.h:103:0: note: this is the location of the previous definition # define sigsetjmp(env, savemask) __sigsetjmp (env, savemask) ^
The same command on cogit.c DOES show the replacement.
The question then becomes why is variable replacement happening on the one and not the other.
I have been focusing on the preprocessor logic that sets NoDbgRegParms, but is there something else I may be overlooking?
thx.
tty
vm-dev@lists.squeakfoundation.org