Compiling Flow.so under linux

Matthew Fulmer tapplek at gmail.com
Thu Sep 6 07:43:00 UTC 2007


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:
> 
> 1.  Download the 3.9-8 VM source code:
>     http://squeakvm.org/unix/release/Squeak-3.9-8.src.tar.gz
> 2.  Unzip it to /home/tapple/squeak/vm
> 3.  Download the 2a5 Flow source code:
>     http://netjam.org/flow2a5.tar.gz
> 4.  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

> 5.  Download and run squeak-dev:
>     http://damien.cassou.free.fr/squeak-dev/sq3.9-7067dev07.08.1.zip
> 6.  Install VMMaker-3.8b6.1 from Universes (Category: System)

Don't do step 7:

> 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

> 8.  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

> 9.  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

> 10. 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

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808


More information about the Spoon mailing list