[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gm2] gm2 on gcc-4.7.3 status
From: |
Gaius Mulley |
Subject: |
[Gm2] gm2 on gcc-4.7.3 status |
Date: |
Wed, 23 Jul 2014 05:20:33 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
Hello,
I've just committed some changes and now when running the regression
tests get the following results:
# of expected passes 9518
# of unexpected failures 18
I'd be interested to see how the regression tests behave on other
platforms.
The ChangeLog entries follow below. The compiler driver 'gm2' program
has been modified and now the libraries are referred to on the command
line by:
-flibs=iso,pim,ulm,min,log,cor
iso = ISO libraries (including ISO coroutines)
pim = extended m2f libraries based on PIM
ulm = University of Ulm libraries
log = Logitech compatible libraries
cor = PIM coroutine libraries
min = minimal runtime libraries
gm2 can now be built as a cross compiler - a follow up email will give
instructions. All libraries are now built as per gcc (using libtool and
gm2) - so per target variant. Hopefully this should erase any previous
32/64 object file collisions, it also means that in the case of a cross
compiler (avr for example) you now get iso,pim,ulm,min,cor,log for each
processor variant (of course it says nothing about whether this is
sensible, but it will try and produce a binary given the configure
results).
Finally it builds cleanly on the arm (Odroid U3) and I've seen the
pge example run perfectly (involves heavy floating point, complex
numbers) on arm. I'm currently running the regression tests on arm.
I'd like to think a release is imminent
regards,
Gaius
* fixes to the regression testsuite gm2.exp files to pick up the
libraries from the new build locations.
* libgm2/libiso/Makefile.am: build correct iso version of
SYSTEM.
* gm2/gm2.texi: updated the status of the gcc-4.7 branch of
gm2.
Also removed an unnecessary --enable-libgm2 option from the
documentation.
* gm2/examples/pge/Makefile: remove hack rule.
* libgm2/config.h.in: rebuilt.
* libgm2/configure: rebuilt.
* libgm2/configure.ac: test for libc functions.
* libgm2/libpim/Selective.c: provide dummy KillSet procedure
function.
* gm2/gm2-compiler/M2Range.mod: CodeWholeNonPos, CodeWholeZero
assign location before it is used.
* gm2/Make-lang.in: overhauled to ensure that target and host
are
distinct.
* gm2/gm2-compiler/M2GCCDeclare.mod: IsExternal (New procedure
function).
FindContext replaces FindTreeScope. IsGlobal (New procedure
function).
DeclareVariable uses IsGlobal, IsExternal and FindContext.
* gm2/gm2-gcc/init.c: can now be compiled by a C or C++
compiler.
* gm2/gm2-gcc/m2block.c: new fields to binding_level.
is_global and
context. The compiler now correctly uses a translation_unit
tree
node to contain the global variables. Bug fixes to correct
the
context of local variables. We also ensure that all locals
are declared. Added more self checking debugging code.
* gm2/gm2-gcc/m2block.def: includeDecl (New procedure
function).
GetGlobalContext (New procedure function).
* gm2/gm2-gcc/m2block.h: allow m2block.[ch] to be compiled by
a C or C++ compiler, export GetGlobalContext, finishGlobals,
and includeDecl.
* gm2/gm2-gcc/m2builtins.h: allow m2block.[ch] to be compiled
by
a C or C++ compiler.
* gm2/gm2-gcc/m2convert.h: allow m2block.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2decl.c: simplified and corrected declaration of
a
variable. BuildParameterDeclaration simplified as it only
handles
procedure/function parameters and not function/procedure
types.
* gm2/gm2-gcc/m2decl.h: allow m2decl.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2except.h: allow m2except.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2expr.h: allow m2expr.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2linemap.h: allow m2linemap.[ch] to be compiled
by
a C or C++ compiler.
* gm2/gm2-gcc/m2misc.h: allow m2misc.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2options.h: allow m2options.[ch] to be compiled
by
a C or C++ compiler.
* gm2/gm2-gcc/m2statement.h: allow m2statement.[ch] to be
compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2statement.c: call cgraph_finalize_function
whenever
we finish a function. Unit at a time change.
* gm2/gm2-gcc/m2top.h: allow m2top.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-gcc/m2type.c: specifically declares procedure types
and parameter types. Corrected a bug with procedure/function
type declaration.
* gm2/gm2-gcc/m2type.def: BuildProcTypeParameterDeclaration
(New procedure
function). BuildEndFunctionType additional parameter.
* gm2/gm2-gcc/m2type.h: allow m2type.[ch] to be compiled by
a C or C++ compiler.
* gm2/gm2-lang.c: m2_write_global_declarations (New function).
gm2_langhook_write_globals for each translation unit write out
globals.
* gm2/gm2-libs-pim/Break.c: corrected #include syntax.
Reformatted to
conform to GNU coding standards.
* gm2/gm2-libs/config-host: rebuilt.
* gm2/gm2-libs/config-target: rebuilt.
* gm2/gm2-libs/config-target.in: use GCC_NO_EXECUTABLES.
* gm2/gm2spec.c: removed style of libraries, added new location
of
libraries and new library names.
* gm2/m2pp.c: pl (New function). m2pp_decl_list (New function).
m2pp_decl_bool (New function). remember (New function).
m2pp_translation (New function). m2pp_module_block (New
function).
m2pp_procedure_type modified to understand varargs.
* gm2/tools-src/createUlmSys: fixed to test for presence of
include
files so that it can be run in a cross compiler for a minimal
target.
* gm2/examples/pge/Makefile: remove rule hack from objects.
* gm2/gm2-compiler/M2GenGCC.mod: CodeDivTrunc, FoldDivTrunc,
CodeDivFloor, FoldDivFloor check operand types and if
REAL/COMPLEX
family are used then call BuildRDiv instead. Fixes a compiler
error
exposed by gm2/examples/pge/roots.mod.
BinaryOperandRealFamily
(New procedure function).
* gm2/gm2-gcc/m2expr.c: m2expr_BuildRDiv (New function).
* gm2/gm2-gcc/m2expr.def: m2expr_BuildRDiv (New definition).
* gm2/gm2-gcc/m2expr.h: m2expr_BuildRDiv (New prototype).
- [Gm2] gm2 on gcc-4.7.3 status,
Gaius Mulley <=