[Vm-dev] SqueakVM trunk is broken since late April

David T. Lewis lewis at mail.msen.com
Tue Dec 7 17:59:58 UTC 2010


On Tue, Dec 07, 2010 at 08:34:14PM +0300, Aleksej Saushev wrote:
>  
>   Hello!
> 
> I'm trying to build VM from source and run into this:
> 
> Linking C executable squeakvm
> CMakeFiles/squeakvm.dir/tmp/local/squeak-vm/work/squeak-vm/platforms/Cross/vm/sqVirtualMachine.c.o: In function `sqGetInterpreterProxy':
> sqVirtualMachine.c:(.text+0x45e): undefined reference to `internalIsImmutable'
> sqVirtualMachine.c:(.text+0x468): undefined reference to `internalIsMutable'
> sqVirtualMachine.c:(.text+0x472): undefined reference to `primitiveFailFor'
> sqVirtualMachine.c:(.text+0x47c): undefined reference to `classAlien'
> sqVirtualMachine.c:(.text+0x486): undefined reference to `getStackPointer'
> sqVirtualMachine.c:(.text+0x490): undefined reference to `sendInvokeCallbackStackRegistersJmpbuf'
> sqVirtualMachine.c:(.text+0x49a): undefined reference to `reestablishContextPriorToCallback'
> sqVirtualMachine.c:(.text+0x4a4): undefined reference to `classUnsafeAlien'
> --- squeakvm ---
> 
> Going back in past, I've found that this was broken in r2203,
> which introduced references to these symbols which in turn were never defined.
> 
> Could anyone at least shed the light on what is going on?

Hi Aleksej,

Possibly you are compiling using the sources in platforms/unix/src. These
are source files that were automatically generated from a VMMaker image
at the time of the last official VM distribution. For this reason, they
are out of date now with respect to the rest of the development platform
sources. In this case, the platform source code is making references to
things that are present in the up-to-date VMMaker sources, but that were
not present at the time the platforms/unix/src/* files were created. This
is the reason for the unresolved references in your build.

In order to build a VM with the latest sources, please also use the most
recent VMMaker from SqueakSource, and use this to generate your own source
files. Usually (though not necessarily always), the most recent version
of VMMaker will contain the Smalltalk code that matches the most recent
development sources in Subversion.

Having the generated sources in platforms/unix/src can be confusing, and
there has been some discussion of moving the saved ./src files out of the
main ./platforms directory tree in order to reduce confusion about this.

Dave



More information about the Vm-dev mailing list