[Vm-dev] Building VM on 64-bit machines

Mandeep Gill mandeepg at gmail.com
Sun May 20 11:56:20 UTC 2007


Hi,

I am trying to build the Squeak VM on 64-bit linux with gcc 4.1 but am
having problems with both compiling the sources and running images.
I'm found some information on www.squeakvm.org/squeak64, however I'm
not sure how up to date it is.

I've downloaded the latest sources from the squeak-vm subversion
repository and have tried building it using several different compile
options.

Trying to compile as per the standard instructions succeeds, but I am
not sure what if it compiles a 32 or 64 bit VM. Regardless this VM
crashes using the standard Squeak3.9-final-7067 image with a
segmentation fault.

"16256940 SmalltalkImage>snapshot:andQuit:embedded:
16256824 SmalltalkImage>snapshot:andQuit:
16256396 SmalltalkImage>saveImageInFileNamed:
...
16243080 PasteUpMorph>doOneCycle
15589312 [] in >spawnNewProcess
15589496 [] in BlockContext>newProcess
Aborted (core dumped)"

I found a 64-bit image sq64-10-dtl.image on
http://www.barnet.sk/software/squeak however the VM will not load this
either, giving the error

"This interpreter (vers. 6502) cannot read image file (vers. 68000).
Press CR to quit..."

If I run configure with the options "with-src=src64" or
"with-src=src32" (as I have 32bit compatibility libraries installed)
the compile exits with

"gcc -g -O2 -DLSB_FIRST=1 -o squeak disabledPlugins.o version.o
-Wl,--export-dynamic  vm/vm.a B2DPlugin/B2DPlugin.a
BitBltPlugin/BitBltPlugin.a FilePlugin/FilePlugin.a
SocketPlugin/SocketPlugin.a -lutil -ldl -lm -lnsl vm/vm.a -Wl,--rpath
-Wl,/usr/local/lib
vm/vm.a(sqVirtualMachine.o): In function `sqGetInterpreterProxy':
/home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:202:
undefined reference to `obsoleteDontUseThisFetchWordofObject'
/home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:333:
undefined reference to `fetchLong32ofObject'
/home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:334:
undefined reference to `getThisSessionID'
/home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:335:
undefined reference to `ioFilenamefromStringofLengthresolveAliases'
/home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:336:
undefined reference to `vmEndianness'
collect2: ld returned 1 exit status"

Is anyone running Squeak currently on a 64bit system - what needs to
be done to get a basic VM and image (32 or 64 bit) working?

Many Thanks,
Mandeep


More information about the Vm-dev mailing list