After some help from vatic and Craig on IRC, I am able to build something broken
On Sun, Aug 26, 2007 at 03:18:39PM -0700, Matthew Fulmer wrote:
I have been unable to deduce the steps required to build Flow.so under linux. There are guides [1] [2], but ran into problems following each one, such as configure barfing on an empty build directory, where to put the source, whether VMMaker is needed, and whether generated or raw source is required to build Flow.so. So, here is what I am doing. It does not work:
- Download the 3.9-8 VM source code: http://squeakvm.org/unix/release/Squeak-3.9-8.src.tar.gz
- Unzip it to /home/tapple/squeak/vm
- Download the 2a5 Flow source code: http://netjam.org/flow2a5.tar.gz
- Unzip it to /home/tapple/squeak/vm/platforms/Cross/plugins/FlowPlugin
4.1. Download the Flow build files: http://netjam.org/flow2aPrimitiveSources.zip 4.2. Extract flow2aPrimitiveSources.zip/flow/platformSpecific/linux/Makefile.in to /home/tapple/squeak/vm/platforms/unix/plugins/FlowPlugin
- Download and run squeak-dev: http://damien.cassou.free.fr/squeak-dev/sq3.9-7067dev07.08.1.zip
- Install VMMaker-3.8b6.1 from Universes (Category: System)
Don't do step 7:
- Load "spoonProcessor Changes.st" from the components directory of http://www.movedigital.com/go/netjam/63004/spoon.2a12.linux.zip
This step should not be done, and seems to be the cause of the spurious Flow.c I found last time (see step 9 below). It seems VMMaker is generating bad source for the Flow simulator support
- Open VMMaker Tool and configure: 8.1. Interpreter Class Name: Interpreter 8.2. Path to Platform Code: /home/tapple/squeak/vm/platforms 8.3. Platform Name: unix 8.4. Path to Generated Sources: /home/tapple/squeak/vm/src 8.5. Internal Plugins: None 8.6. External Plugins: Flow
8.7 should be: External Plugins: None
- Generate Entire. This generates, among other things, a single file containing the generated Flow source: /home/tapple/squeak/vm/src/plugins/Flow/Flow.c
Flow.c is no longer generated, as it shouldn't be
9.1. add B3DAccelleratorPlugin UnixOSProcessPlugin Flow to the list in plugins.ext
- In shell: 10.1. cd /home/tapple/squeak/vm/src 10.2. ../platforms/unix/config/configure 10.3. make
I get, in the source directory, an executable named squeak and a Flow.la in Flow. I try running the squeak vm with the spoon image, and I get the following error:
Recursive not understood error encountered
Segmentation fault
I try moving Flow and B3DAcceleratorPlugin to plugins.int. I also notice that I have no plugin named UnixOSProcessPlugin in either my platforms/unix/plugins or platforms/Cross/plugins directories. I look at the size of the compiled UnixOSProcess.la and it seems empty (only 758 bytes). So I delete it from the list of compiled plugins. No matter whether I use UnixProcessorPlugin, or whether plugins are internal or external, I still get the same error whenever I try running the compiled squeak executable.
Also, no .so files are ever compiled, only .la and .a files (for external and internal plugins, respectively)
I may yet figure this out. Thanks for the help