[M3commit] [modula3/cm3] 4dc58c: My scripts foist current config on old tools.

Jay Krell jay.krell at cornell.edu
Tue Jun 2 08:08:42 CEST 2015

  Branch: refs/heads/master
  Home:   https://github.com/modula3/cm3
  Commit: 4dc58c66f698d556ebc99d0dae186d647d36b79d
  Author: Jay Krell <jay.krell at cornell.edu>
  Date:   2015-06-01 (Mon, 01 Jun 2015)

  Changed paths:
    M m3-sys/cminstall/src/config-no-install/NT.common
    M m3-sys/cminstall/src/config-no-install/Unix.common

  Log Message:
  My scripts foist current config on old tools.
At least make-dist.py does.

This may be surprising, but it has been effective
at working around problems in older tools when bootstrapping.

Historically _m3main.c was K&R C and not valid C++.
Now it is vali ANSI C and C++ but not K&R (todo: all three?).

Recently, in 5.8.6, I switched all targets to make main in C,
whereas it often previously was not.

When going right from an older toolset (5.8.6) to make-dist.py
and skipping upgrade.py, we fail, on Darwin, because it compiles
all C with g++ and _m3main.c is not valid C++.

Workaround this:
 if compiling C fails, and it is _m3main.c, try again with gcc's -xc
 switch or Visual C++'s -TC switch.

 Sun CC and clang could use attention potentially here.

 upgrade.py remains an acceptable workaround.

 As might be just accepting existing bootstrap config files..

 Another option would be really separate C and C++ notions.

More information about the M3commit mailing list