Building a VM: the adventure continues

Ross Boylan ross at biostat.ucsf.edu
Sun Aug 21 02:13:55 UTC 2005


This time I tried building with the 2 patches David Lewis supplied.
This time I got through all the steps in squeak/VMMaker to make the
sources.  As soon as I tried to build them the build failed.

My system has gone to gcc 4.0 as the default compiler, and I suspect it
is being stricter than 3.3, which I was using before.  On the other
hand, there was some speculation that the problems were caused by gcc,
so a newer version might help there.

0. get current svn sources, which are now v 1242
1. base Squeak3.8-665
2. load VMMaker-tpr.37. save.
3. load JMMGCMonitor.4.cs. save.
4. VMM38-gc-instrument-image.1.cs. save.
5. VMM38-64bit-imageUpdates.1.cs. save.
6. open VMMaker. make all internal plugins.
   leave "64 bit VM?" unchecked!
   save vmmaker.config from VMMaker.
7. generate entire

Then I applied the two patches provided by David in his July 24 message:
$ patch platforms/Cross/vm/sqMemoryAccess.h sqMemoryAccess.h.diff
patching file platforms/Cross/vm/sqMemoryAccess.h
$ patch platforms/unix/vm/sqUnixExternalPrims.c sqUnixExternalPrims.c.diff
patching file platforms/unix/vm/sqUnixExternalPrims.c

(I used patches rather than the whole files he supplied in case there had been subsequent changes).

ross at iron:/usr/local/src/squeak$ mkdir bld
ross at iron:/usr/local/src/squeak$ cd bld
ross at iron:/usr/local/src/squeak/bld$ ../platforms/unix/config/configure --prefix=/usr/local/src/playpen
and finally, make.  Here's a sampling of the log

/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:25:3: warning: #warning 
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:26:3: warning: #warning ***************************************************
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:27:3: warning: #warning *
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:28:3: warning: #warning * interp.h not found -- defaulting to a 32-bit VM
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:29:3: warning: #warning *
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:30:3: warning: #warning * update your image-side VM sources to the latest
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:31:3: warning: #warning * version to avoid this message
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:32:3: warning: #warning *
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:33:3: warning: #warning ***************************************************
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:34:3: warning: #warning 
gnu-interp.c:12:1: warning: "byteAt" redefined
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:116:1: warning: this is the location of the previous definition
gnu-interp.c:13:1: warning: "byteAtput" redefined
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:117:1: warning: this is the location of the previous definition
gnu-interp.c:14:1: warning: "longAt" redefined
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:122:1: warning: this is the location of the previous definition
gnu-interp.c:15:1: warning: "longAtput" redefined
/usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:123:1: warning: this is the location of the previous definition
gnu-interp.c:738: error: syntax error before 'const'
gnu-interp.c:739: warning: initialization makes integer from pointer without a cast
[many like that]

This is probably what stopped it:
gnu-interp.c:738: error: syntax error before 'const'

The offending line is
fptr const primitiveTable[] = {


I'm doing this on a faster machine now, so I can get nowhere with much greater speed :)

I'm guessing I'm still suffering from version mismatch.

Ross Boylan






More information about the Squeak-dev mailing list