[Success] Building a VM: the adventure continues

Ross Boylan ross at biostat.ucsf.edu
Sun Aug 21 19:08:32 UTC 2005


On Sun, 2005-08-21 at 02:00 -0400, David T. Lewis wrote:
> Ross,
> 
> I've seen this a few times before but have not tracked down the
> root cause. Try telling VMMaker to put the sources in <whatever>.src
> rather than <whatever>.src32. Then run configure and make, and see
> if things work better.
> 
> It's not your compiler, it's just some configuration glitch.
> 
> Dave

Yea!  With that change, I can build the the squeak VM and it runs on the
3.8 image (I haven't tested it much, but it doesn't have the immediate
lockup problem you described.)

My additional steps were
8. change the source dir to src from src32
9. regenerate sources
10. in bld dir, wipe out old stuff
11. configure; make; make install

This inspires a couple of questions.

Originally, I patched the platform tree after generating the sources.
Is that OK, because the files in platform are used in place during the
build, or did it mean the patches were missed the first time around?

Because of my config options, make install put the files in an unusual
location.  Should I be concerned that libraries will load from my
standard squeak rather than the new one?  I think libtool takes care of
that, but I'm not sure.

I can now return to my original question of discovering whether squeak
was taking up all the CPU because of some garbage collection issues.

Ross

P.S. On the question of speed, I believe the earlier statement was not
that the svn sources were faster (though they may be), but that building
with the wrong compiler version could make the VM much slower.  The
additional problem with building from the svn sources is that doing so
successfully on Unix is quite problematic at the moment.  You'll notice
the build process I've reported here (which is on 32 bit Linux on an
Athlon chip) incorporates many patches and one-off versions of things
(e.g., VMMaker).

> On Sat, Aug 20, 2005 at 07:13:55PM -0700, Ross Boylan wrote:
> > This time I tried building with the 2 patches David Lewis supplied.
> > This time I got through all the steps in squeak/VMMaker to make the
> > sources.  As soon as I tried to build them the build failed.
> > 
> > My system has gone to gcc 4.0 as the default compiler, and I suspect it
> > is being stricter than 3.3, which I was using before.  On the other
> > hand, there was some speculation that the problems were caused by gcc,
> > so a newer version might help there.
> > 
> > 0. get current svn sources, which are now v 1242
> > 1. base Squeak3.8-665
> > 2. load VMMaker-tpr.37. save.
> > 3. load JMMGCMonitor.4.cs. save.
> > 4. VMM38-gc-instrument-image.1.cs. save.
> > 5. VMM38-64bit-imageUpdates.1.cs. save.
> > 6. open VMMaker. make all internal plugins.
> >    leave "64 bit VM?" unchecked!
> >    save vmmaker.config from VMMaker.
> > 7. generate entire
> > 
> > Then I applied the two patches provided by David in his July 24 message:
> > $ patch platforms/Cross/vm/sqMemoryAccess.h sqMemoryAccess.h.diff
> > patching file platforms/Cross/vm/sqMemoryAccess.h
> > $ patch platforms/unix/vm/sqUnixExternalPrims.c sqUnixExternalPrims.c.diff
> > patching file platforms/unix/vm/sqUnixExternalPrims.c
> > 
> > (I used patches rather than the whole files he supplied in case there had been subsequent changes).
> > 
> > ross at iron:/usr/local/src/squeak$ mkdir bld
> > ross at iron:/usr/local/src/squeak$ cd bld
> > ross at iron:/usr/local/src/squeak/bld$ ../platforms/unix/config/configure --prefix=/usr/local/src/playpen
> > and finally, make.  Here's a sampling of the log
> > 
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:25:3: warning: #warning 
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:26:3: warning: #warning ***************************************************
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:27:3: warning: #warning *
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:28:3: warning: #warning * interp.h not found -- defaulting to a 32-bit VM
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:29:3: warning: #warning *
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:30:3: warning: #warning * update your image-side VM sources to the latest
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:31:3: warning: #warning * version to avoid this message
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:32:3: warning: #warning *
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:33:3: warning: #warning ***************************************************
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:34:3: warning: #warning 
> > gnu-interp.c:12:1: warning: "byteAt" redefined
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:116:1: warning: this is the location of the previous definition
> > gnu-interp.c:13:1: warning: "byteAtput" redefined
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:117:1: warning: this is the location of the previous definition
> > gnu-interp.c:14:1: warning: "longAt" redefined
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:122:1: warning: this is the location of the previous definition
> > gnu-interp.c:15:1: warning: "longAtput" redefined
> > /usr/local/src/squeak/platforms/Cross/vm/sqMemoryAccess.h:123:1: warning: this is the location of the previous definition
> > gnu-interp.c:738: error: syntax error before 'const'
> > gnu-interp.c:739: warning: initialization makes integer from pointer without a cast
> > [many like that]
> > 
> > This is probably what stopped it:
> > gnu-interp.c:738: error: syntax error before 'const'
> > 
> > The offending line is
> > fptr const primitiveTable[] = {
> > 
> > 
> > I'm doing this on a faster machine now, so I can get nowhere with much greater speed :)
> > 
> > I'm guessing I'm still suffering from version mismatch.
> > 
> > Ross Boylan
> > 
> > 
> > 
-- 
Ross Boylan                                      wk:  (415) 502-4031
530 Parnassus Avenue (Library) rm 115-4          ross at biostat.ucsf.edu
Dept of Epidemiology and Biostatistics           fax: (415) 476-9856
University of California, San Francisco
San Francisco, CA 94143-0840                     hm:  (415) 550-1062




More information about the Squeak-dev mailing list