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

Martin Kuball martinkuball at web.de
Mon May 21 19:17:28 UTC 2007


Am Sunday 20 May 2007 schrieb Philippe Marschall:
> 2007/5/20, Mandeep Gill <mandeepg at gmail.com>:
> > 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/sqVirtualMa
> >chine.c:202: undefined reference to
> > `obsoleteDontUseThisFetchWordofObject'
> > /home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMa
> >chine.c:333: undefined reference to `fetchLong32ofObject'
> > /home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMa
> >chine.c:334: undefined reference to `getThisSessionID'
> > /home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMa
> >chine.c:335: undefined reference to
> > `ioFilenamefromStringofLengthresolveAliases'
> > /home/mandeep/dev/tmp/squeak/squeak-svn/platforms/Cross/vm/sqVirtualMa
> >chine.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?
>
> All the people I know running Squeak on 64bit systems (including
> myself) run the 32bit VM in emulation mode.

I'm using a 64bit VM (with a 32bit image) for more than a year now. After 
fixing the bug in sqMemoryAccess.h and a problem with networking I never 
had a problem with the vm.

Building the VM for 32bit images is very easy. Just checkout the sources 
and run configure and make. Worked for me.

Martin




More information about the Vm-dev mailing list