Hello,
I've had problems building VM. Apparently the file $SOURCE_ROOT/platforms/unix/src/vm/debug.c and debug.h were adjusted to handle a Mac OS X problem regarding to dprintf. In file debug.c it is necessary to include stdlib.h to handle abort(). But then, dprintf is polymorphic and is not properly handled:
gcc -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -DSQUEAK_BUILTIN_PLUGIN -I/home/casimiro/Softwares/squeak/squeak-svn-sources/bld -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/Cross/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/src/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/Cross/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/src/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/Cross/plugins/FilePlugin -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/plugins/B3DAcceleratorPlugin -I/home/casimiro/Softwares/squeak/squeak-svn-sources/bld -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/Cross/vm -I/home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/src/vm -c -o debug.o /home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/vm/debug.c In file included from /home/casimiro/Softwares/squeak/squeak-svn-sources/platforms/unix/vm/debug.c:3: /usr/include/stdio.h:399:66: error: macro "dprintf" passed 3 arguments, but takes just 1 make[1]: ** [debug.o] Erro 1 make: ** [vm/vm.a] Erro 2
Problem code at debug.h is:
#if (DEBUG) /* the thing to use here is a variadic macro, but Apple's gcc barfs on ** them when running in precomp mode. did they _really_ have to break ** the preprocessor just to implement precomp? good _grief_. */ extern void __sq_dprintf(const char *fmt, ...); # define dprintf(ARGS) __sq_dprintf ARGS #else # define dprintf(ARGS) ((void)0) #endif
squeak-dev@lists.squeakfoundation.org