[squeak-dev] Problems building squeak VM (Fedora core 11)

Casimiro de Almeida Barreto casimiro.barreto at gmail.com
Wed Jun 24 02:26:44 UTC 2009


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




More information about the Squeak-dev mailing list