[M3devel] Too many names for the gcc backend. Was: m3cgc1: fatal error ...

Jay K jay.krell at cornell.edu
Thu May 28 22:24:14 CEST 2015


"1" is because gcc is structured as having the gcc "driver" and "frontends" like cc1 and cc1plus.cm3cg is a frontend from the gcc point of view. So it has/had a "1" in iis name.I believe we rename from m3cgc1 to cm3cg.The gcc backends are always linked into the frontends anyway -- libbackend.a.If this wasn't the case, they'd probably be called things like cc2.

With Visual C++, for example, the "driver" is cl.exe and the frontends are c1.dll and c1xx.dll and the backend is c2.dll.Most compilers are structured in about the same way.
Your .log:
--- building in AMD64_FREEBSD ---
ignoring ../src/m3overrides
new source -> compiling RTHooks.i3
m3cgc1: fatal error:  *** bad M3CG version stamp (0x100), expected 0x110
compilation terminated.
  m3_backend => 1


 > cp -Pv /mech/construction/mech/ptrees/default/lang/modula3/work/cm3-8c1b86a/m3-sys/cminstall/src/config-no-install/ALPHA32_VMS /mech/construction/mech/ptrees/default/lang/modula3/work/cm3-8c1b86a/bin/config/ALPHA32_VMS

I think the problem is that upgrade wants to do things in-place, but you have asked to ship/install to a new place.It kind of does install while it builds.

make-dist.py kinda does this better.

It builds into a new place, but first copies from the old.
Can you do that?

Or, similarly, if you are building into a new empty place, can you add it to the start of $PATH,
so as it fills in, it will take precedence?

I understand this is all not ideal.
The default method of "ugprade.py" building should be more like make-dist.
The result should be a directory or .tar.gz that the user is told to copy or extract.
No in-place updates ought to be done.
make-dist.py is really better.

Or, can you try make-dist.py??
Maybe if people use that a bit, we can delete upgrade and just point people at make-dist.py instead.It does "min" and "all".

 - Jay


> Date: Thu, 28 May 2015 10:17:08 -0500
> From: rodney_bates at lcwb.coop
> To: m3devel at elegosoft.com
> Subject: [M3devel] Too many names for the gcc backend. Was: m3cgc1: fatal error ...
> 
> BTW, the gcc-derived back end has too many names.
> 
>    m3cc:   The package name
>    m3cg:   The directory containing glue code to gcc
>    m3cgc1: The executable built inside m3cc.
>            Also, what it identifies itself as in error messages
>    cm3cg:  The executable, when installed in /usr/local/cm3/bin
> 
> Did I even get it complete or right?
> 
> On 05/28/2015 06:49 AM, John Marino wrote:
> > I got stuck again trying to build the latest on FreeBSD.
> >
> > 1. tar extracted to working directory along with a bootstrap compiler
> > 2. CM3 and CM3_INSTALL defined in environment
> > 3. executed scripts/python/upgrade.py
> >
> > result:
> > http://leaf.dragonflybsd.org/~marino/m3.log
> >
> > I could guess that something is picking up a bootstrap component instead
> > of a newly built one.  I guess it's trying to build the c backend?
> >
> > Am I doing some kind of obvious mistake?
> >
> > John
> >
> 
> -- 
> Rodney Bates
> rodney.m.bates at acm.org
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20150528/39ce760c/attachment-0002.html>


More information about the M3devel mailing list