Compiling a 64-bit virtual machine
Posted July 24, 2015on:
I just compiled a 64-bit Spur Stack VM and I’m a bit confused, because it works. This is contrary to my experience. I’m jotting down what I did to remind myself.
Download the following:
sudo svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
While doing the following, open up the preferences for the files. I execute “chmod -R 777 directorynamehere” into each thing downloaded.
Put the first three downloads in a single directory called StackSpurBuild. Put the src directory aside for a moment. We’re only ransacking it for parts.
Go to spurstack64src and delete the examplePlugins.ext and examplePlugins.int files.
Go to the src directory you downloaded and drag the plugins directory, examplePlugins.ext and examplePlugins.int into spurstack64src. You can now move the src directory into the trash.
Open examplePlugins.ext and delete the BochsIA32Plugin line. You’re not building a simulator.
Go to /build.linux32x86/squeak.stack.spur/build/mvm and open it up. We need to make some changes.
Go down to the “test -f config.h” line. Ensure that you have the following:
Those two flags should now gibe with the directory dragging we’ve been doing.
Drag the /squeak.stack.spur/build directory onto the Terminal. Use Ctrl+A to go to the front of that line, write “cd” and execute, so we are in that directory. It’s our current directory. At this point its a good idea to have the /squeak.stack.spur/build directory open on your desktop, so you can see the explosion of directories on the left, while configure and compilation details scroll in the Terminal on the right of the screen.
Execute “sudo ./mvm”. Give your password and say yes to a “clean build”.
Wait. If all goes well you have a new directory in StackSpurBuild called /products. It has a /stkspur64linuxht/squeak script you can drag on to a Terminal to start an image. The actual binary is deeper in the directories at /stkspur64linuxht/lib/squeak/5.0-3411/squeak.
The image to run on this is at http://mirandabanda.org/files/Cog/SpurImages/
You need trunk46-spur-64.image and trunk46-spur-64.changes. You’ll also need a SqueakV41.sources file. You can get one at http://ftp.squeak.org/4.5/
This was on an Ubuntu 15.04 systemd laptop.
Dependencies for compiling an 64-bit vm ought to be less noisome than for 32-bit. It’s been a while since I loaded this laptop but I added some of the following to compile 32-bit vms. Are any of these necessary? I don’t remember.
apt-get install lib32z1-dev -y # install 32-bit libs
apt-get install libsm-dev:i386 # for Squeak vm
apt-get install libglu1-mesa:i386 # X11 for Squeak
apt-get install uuid-dev:i386 # for Squeak vm
apt-get install mesa-common-dev:i386 # add gl.h
Naturally, these do need to be 64-bit related. And I do know you need uuid-dev. That’s important. This is the official HowToBuild document. It’s 32-bit centric.