[M3devel] strange errors...

Mika Nystrom mika at async.caltech.edu
Mon Jun 25 04:53:56 CEST 2007


Tony Hosking writes:
...
>
>Install the bootstrap compiler as you did originally:
>
>> rm -rf /usr/local/cm3/*
>>
>> cd ~/cm3-cvs
>> mkdir boot
>> cd boot
>> tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
>> ./cminstall
>
>Now you will have some kind of cm3 installed, presumably in /usr/ 
>local/cm3/bin/cm3.
>
>Make sure you have a fresh CVS checkout in directory cm3 (let's  
>assume this is in your home directory ~/cm3).  Also, make sure you  
>have an up-to-date version of the CM3 backend compiler cm3cg  
>installed by executing the following:
>
>STEP 0:
>
>export CM3=/usr/local/cm3/bin/cm3
>cd ~/cm3/m3-sys/m3cc
>$CM3
>$CM3 -ship
>
>You can skip this last step if you know your backend compiler is up  
>to date.

Ok, I did a completely fresh checkout (into an empty directory) and
proceeded in accordance with the above instructions.  At this point
(that is, after shipping the new cm3cg), I have a segfaulting cm3.

This is on the following system:

(130)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>uname -a
FreeBSD rover 5.5-RELEASE FreeBSD 5.5-RELEASE #3: Sat May 12 14:03:45 PDT 2007     mika at rover:/usr/src/sys/i386/compile/ROVER  i386
(131)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.2 [FreeBSD] 20040728
(132)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>cm3 -version
Critical Mass Modula-3 version d5.3.1
  last updated: 2005-10-05
  configuration: /usr/local/cm3/bin/cm3.cfg

I'm trying it on Darwin too, but as usual that machine is a couple
of steps behind...

      Mika


>
>Now, let's build the new compiler from scratch (this is the sequence  
>I use regularly to test changes to the run-time system whenever I  
>make them):
>
>STEP 1:
>
>cd ~/cm3/m3-libs/m3core
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-libs/libm3
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-sys/m3middle
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-sys/m3linker
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-sys/m3front
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-sys/m3quake
>$CM3
>$CM3 -ship
>cd ~/cm3/m3-sys/cm3
>$CM3
>$CM3 -ship
>
>At this point you should have a bootstrapped version of cm3 installed  
>in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is  
>the CM3 target platform you are building on -- e.g., LINUXLIBC6,  
>PPC_DARWIN, ...).  Note that this did not overwrite your original  
>installed compiler in /usr/local/cm3/bin/cm3.  We
>are now going to test the new compiler, which was built using the old  
>compiler, by bootstrapping it one more time.
>
> From here on out, please replace TARGET with your target platform as  
>appropriate.
>
>STEP 2:
>
>export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3
>cd ~/cm3/scripts
>./do-cm3-std.sh realclean
>REPEAT STEP 1 to rebuild the libraries and the compiler using the  
>STEP 1 bootstrap compiler.
>
>Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ 
>pkg/cm3/TARGET/cm3.  Let's assume the new compiler now works properly  
>since it successfully bootstrapped itself, but to be sure we can now  
>use it to rebuild the world:
>
>cd ~/cm3/scripts
>./do-cm3-std.sh realclean
>./do-cm3-std.sh buildship
>
>Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ 
>cm3/TARGET/cm3 is good, so we can make it our default compiler by  
>replacing the original /usr/local/cm3/bin/cm3:
>
>cp $CM3 /usr/local/cm3/bin/cm3
>
>On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote:
>
>> Ok, I'm sorry if I seem a bit dimwitted in the morning like this,
>> but how exactly does one get started?  I wish there were a file called
>> "GETTING_STARTED" or something like that in scripts...
>>
>> My Mac is very slow so I switched to my FreeBSD/i386 system (which has
>> PM3 happily installed on it) and tried to install CM3 from scratch.
...



More information about the M3devel mailing list