Problem building from latest SNV & VMM
David T. Lewis
lewis at mail.msen.com
Fri Jul 8 21:42:01 UTC 2005
On Fri, Jul 08, 2005 at 04:26:44PM -0400, David T. Lewis wrote:
> On Fri, Jul 08, 2005 at 08:42:17PM +0200, Andreas Raab wrote:
> > Trying a different compiler might help - I've seen similar effects with
> > later gcc versions when trying to compile a 64bit VM.
> Thanks. I have a copy of egcs-2.91.66 installed on a dusty old Linux
> box. I'll give it a try and see if it acts any differently from the gcc
> 3.3.1 I've been using.
Changing compiler versions did change the behavior of the VM. With a
VM compiled with egcs-2.91.66 (rather than gcc 3.3.1), I get consistent
VM crashes when trying to start the small image. The crashes happen
a little differently than with the VM built with gcc 3.3.1, but it
seems to to be related to the same underlying problem (whatever that
I am reluctant to draw any conclusions from this, because the crashes
happen after entering interpret(), and seem to be timing dependent and
possibly related to what Smalltalk process happens to be scheduled at
what time when the image is being restarted.
Overall I think there must be some other underlying problem that I
have not spotted, although the different behavior with different
compilers is admittedly rather suspiscious.
For reference, the SqueakDebug.log files that I get when my image
crashes on the egcs-2.91.66 VM look like this:
Unwind error during termination
8 July 2005 5:36:44 pm
VM: unix - a SmalltalkImage
Image: Squeak3.8gamma [latest update: #6548]
Working Dir /tmp/sq/Squeak64BitPort/images
Trusted Dir /tmp/sq/Squeak64BitPort/images
Untrusted Dir /tmp/sq/Squeak64BitPort/images
This looks like a ContextPart>>cannotReturn:to: that got sent to the
wrong object, possibly due to scrambled interpretation of the layout
of a BlockContext. This is consistent with the kind of error I see
with the VM compiled with the other gcc version; it just seems to be
manifesting itself at a different time and place in the interpreter.
More information about the Vm-dev