<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>> OK, the fix I mentioned is in the 5.8 release branch on github, but it is<br>> not in the above bootstrap. In file bootstrap/etc/modula3/cm3cfg.common,<br>> line 274 needs to change from:<br><br>> 274: foreach root in [ m3cc, bin ]<br><br> > to:<br><br> > 274: foreach root in [ bin ]<br><br>> Before building the Modula-3 head.<BR> <BR> <BR>Yes, agreed.<BR>I still want the environment variable check removed, but this is another problem,<BR>that I caused, and I did fix long ago, but is causing grief still, sorry about that.<BR> <BR> <BR>Here, I fixed it in 2010:<BR><br> <a href="https://github.com/modula3/cm3/commit/65551f30a6c3ed2cd9740394a9082ffab1b07faa">https://github.com/modula3/cm3/commit/65551f30a6c3ed2cd9740394a9082ffab1b07faa</a> <BR><br> INSTALL_ROOT/bin/cm3cg for native builds <br> ROOT/m3-sys/m3cc/HOST/TARGET/cm3cg for cross builds <br> "Later" (never?) we can think about "installed" cross builds. <BR><br> In particular, when I make m3cg interface changes, I get <br> burned by reaching in for ROOT/m3-sys/m3cc/x/cm3cg. <BR><br> <BR>The code is a lot smaller now and more correct.<br>Sorry about that. I was being ambitious in trying<br>to make things work, and it turned out to be quite incorrect<br>once things are better understood.<BR><br> <BR> <BR> - Jay<br><br><br><br> <BR><div>> Date: Sun, 31 May 2015 15:51:10 -0500<br>> From: rodney_bates@lcwb.coop<br>> To: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] m3cgc1: fatal error: *** bad M3CG version stamp (0x100), expected 0x110<br>> <br>> <br>> <br>> On 05/31/2015 02:26 PM, John Marino wrote:<br>> > On 5/31/2015 21:13, Rodney M. Bates wrote:<br>> >> The error message you keep getting pretty certainly means it is running a<br>> >> new cm3cg with an old cm3. And it consistently happens immediately after<br>> >> cm3cg is rebuilt.<br>> >><br>> >> The build of cm3cg (package m3cc) appears to be the first use of cm3 in all<br>> >> your failed builds, and I don't think that package would ever run cm3cg, as<br>> >> there is no Modula-3 code in it. Which means there is no proof that the<br>> >> version of cm3cg that would have been used before it was rebuilt is the old<br>> >> one. (Could it be a new one left over from a previous incomplete build?)<br>> ><br>> > That's not possible. The bootstrap is packaged in a compressed tarball<br>> > and extracted for the sole purpose of building M3. It would have not<br>> > leftovers in it.<br>> ><br>> > It comes with cm3, cm3cg, m3bundle, and mklib in the bin directory.<br>> ><br>> > the contents of the bootstrap M3 cm3.cfg are:<br>> > INSTALL_ROOT = path() & "/.."<br>> > include (path() & "/../etc/modula3/AMD64_FREEBSD")<br>> ><br>> ><br>> >> One experiment that would prove this would be, in the state your are<br>> >> starting from before trying a full build, try any means of running<br>> >> cm3 on a package that contains Modula-3 code, to see if it avoids the<br>> >> recurring problem.<br>> ><br>> > I think this is N/A. The bootstrap compiler is extracted to a directory<br>> > that is not on the path (and only exists right before trying to build<br>> > modula3 port)<br>> ><br>> ><br>> >> But I have another theory. I don't know what this ports bootstrap<br>> >> is, but there was a time when things where set up so that cm3, instead<br>> >> of looking in just the same directory as its own executable was found,<br>> >> was looking several alternative places for an executable cm3cg. This<br>> ><br>> > It's 5.8.6 and the cm3.cfg is listed above. You can download it<br>> > yourself here:<br>> > http://downloads.dragonlace.net/m3/m3-bootstrap.AMD64.FREEBSD.92.tar.bz2<br>> ><br>> <br>> OK, the fix I mentioned is in the 5.8 release branch on github, but it is<br>> not in the above bootstrap. In file bootstrap/etc/modula3/cm3cfg.common,<br>> line 274 needs to change from:<br>> <br>> 274: foreach root in [ m3cc, bin ]<br>> <br>> to:<br>> <br>> 274: foreach root in [ bin ]<br>> <br>> Before building the Modula-3 head.<br>> <br>> ><br>> >> caused the same problem to occur in a different way. Even when the<br>> >> newly rebuilt cm3cg executable was not copied to the bin directory<br>> >> right away, its mere existence where it was built was causing it to<br>> >> be found the next time cm3 started up, leading to the same failure.<br>> >><br>> >> I don't remember how this was fixed, but either Jay or I did something<br>> >> about it. Perhaps the ports bootstrap was made during a time when this<br>> >> behavior was happening.<br>> ><br>> > Probably not as I am 99% sure the bootstrap was built from the release<br>> > source.<br>> ><br>> > Thanks,<br>> > John<br>> ><br>> ><br>> ><br>> ><br>> <br>> -- <br>> Rodney Bates<br>> rodney.m.bates@acm.org<br></div> </div></body>
</html>