[M3devel] strange errors...

Mika Nystrom mika at async.caltech.edu
Sat Jun 23 20:38:27 CEST 2007


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.
Here are the exact commands I typed.


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 I seem to have some kind of cm3 installed, /usr/local/cm3/bin/cm3

cd cm3   # location of my CM3 checkout
cvs update -d .

cd scripts
./boot-cm3-with-m3.sh realclean
./do-cm3-std.sh realclean

./upgrade.sh                      # fails here, libm3 not compiled
./boot-cm3-with-m3.sh build       # builds cm3, but fails on cminstall, patternmatching not built

./do-cm3-std.sh build             # OK
./do-cm3-std.sh buildship         # OK

./boot-cm3-with-m3.sh realclean   # start over
./boot-cm3-with-m3.sh build       # OK
./boot-cm3-with-m3.sh buildship   # OK

./do-cm3-std.sh realclean         # OK
./do-cm3-std.sh build             # dies miserably... maybe the compiler can't handle the new libraries?

./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed 

After all that, "game over."  I have a cm3 that segfaults.

Text.i3: In function 'Text_I3':
Text.i3:81: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
compilation failed => not building library "libm3core.a"
Fatal Error: package build failed
 *** execution of  failed ***

I can't seem to get either m3gdb or gdb to say anything reasonable
either.  ktrace shows nothing out of the ordinary.

-----

Meanwhile, my Mac got through "do-cm3-std.sh realclean" and
"do-cm3-std.sh buildship" but my compiles are still dying on the
same assertion tickled by ktok.  On that machine I have INSTALLROOT
set to ~/cm3, but hopefully that has nothing to do with it...

-----

Does do-cm3-std.sh realclean clean EVERYTHING?  If so my Mac should
really have a fresh setup.  The FreeBSD, I am not sure, maybe the
old binary version just doesn't work right?  Of course I could try
bootstrapping with PM3 as well... but really, there's an "approved"
process to get from a blank system, no? 

      Mika




Tony Hosking writes:
>That sounds like you forgot to execute "do-cm3-std.sh realclean"  
>before initiating the build.  These sorts of errors sometimes arise  
>if there are old build directories lying around.
>
>
>On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote:
>
>> Hello everyone,
>>
>> I am in the process of trying to consolidate build systems for a
>> few software packages I am maintaining.  Currently, I am using an
>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows
>> (NT386GNU), and trying to get the latest CM3 from cvs up and compiling
>> things on PPC_DARWIN.  Ideally, I'd like to standardize everything
>> on the new PM3---mainly so that I can use pickles (and Network
>> Objects) across all three systems.  I'd also like to add Linux to
>> the mix.
>>
>> It's natural for me to start with CM3 on Darwin, as there's no
>> alternative.  But I am getting some assertions failing.  Everything
>> in the CM3 distribution compiles fine, and I believe I have compiled
>> the libraries a few times (that is, including with themselves), and
>> updated the compiler, too (using boot-cm3-with-m3.sh).  I just cvs
>> updated tonight.
>>
>> Here's what I'm running into:
>>
>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o CHPTok.i3
>>
>>
>> ***
>> *** runtime error:
>> ***    <*ASSERT*> failed.
>> ***    file "../src/runtime/common/RTCollector.m3", line 2314
>> ***
>>
>> Abort
>>
>> Also:
>>
>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o PRSTok.i3
>> Illegal instruction
>>
>> As you can see, these things are coming from the caltech_parser.  I  
> am using
>> our local version, but I don't think it is very different from what  
>> is in the
>> CM3 tree.
>>
>>
>> Examining the first error (the failed assertion) more closely, I see
>> the following:
>>
>> (gdb) list
>> 108         wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3"));
>> 109       EXCEPT OSError.E =>
>> 110         Debug.Error("Cannot open tok implementation output  
>> file: " &
>> 111           Pathname.ReplaceExt(tp.out, "m3"));
>> 112       END;
>> 113       Wr.PutText(wr, subs.apply(Bundle.Get(Form, "tokform.m3")));
>> 114       Wr.Close(wr);
>> 115     END Main.
>> (gdb) where
>> #0  0x9004308c in kill ()
>> #1  0x9009fb3c in abort ()
>> #2  0x00096f50 in RTOS__Crash () at RTOS.m3:20
>> #3  0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at  
>> RTProcess.m3:65
>> #4  0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at  
>> RTError.m3:115
>> #5  0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8,  
>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0,  
>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40
>> #6  0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00,  
>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79
>> #7  0x0008e74c in RTException__DefaultBackstop  
>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at RTException.m3:39
>> #8  0x0008e614 in RTException__InvokeBackstop  
>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at RTException.m3:25
>> #9  0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at  
>> RTExFrame.m3:29
>> #10 0x0008e840 in RTException__DefaultBackstop  
>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at RTException.m3:47
>> #11 0x0008e614 in RTException__InvokeBackstop  
>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at RTException.m3:25
>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at  
>> RTExFrame.m3:29
>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8,  
>> M3_AcxOUs_info=74048) at RTHooks.m3:110
>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048)
>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced  
>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314
>> #16 0x000700e4 in ThreadPThread__InnerLockMutex  
>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at  
>> ThreadPThread.m3:126
>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c)  
>> at ThreadPThread.m3:153
>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c,  
>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93
>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113
>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at  
>> RTLinker.m3:399
>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at  
>> RTLinker.m3:113
>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at  
>> RTLinker.m3:122
>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38)  
>> at _m3main.mc:4
>> (gdb)
>>
>> The second error:
>>
>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ 
>> operand.
>> 0x00b111ac in ?? ()
>> (gdb) where
>> #0  0x00b111ac in ?? ()
>> #1  0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450,  
>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63
>> #2  0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at  
>> RTLinker.m3:399
>> #3  0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at  
>> RTLinker.m3:113
>> #4  0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at  
>> RTLinker.m3:122
>> #5  0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38)  
>> at _m3main.mc:4
>> (gdb) list
>> 58        BEGIN
>> 59          WHILE pos < textLen DO
>> 60            c := Text.GetChar(src, pos);
>> 61            IF c IN self.starts THEN
>> 62              (* S("analysing: " & Text.Sub(src, pos),  
>> DebugLevel); *)
>> 63              iter := self.tbl.iterateOrdered();
>> 64              ind := pos;
>> 65              original := "";
>> 66              REPEAT
>> 67                INC(ind);
>> (gdb)
>>
>> Any ideas what to look at?
>>
>> I don't know if this is relevant:
>>
>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a
>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30  
>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC  Power  
>> Macintosh powerpc
>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v
>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
>> Thread model: posix
>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)
>>
>>      Mika
>>
>> P.S. Am I correct in assuming that I can get CM3 to build on Windows?
>> I could switch to CM3 on Unix any time, of course, but I've never
>> had luck with it on Windows, which is why I am using the ancient
>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that
>> unpacks them into C: (and installation instructions only in German).
>> If CM3 doesn't work on Windows, I am essentially wasting my time,
>> as the current project I am working on absolutely requires that the
>> software run on Windows 2003 Server (yes, it sucks, but what can
>> you do?)  The very old PM3 at least kind of hobbles along on this
>> platform---actually, better than that; it does Trestle natively
>> under Windows (no X required), at least on SOME Windows machines.
>>
>> P.P.S. Sorry for all the postscripts, but is it true that the
>> build system has been changed so that building with overrides (cm3 -x)
>> requires having the compiler sources available?  It didn't use to
>> be that way, but I can't get Network Objects to work with overrides
>> now unless I have the sources available...  It's a bit of a pain
>> because it means that every user has to have the compiler sources,
>> or else ship everything, or was that not the intention?



More information about the M3devel mailing list