6c02f7ca5c
This patch further cleans up the driver gm2. It also moves some of the C support libraries into C++ mimicing m2 ctor behaviour. -fuselist= is also implemented which forces module ctors to be referenced in the scaffold. 2022-06-25 Gaius Mulley <gaius.mulley@southwales.ac.uk> gcc/ChangeLog: * doc/gm2.texi (-fobject-path=): Removed. (-fmakeinit) Removed. (-fmakelist) Removed. (-fuselist) Removed. (-fuselist=@file{filename}) Added. gcc/m2/ChangeLog: * m2/gm2-compiler/Lists.mod: Corrected spacing. * m2/gm2-compiler/M2Options.def (SetUselist): New procedure. (GetUselist) New procedure function. * m2/gm2-compiler/M2Options.mod (UselistFilename): New variable. (SetUselist) New procedure implementation. (GetUselist) New procedure implementation. * m2/gm2-compiler/M2Quads.mod (BuildM2LinkFunction) New procedure. (BuildM2MainFunction) build call to linkFunction. (BuildScaffold) call BuildM2MainFunction. (MakeLengthConst) Re-implemented. * m2/gm2-compiler/M2Scaffold.def (linkFunction): New variable. (PopulateCtorArray) New procedure. * m2/gm2-compiler/M2Scaffold.mod (DeclareCtorArrayType): New procedure function. (DeclareCtorGlobal) New procedure. (PopulateCtorArray) New procedure. (ReadModules) New procedure. (CreateCtorList) New procedure function. (DeclareCtorModuleExtern) New procedure. (DeclareScaffoldFunctions) Declare the ctor global array and declare all external modules ctors. * m2/gm2-compiler/PCSymBuild.mod: Remove stop. * m2/gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern) New procedure function. (PutExtern) New procedure function. (IsExtern) New procedure function. (MakeConstant) New procedure function. * m2/gm2-compiler/SymbolTable.mod (Procedure): New field IsExtern. (MakeProcedureCtorExtern) New procedure function. (PutExtern) New procedure. (IsExtern) New procedure function. (MakeConstant) New procedure function implemented. * m2/gm2-gcc/m2options.h (SetUselist): New procedure. * m2/gm2-lang.cc (fuselist): Removed. (fmakelist) Removed. (fmodules) Removed. (fuselist_) Added. * m2/gm2spec.cc (fuselist): Removed. * m2/lang.opt (fuselist): Removed. (fmakelist) Removed. (fmodules) Removed. (fuselist=) Added. libgm2/Changelog: * libm2pim/Makefile.am (M2MODS): Add M2Dependent.mod (M2DEFS) Add M2Dependent.def. * libm2iso/ErrnoCategory.cc (Renamed from ErrnoCategory.c). Converted to C++. * libm2iso/Makefile.am: Changed .c extensions to .cc. * libm2iso/RTco.cc (Renamed from RTco.c): Converted to C++. * libm2pim/Makefile.am: Changed .c extensions to .cc. * libm2pim/SysExceptions.cc (Renamed from SysExceptions.c): Converted to C++. * libm2pim/errno.cc (Renamed from errno.c): Converted to C++. * libm2pim/termios.cc (Renamed from termios.c): Converted to C++. Signed-off-by: Gaius Mulley <gaius.mulley@southwales.ac.uk> |
||
---|---|---|
c++tools | ||
config | ||
contrib | ||
fixincludes | ||
gcc | ||
gm2tools | ||
gnattools | ||
gotools | ||
include | ||
INSTALL | ||
intl | ||
libada | ||
libatomic | ||
libbacktrace | ||
libcc1 | ||
libcody | ||
libcpp | ||
libdecnumber | ||
libffi | ||
libgcc | ||
libgfortran | ||
libgm2 | ||
libgo | ||
libgomp | ||
libiberty | ||
libitm | ||
libobjc | ||
liboffloadmic | ||
libphobos | ||
libquadmath | ||
libsanitizer | ||
libssp | ||
libstdc++-v3 | ||
libvtv | ||
lto-plugin | ||
maintainer-scripts | ||
zlib | ||
.dir-locals.el | ||
.gitattributes | ||
.gitignore | ||
ABOUT-NLS | ||
ar-lib | ||
ChangeLog | ||
ChangeLog.jit | ||
ChangeLog.tree-ssa | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
COPYING3.LIB | ||
COPYING.LIB | ||
COPYING.RUNTIME | ||
depcomp | ||
install-sh | ||
libtool-ldflags | ||
libtool.m4 | ||
lt~obsolete.m4 | ||
ltgcc.m4 | ||
ltmain.sh | ||
ltoptions.m4 | ||
ltsugar.m4 | ||
ltversion.m4 | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
multilib.am | ||
README | ||
symlink-tree | ||
test-driver | ||
ylwrap |
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.