<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/libgm2/libm2min, branch devel/rust/master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>PR modula2/111956 Many powerpc platforms do _not_ have support for IEEE754</title>
<updated>2024-01-18T13:06:30+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2024-01-18T13:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=f2872e00f61a5a333fa22e651d37d3b2035ac41f'/>
<id>f2872e00f61a5a333fa22e651d37d3b2035ac41f</id>
<content type='text'>
This patch corrects commit
r14-4149-g81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032 which assummed
all powerpc platforms would have IEEE754 long double.  The patch
ensures that cc1gm2 obtains the default IEEE754 long double availability
from the configure generated tm_defines.  The user command
line switches -mabi=ibmlongdouble and -mabi=ieeelongdouble are implemented
to override the configuration defaults.

Bootstrapped on power8 and power9 machines.

gcc/m2/ChangeLog:

	PR modula2/111956
	* Make-lang.in (host_mc_longreal): Remove.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): Remove.
	(M2C_LONGREAL_PPC64LE): Remove.
	* gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	* gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	(InitializeLongDoubleFlags): New procedure called during
	module block initialization.
	* gm2-gcc/m2configure.cc: Remove duplicate includes.
	(m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove.
	(M2CLongRealIBM128): Remove.
	(M2CLongRealLongDouble): Remove.
	(M2CLongRealLongDoublePPC64LE): Remove.
	(TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype.
	(M2Options_GetIBMLongDouble): New prototype.
	(M2Options_SetIEEELongDouble): New prototype.
	(M2Options_GetIEEELongDouble): New prototype.
	* gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using
	results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble.
	* gm2-lang.cc (gm2_langhook_handle_option): Add case
	OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble.
	Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble.
	* gm2config.aci.in: Regenerate.
	* gm2spec.cc (lang_specific_driver): Remove block defined by
	M2C_LONGREAL_PPC64LE.
	Remove case OPT_mabi_ibmlongdouble.
	Remove case OPT_mabi_ieeelongdouble.

libgm2/ChangeLog:

	PR modula2/111956
	* Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* Makefile.in: Regenerate.
	* libm2cor/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2pim/Makefile.in: Regenerate.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch corrects commit
r14-4149-g81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032 which assummed
all powerpc platforms would have IEEE754 long double.  The patch
ensures that cc1gm2 obtains the default IEEE754 long double availability
from the configure generated tm_defines.  The user command
line switches -mabi=ibmlongdouble and -mabi=ieeelongdouble are implemented
to override the configuration defaults.

Bootstrapped on power8 and power9 machines.

gcc/m2/ChangeLog:

	PR modula2/111956
	* Make-lang.in (host_mc_longreal): Remove.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): Remove.
	(M2C_LONGREAL_PPC64LE): Remove.
	* gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	* gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	(InitializeLongDoubleFlags): New procedure called during
	module block initialization.
	* gm2-gcc/m2configure.cc: Remove duplicate includes.
	(m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove.
	(M2CLongRealIBM128): Remove.
	(M2CLongRealLongDouble): Remove.
	(M2CLongRealLongDoublePPC64LE): Remove.
	(TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype.
	(M2Options_GetIBMLongDouble): New prototype.
	(M2Options_SetIEEELongDouble): New prototype.
	(M2Options_GetIEEELongDouble): New prototype.
	* gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using
	results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble.
	* gm2-lang.cc (gm2_langhook_handle_option): Add case
	OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble.
	Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble.
	* gm2config.aci.in: Regenerate.
	* gm2spec.cc (lang_specific_driver): Remove block defined by
	M2C_LONGREAL_PPC64LE.
	Remove case OPT_mabi_ibmlongdouble.
	Remove case OPT_mabi_ieeelongdouble.

libgm2/ChangeLog:

	PR modula2/111956
	* Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* Makefile.in: Regenerate.
	* libm2cor/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove.
	* libm2pim/Makefile.in: Regenerate.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/110779: Add reduced acinclude.m4 to allow interrogation of time features</title>
<updated>2023-11-13T15:11:50+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-11-13T15:11:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=0036702555195d3fd8089577b7c1e2ce5f2ff5b1'/>
<id>0036702555195d3fd8089577b7c1e2ce5f2ff5b1</id>
<content type='text'>
This patch adds libgm2/acinclude.m4 and libgm2/configure.host which
are reduced versions from libstdc++-v3.  They currently allow for
discovering the time features available in libc and will be extended
to discover availability of ieee128 long double support in the near
future.  These files were also added to provide the functions:
GLIBCXX_CONFIGURE, GLIBCXX_CHECK_GETTIMEOFDAY and
GLIBCXX_ENABLE_LIBSTDCXX_TIME called by configure.ac.

libgm2/ChangeLog:

	PR modula2/110779
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove newline.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.
	* acinclude.m4: New file.
	* configure.host: New file.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds libgm2/acinclude.m4 and libgm2/configure.host which
are reduced versions from libstdc++-v3.  They currently allow for
discovering the time features available in libc and will be extended
to discover availability of ieee128 long double support in the near
future.  These files were also added to provide the functions:
GLIBCXX_CONFIGURE, GLIBCXX_CHECK_GETTIMEOFDAY and
GLIBCXX_ENABLE_LIBSTDCXX_TIME called by configure.ac.

libgm2/ChangeLog:

	PR modula2/110779
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove newline.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.
	* acinclude.m4: New file.
	* configure.host: New file.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/111530: Build failure on BSD due to getopt_long_only GNU extension dependency</title>
<updated>2023-10-27T14:54:48+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-10-27T14:54:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=e5f6a5ad7ceece5238fc3d63f7ea92574df4264d'/>
<id>e5f6a5ad7ceece5238fc3d63f7ea92574df4264d</id>
<content type='text'>
This patch uses the libiberty getopt long functions (wrapped up inside
libgm2/libm2pim/cgetopt.cc) and only enables this implementation if
libgm2/configure.ac detects no getopt_long and friends on the target.

gcc/m2/ChangeLog:

	PR modula2/111530
	* gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Re-format.
	(cgetopt_cgetopt_long_only): Re-format.
	(cgetopt_SetOption):  Re-format and assign flag to NULL
	if name is also NULL.
	* gm2-libs/GetOpt.def (AddLongOption): Add index parameter
	and change flag to be a VAR parameter rather than a pointer.
	(GetOptLong): Re-format.
	(GetOpt): Correct comment.
	* gm2-libs/GetOpt.mod: Re-write to rely on cgetopt rather
	than implement long option creation in GetOpt.
	* gm2-libs/cgetopt.def (SetOption): has_arg type is INTEGER.

libgm2/ChangeLog:

	PR modula2/111530
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_CHECK_HEADERS): Include getopt.h.
	(GM2_CHECK_LIB): getopt_long check.
	(GM2_CHECK_LIB): getopt_long_only check.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.
	* libm2pim/cgetopt.cc: Re-write using conditional on configure
	and long function code from libiberty/getopt.c.

gcc/testsuite/ChangeLog:

	PR modula2/111530
	* gm2/pimlib/run/pass/testgetopt.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch uses the libiberty getopt long functions (wrapped up inside
libgm2/libm2pim/cgetopt.cc) and only enables this implementation if
libgm2/configure.ac detects no getopt_long and friends on the target.

gcc/m2/ChangeLog:

	PR modula2/111530
	* gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Re-format.
	(cgetopt_cgetopt_long_only): Re-format.
	(cgetopt_SetOption):  Re-format and assign flag to NULL
	if name is also NULL.
	* gm2-libs/GetOpt.def (AddLongOption): Add index parameter
	and change flag to be a VAR parameter rather than a pointer.
	(GetOptLong): Re-format.
	(GetOpt): Correct comment.
	* gm2-libs/GetOpt.mod: Re-write to rely on cgetopt rather
	than implement long option creation in GetOpt.
	* gm2-libs/cgetopt.def (SetOption): has_arg type is INTEGER.

libgm2/ChangeLog:

	PR modula2/111530
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_CHECK_HEADERS): Include getopt.h.
	(GM2_CHECK_LIB): getopt_long check.
	(GM2_CHECK_LIB): getopt_long_only check.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.
	* libm2pim/cgetopt.cc: Re-write using conditional on configure
	and long function code from libiberty/getopt.c.

gcc/testsuite/ChangeLog:

	PR modula2/111530
	* gm2/pimlib/run/pass/testgetopt.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Config,Darwin: Allow for configuring Darwin to use embedded runpath.</title>
<updated>2023-10-22T18:30:02+00:00</updated>
<author>
<name>Iain Sandoe</name>
<email>iain@sandoe.co.uk</email>
</author>
<published>2021-03-28T13:48:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=6a6d3817afa02bbcd2388c8e005da6faf88932f1'/>
<id>6a6d3817afa02bbcd2388c8e005da6faf88932f1</id>
<content type='text'>
Recent Darwin versions place contraints on the use of run paths
specified in environment variables.  This breaks some assumptions
in the GCC build.

This change allows the user to configure a Darwin build to use
'@rpath/libraryname.dylib' in library names and then to add an
embedded runpath to executables (and libraries with dependents).

The embedded runpath is added by default unless the user adds
'-nodefaultrpaths' to the link line.

For an installed compiler, it means that any executable built with
that compiler will reference the runtimes installed with the
compiler (equivalent to hard-coding the library path into the name
of the library).

During build-time configurations  any "-B" entries will be added to
the runpath thus the newly-built libraries will be found by exes.

Since the install name is set in libtool, that decision needs to be
available here (but might also cause dependent ones in Makefiles,
so we need to export a conditional).

This facility is not available for Darwin 8 or earlier, however the
existing environment variable runpath does work there.

We default this on for systems where the external DYLD_LIBRARY_PATH
does not work and off for Darwin 8 or earlier.  For systems that can
use either method, if the value is unset, we use the default (which
is currently DYLD_LIBRARY_PATH).

ChangeLog:

	* configure: Regenerate.
	* configure.ac: Do not add default runpaths to GCC exes
	when we are building -static-libstdc++/-static-libgcc (the
	default).
	* libtool.m4: Add 'enable-darwin-at-runpath'.  Act  on the
	enable flag to alter Darwin libraries to use @rpath names.

gcc/ChangeLog:

	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* config/darwin.h: Handle Darwin rpaths.
	* config/darwin.opt: Handle Darwin rpaths.
	* Makefile.in:  Handle Darwin rpaths.

gcc/ada/ChangeLog:

	* gcc-interface/Makefile.in: Handle Darwin rpaths.

gcc/jit/ChangeLog:
	* Make-lang.in: Handle Darwin rpaths.

libatomic/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libbacktrace/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

libgcc/ChangeLog:

	* config/t-slibgcc-darwin: Generate libgcc_s
	with an @rpath name.
	* config.host: Handle Darwin rpaths.

libgfortran/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths

libgm2/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* libm2cor/Makefile.am: Handle Darwin rpaths.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am: Handle Darwin rpaths.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am: Handle Darwin rpaths.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.am: Handle Darwin rpaths.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.am: Handle Darwin rpaths.
	* libm2pim/Makefile.in: Regenerate.

libgomp/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths

libitm/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libobjc/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libphobos/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* libdruntime/Makefile.am: Handle Darwin rpaths.
	* libdruntime/Makefile.in: Regenerate.
	* src/Makefile.am: Handle Darwin rpaths.
	* src/Makefile.in: Regenerate.

libquadmath/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libsanitizer/ChangeLog:

	* asan/Makefile.am: Handle Darwin rpaths.
	* asan/Makefile.in: Regenerate.
	* configure: Regenerate.
	* hwasan/Makefile.am: Handle Darwin rpaths.
	* hwasan/Makefile.in: Regenerate.
	* lsan/Makefile.am: Handle Darwin rpaths.
	* lsan/Makefile.in: Regenerate.
	* tsan/Makefile.am: Handle Darwin rpaths.
	* tsan/Makefile.in: Regenerate.
	* ubsan/Makefile.am: Handle Darwin rpaths.
	* ubsan/Makefile.in: Regenerate.

libssp/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* src/Makefile.am: Handle Darwin rpaths.
	* src/Makefile.in: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

lto-plugin/ChangeLog:
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

zlib/ChangeLog:
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent Darwin versions place contraints on the use of run paths
specified in environment variables.  This breaks some assumptions
in the GCC build.

This change allows the user to configure a Darwin build to use
'@rpath/libraryname.dylib' in library names and then to add an
embedded runpath to executables (and libraries with dependents).

The embedded runpath is added by default unless the user adds
'-nodefaultrpaths' to the link line.

For an installed compiler, it means that any executable built with
that compiler will reference the runtimes installed with the
compiler (equivalent to hard-coding the library path into the name
of the library).

During build-time configurations  any "-B" entries will be added to
the runpath thus the newly-built libraries will be found by exes.

Since the install name is set in libtool, that decision needs to be
available here (but might also cause dependent ones in Makefiles,
so we need to export a conditional).

This facility is not available for Darwin 8 or earlier, however the
existing environment variable runpath does work there.

We default this on for systems where the external DYLD_LIBRARY_PATH
does not work and off for Darwin 8 or earlier.  For systems that can
use either method, if the value is unset, we use the default (which
is currently DYLD_LIBRARY_PATH).

ChangeLog:

	* configure: Regenerate.
	* configure.ac: Do not add default runpaths to GCC exes
	when we are building -static-libstdc++/-static-libgcc (the
	default).
	* libtool.m4: Add 'enable-darwin-at-runpath'.  Act  on the
	enable flag to alter Darwin libraries to use @rpath names.

gcc/ChangeLog:

	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* config/darwin.h: Handle Darwin rpaths.
	* config/darwin.opt: Handle Darwin rpaths.
	* Makefile.in:  Handle Darwin rpaths.

gcc/ada/ChangeLog:

	* gcc-interface/Makefile.in: Handle Darwin rpaths.

gcc/jit/ChangeLog:
	* Make-lang.in: Handle Darwin rpaths.

libatomic/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libbacktrace/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

libgcc/ChangeLog:

	* config/t-slibgcc-darwin: Generate libgcc_s
	with an @rpath name.
	* config.host: Handle Darwin rpaths.

libgfortran/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths

libgm2/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* libm2cor/Makefile.am: Handle Darwin rpaths.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am: Handle Darwin rpaths.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am: Handle Darwin rpaths.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.am: Handle Darwin rpaths.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.am: Handle Darwin rpaths.
	* libm2pim/Makefile.in: Regenerate.

libgomp/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths

libitm/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libobjc/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libphobos/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* libdruntime/Makefile.am: Handle Darwin rpaths.
	* libdruntime/Makefile.in: Regenerate.
	* src/Makefile.am: Handle Darwin rpaths.
	* src/Makefile.in: Regenerate.

libquadmath/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libsanitizer/ChangeLog:

	* asan/Makefile.am: Handle Darwin rpaths.
	* asan/Makefile.in: Regenerate.
	* configure: Regenerate.
	* hwasan/Makefile.am: Handle Darwin rpaths.
	* hwasan/Makefile.in: Regenerate.
	* lsan/Makefile.am: Handle Darwin rpaths.
	* lsan/Makefile.in: Regenerate.
	* tsan/Makefile.am: Handle Darwin rpaths.
	* tsan/Makefile.in: Regenerate.
	* ubsan/Makefile.am: Handle Darwin rpaths.
	* ubsan/Makefile.in: Regenerate.

libssp/ChangeLog:

	* Makefile.am: Handle Darwin rpaths.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
	* src/Makefile.am: Handle Darwin rpaths.
	* src/Makefile.in: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

lto-plugin/ChangeLog:
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.

zlib/ChangeLog:
	* configure: Regenerate.
	* configure.ac: Handle Darwin rpaths.
</pre>
</div>
</content>
</entry>
<entry>
<title>PR 108143/modula2 LONGREAL and powerpc64le-linux</title>
<updated>2023-09-19T18:23:03+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-09-19T18:23:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032'/>
<id>81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032</id>
<content type='text'>
This patch introduces a configure for LONGREAL as float128 when
targetting or hosting cc1gm2 on ppc64le.  It fixes calls to builtins
and fixes the -fdebug-builtins option.

gcc/ChangeLog:

	* doc/gm2.texi (fdebug-builtins): Correct description.

gcc/m2/ChangeLog:

	* Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
	and if so use __float128 for longreal in mc.
	(MC_ARGS): Append host_mc_longreal.
	* config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
	(TEST_HOST_CPU_DEFAULT): New variable.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
	is powerpc64le.
	(M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
	* gm2-compiler/M2GCCDeclare.mod: Correct comment case.
	* gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
	SetLastFunction for the builtin function call.
	(MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
	function call.
	(MaybeDebugBuiltinMemset): New procedure function.
	(MakeCopyUse): Use GNU formatting.
	(UseBuiltin): Rewrite to check BuiltinExists.
	(CodeDirectCall): Rewrite to check BuiltinExists and call
	SetLastFunction.
	(CodeMakeAdr): Re-format.
	* gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
	"cond" to switch UninitVariableConditionalChecking separately.
	(SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
	ConstExpr.
	* gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
	to BuildRealFuncProcCall.
	(BuildRealFuncProcCall): Add ConstExpr parameter.  Pass ConstExpr
	to BuildFunctionCall.
	(BuildFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFunctionCall.
	(BuildConstFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildFunctionCall.
	(BuildRealFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFuncProcCall.
	* gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
	to BuildFunctionCall.
	(AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
	* gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
	procedure function.
	* gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
	function.
	(IsProcedureBuiltinAvailable): New procedure function.
	* gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
	(bf_category): New enum type.
	(struct builtin_function_entry): New field function_avail.
	(m2builtins_BuiltInMemCopy): Rename from ...
	(m2builtins_BuiltinMemCopy): ... this.
	(DoBuiltinMemSet): New function.
	(m2builtins_BuiltinMemSet): New function.
	(do_target_support_exists): New function.
	(target_support_exists): New function.
	(m2builtins_BuiltinExists): Return true or false.
	(m2builtins_BuildBuiltinTree): Rename local variables.
	Replace long_double_type_node with GetM2LongRealType.
	(m2builtins_init): Use GetM2LongRealType rather than
	long_double_type_node.
	* gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
	(BuiltinMemCopy): ... this.
	(BuiltinMemSet): New procedure function.
	* gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
	(m2builtins_BuiltinMemCopy): ... this.
	(m2builtins_BuiltinMemSet): New procedure function.
	* gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
	procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
	(M2CLongRealIBM128): New procedure function.
	(M2CLongRealLongDouble): New procedure function.
	(M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
	(m2configure_M2CLongRealFloat128): New procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
	* gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
	* gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
	TREE_USED to true.
	(m2statement_BuildGoto):Set TREE_USED to true.
	(m2statement_BuildParam): Set TREE_USED to true.
	(m2statement_BuildBuiltinCallTree): New function.
	(m2statement_BuildFunctValue): Set TREE_USED to true.
	* gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
	* gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
	procedure function.
	* gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
	(m2treelib_DoCall1): Remove spacing.
	(m2treelib_DoCall2): Remove spacing.
	(m2treelib_DoCall3): Remove spacing.
	(add_stmt): Rename parameter.
	* gm2-gcc/m2type.cc (build_set_type): Remove spacing.
	(build_m2_specific_size_type): Remove spacing.
	(finish_build_pointer_type): Remove spacing.
	(m2type_BuildVariableArrayAndDeclare): Remove spacing.
	(build_m2_short_real_node): Remove spacing.
	(build_m2_real_node): Remove spacing.
	(build_m2_long_real_node): Use float128_type_node if
	M2CLongRealFloat128 is set.
	(build_m2_ztype_node): Remove spacing.
	(build_m2_long_int_node): Remove spacing.
	(build_m2_long_card_node): Remove spacing.
	(build_m2_short_int_node): Remove spacing.
	(build_m2_short_card_node): Remove spacing.
	(build_m2_iso_loc_node): Remove spacing.
	(m2type_SameRealType): New function.
	(m2type_InitBaseTypes): Create m2_c_type_node using
	m2_long_complex_type_node.
	(m2type_SetAlignment): Tidy up comment.
	* gm2-gcc/m2type.def (SameRealType):  New procedure function.
	* gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
	* gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
	node from m2 language specific long double node.
	* gm2-libs-log/RealConversions.mod (IsNan): New procedure
	function.
	(doPowerOfTen): Re-implement.
	* gm2-libs/Builtins.mod: Add newline.
	* gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
	* gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
	* gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
	(M2C_LONGREAL_PPC64LE): New config value.
	* gm2spec.cc (lang_specific_driver): New local variable
	need_default_mabi set to default value depending upon
	M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
	* lang.opt (Wcase-enum): Moved to correct section.
	* m2pp.cc (m2pp_real_type): New function.
	(m2pp_type): Call m2pp_real_type.
	(m2pp_print_mode): New function.
	(m2pp_simple_type): Call m2pp_simple_type.
	(m2pp_float): New function.
	(m2pp_expression): Call m2pp_float.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFIO.h: Rebuild.
	* mc-boot/GIO.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/GmcOptions.cc: Rebuild.
	* mc-boot/GmcOptions.h: Rebuild.
	* mc/decl.mod: Rebuild.
	* mc/mcOptions.def (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.
	* mc/mcOptions.mod (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.

libgm2/ChangeLog:

	* Makefile.am (TARGET_LONGDOUBLE_ABI): New variable set to
	-mabi=ieeelongdouble if the target is powerpc64le.
	(AM_MAKEFLAGS): Append TARGET_LONGDOUBLE_ABI.
	* Makefile.in: Rebuild.
	* libm2cor/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2cor_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2cor_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2cor/Makefile.in: Rebuild.
	* libm2iso/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2iso_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2iso_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2iso/Makefile.in: Rebuild.
	* libm2log/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2log_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2log_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2log/Makefile.in: Rebuild.
	* libm2min/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2min_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2min_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2min/Makefile.in: Rebuild.
	* libm2pim/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2pim_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2pim_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2pim/Makefile.in: Rebuild.

gcc/testsuite/ChangeLog:

	* gm2/extensions/pass/libc.def: Add spacing.
	* gm2/pimlib/logitech/run/pass/realconv.mod: Add debugging print.
	* gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp:
	Add -fdebug-builtins flag.
	* lib/gm2.exp (gm2_target_compile_default): Add
	-mabi=ieeelongdouble if the target is powerpc.
	(gm2_link_flags): Add
	-mabi=ieeelongdouble if the target is powerpc.
	* gm2/pim/intrinsic/run/pass/cstub.c: New test.
	* gm2/pim/intrinsic/run/pass/cstub.def: New test.
	* gm2/pim/intrinsic/run/pass/pim-intrinsic-run-pass.exp: New test.
	* gm2/pim/intrinsic/run/pass/test.mod: New test.
	* gm2/pim/run/pass/builtins.mod: New test.
	* gm2/pim/run/pass/convert1.mod: New test.
	* gm2/pim/run/pass/longint1.mod: New test.
	* gm2/pim/run/pass/longint2.mod: New test.
	* gm2/pim/run/pass/longint3.mod: New test.
	* gm2/pim/run/pass/longint4.mod: New test.
	* gm2/pim/run/pass/longint5.mod: New test.
	* gm2/pim/run/pass/longint6.mod: New test.
	* gm2/pim/run/pass/longint7.mod: New test.
	* gm2/pim/run/pass/longint8.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces a configure for LONGREAL as float128 when
targetting or hosting cc1gm2 on ppc64le.  It fixes calls to builtins
and fixes the -fdebug-builtins option.

gcc/ChangeLog:

	* doc/gm2.texi (fdebug-builtins): Correct description.

gcc/m2/ChangeLog:

	* Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
	and if so use __float128 for longreal in mc.
	(MC_ARGS): Append host_mc_longreal.
	* config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
	(TEST_HOST_CPU_DEFAULT): New variable.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
	is powerpc64le.
	(M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
	* gm2-compiler/M2GCCDeclare.mod: Correct comment case.
	* gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
	SetLastFunction for the builtin function call.
	(MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
	function call.
	(MaybeDebugBuiltinMemset): New procedure function.
	(MakeCopyUse): Use GNU formatting.
	(UseBuiltin): Rewrite to check BuiltinExists.
	(CodeDirectCall): Rewrite to check BuiltinExists and call
	SetLastFunction.
	(CodeMakeAdr): Re-format.
	* gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
	"cond" to switch UninitVariableConditionalChecking separately.
	(SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
	ConstExpr.
	* gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
	to BuildRealFuncProcCall.
	(BuildRealFuncProcCall): Add ConstExpr parameter.  Pass ConstExpr
	to BuildFunctionCall.
	(BuildFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFunctionCall.
	(BuildConstFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildFunctionCall.
	(BuildRealFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFuncProcCall.
	* gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
	to BuildFunctionCall.
	(AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
	* gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
	procedure function.
	* gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
	function.
	(IsProcedureBuiltinAvailable): New procedure function.
	* gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
	(bf_category): New enum type.
	(struct builtin_function_entry): New field function_avail.
	(m2builtins_BuiltInMemCopy): Rename from ...
	(m2builtins_BuiltinMemCopy): ... this.
	(DoBuiltinMemSet): New function.
	(m2builtins_BuiltinMemSet): New function.
	(do_target_support_exists): New function.
	(target_support_exists): New function.
	(m2builtins_BuiltinExists): Return true or false.
	(m2builtins_BuildBuiltinTree): Rename local variables.
	Replace long_double_type_node with GetM2LongRealType.
	(m2builtins_init): Use GetM2LongRealType rather than
	long_double_type_node.
	* gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
	(BuiltinMemCopy): ... this.
	(BuiltinMemSet): New procedure function.
	* gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
	(m2builtins_BuiltinMemCopy): ... this.
	(m2builtins_BuiltinMemSet): New procedure function.
	* gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
	procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
	(M2CLongRealIBM128): New procedure function.
	(M2CLongRealLongDouble): New procedure function.
	(M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
	(m2configure_M2CLongRealFloat128): New procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
	* gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
	* gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
	TREE_USED to true.
	(m2statement_BuildGoto):Set TREE_USED to true.
	(m2statement_BuildParam): Set TREE_USED to true.
	(m2statement_BuildBuiltinCallTree): New function.
	(m2statement_BuildFunctValue): Set TREE_USED to true.
	* gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
	* gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
	procedure function.
	* gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
	(m2treelib_DoCall1): Remove spacing.
	(m2treelib_DoCall2): Remove spacing.
	(m2treelib_DoCall3): Remove spacing.
	(add_stmt): Rename parameter.
	* gm2-gcc/m2type.cc (build_set_type): Remove spacing.
	(build_m2_specific_size_type): Remove spacing.
	(finish_build_pointer_type): Remove spacing.
	(m2type_BuildVariableArrayAndDeclare): Remove spacing.
	(build_m2_short_real_node): Remove spacing.
	(build_m2_real_node): Remove spacing.
	(build_m2_long_real_node): Use float128_type_node if
	M2CLongRealFloat128 is set.
	(build_m2_ztype_node): Remove spacing.
	(build_m2_long_int_node): Remove spacing.
	(build_m2_long_card_node): Remove spacing.
	(build_m2_short_int_node): Remove spacing.
	(build_m2_short_card_node): Remove spacing.
	(build_m2_iso_loc_node): Remove spacing.
	(m2type_SameRealType): New function.
	(m2type_InitBaseTypes): Create m2_c_type_node using
	m2_long_complex_type_node.
	(m2type_SetAlignment): Tidy up comment.
	* gm2-gcc/m2type.def (SameRealType):  New procedure function.
	* gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
	* gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
	node from m2 language specific long double node.
	* gm2-libs-log/RealConversions.mod (IsNan): New procedure
	function.
	(doPowerOfTen): Re-implement.
	* gm2-libs/Builtins.mod: Add newline.
	* gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
	* gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
	* gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
	(M2C_LONGREAL_PPC64LE): New config value.
	* gm2spec.cc (lang_specific_driver): New local variable
	need_default_mabi set to default value depending upon
	M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
	* lang.opt (Wcase-enum): Moved to correct section.
	* m2pp.cc (m2pp_real_type): New function.
	(m2pp_type): Call m2pp_real_type.
	(m2pp_print_mode): New function.
	(m2pp_simple_type): Call m2pp_simple_type.
	(m2pp_float): New function.
	(m2pp_expression): Call m2pp_float.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFIO.h: Rebuild.
	* mc-boot/GIO.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/GmcOptions.cc: Rebuild.
	* mc-boot/GmcOptions.h: Rebuild.
	* mc/decl.mod: Rebuild.
	* mc/mcOptions.def (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.
	* mc/mcOptions.mod (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.

libgm2/ChangeLog:

	* Makefile.am (TARGET_LONGDOUBLE_ABI): New variable set to
	-mabi=ieeelongdouble if the target is powerpc64le.
	(AM_MAKEFLAGS): Append TARGET_LONGDOUBLE_ABI.
	* Makefile.in: Rebuild.
	* libm2cor/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2cor_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2cor_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2cor/Makefile.in: Rebuild.
	* libm2iso/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2iso_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2iso_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2iso/Makefile.in: Rebuild.
	* libm2log/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2log_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2log_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2log/Makefile.in: Rebuild.
	* libm2min/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2min_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2min_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2min/Makefile.in: Rebuild.
	* libm2pim/Makefile.am (AM_MAKEFLAGS): Add CFLAGS_LONGDOUBLE and
	TARGET_LONGDOUBLE_ABI.
	(libm2pim_la_CFLAGS): Add TARGET_LONGDOUBLE_ABI.
	(libm2pim_la_M2FLAGS): Add TARGET_LONGDOUBLE_ABI.
	* libm2pim/Makefile.in: Rebuild.

gcc/testsuite/ChangeLog:

	* gm2/extensions/pass/libc.def: Add spacing.
	* gm2/pimlib/logitech/run/pass/realconv.mod: Add debugging print.
	* gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp:
	Add -fdebug-builtins flag.
	* lib/gm2.exp (gm2_target_compile_default): Add
	-mabi=ieeelongdouble if the target is powerpc.
	(gm2_link_flags): Add
	-mabi=ieeelongdouble if the target is powerpc.
	* gm2/pim/intrinsic/run/pass/cstub.c: New test.
	* gm2/pim/intrinsic/run/pass/cstub.def: New test.
	* gm2/pim/intrinsic/run/pass/pim-intrinsic-run-pass.exp: New test.
	* gm2/pim/intrinsic/run/pass/test.mod: New test.
	* gm2/pim/run/pass/builtins.mod: New test.
	* gm2/pim/run/pass/convert1.mod: New test.
	* gm2/pim/run/pass/longint1.mod: New test.
	* gm2/pim/run/pass/longint2.mod: New test.
	* gm2/pim/run/pass/longint3.mod: New test.
	* gm2/pim/run/pass/longint4.mod: New test.
	* gm2/pim/run/pass/longint5.mod: New test.
	* gm2/pim/run/pass/longint6.mod: New test.
	* gm2/pim/run/pass/longint7.mod: New test.
	* gm2/pim/run/pass/longint8.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove stale Autoconf checks for Perl</title>
<updated>2023-06-02T07:51:14+00:00</updated>
<author>
<name>Thomas Schwinge</name>
<email>thomas@codesourcery.com</email>
</author>
<published>2023-05-16T10:00:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=49153588abc4eb8ba6a16b9cb9ff65a47f8e0fdb'/>
<id>49153588abc4eb8ba6a16b9cb9ff65a47f8e0fdb</id>
<content type='text'>
Subversion r110220 (Git commit 03b8fe495d716c004f5491eb2347537f115ab2d8) for
PR25884 "libgomp should not require perl to compile" removed all '$(PERL)'
usage from libgomp -- but didn't remove the then-unused Autoconf Perl check
itself.  Later, this Autoconf Perl check appears to have been copied from
libgomp into other GCC libraries, likewise unused.

	libgomp/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	libatomic/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	libgm2/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* libm2cor/Makefile.in: Likewise.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
	libitm/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Subversion r110220 (Git commit 03b8fe495d716c004f5491eb2347537f115ab2d8) for
PR25884 "libgomp should not require perl to compile" removed all '$(PERL)'
usage from libgomp -- but didn't remove the then-unused Autoconf Perl check
itself.  Later, this Autoconf Perl check appears to have been copied from
libgomp into other GCC libraries, likewise unused.

	libgomp/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	libatomic/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	libgm2/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* libm2cor/Makefile.in: Likewise.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
	libitm/
	* configure.ac (PERL): Remove.
	* configure: Regenerate.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/109879 WholeIO.ReadCard and ReadInt should consume leading space</title>
<updated>2023-05-16T23:18:56+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-05-16T23:18:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=509eef9314b24eff20a5dbdd92f6ab52e2c0c786'/>
<id>509eef9314b24eff20a5dbdd92f6ab52e2c0c786</id>
<content type='text'>
The Read{TYPE} procedures in LongIO, LongWholeIO, RealIO, ShortWholeIO and
WholeIO all require skip space functionality.  A new module TextUtil
is supplied with this functionality and the previous modules have been
changed to call SkipSpaces.

gcc/m2/ChangeLog:

	PR modula2/109879
	* gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextIO.mod: Import SkipSpaces.
	* gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextUtil.def: New file.
	* gm2-libs-iso/TextUtil.mod: New file.

libgm2/ChangeLog:

	PR modula2/109879
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am (M2DEFS): Add TextUtil.def.
	(M2MODS): Add TextUtil.mod.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.

gcc/testsuite/ChangeLog:

	PR modula2/109879
	* gm2/isolib/run/pass/testreadint.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Read{TYPE} procedures in LongIO, LongWholeIO, RealIO, ShortWholeIO and
WholeIO all require skip space functionality.  A new module TextUtil
is supplied with this functionality and the previous modules have been
changed to call SkipSpaces.

gcc/m2/ChangeLog:

	PR modula2/109879
	* gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextIO.mod: Import SkipSpaces.
	* gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextUtil.def: New file.
	* gm2-libs-iso/TextUtil.mod: New file.

libgm2/ChangeLog:

	PR modula2/109879
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am (M2DEFS): Add TextUtil.def.
	(M2MODS): Add TextUtil.mod.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.in: Regenerate.
	* libm2min/Makefile.in: Regenerate.
	* libm2pim/Makefile.in: Regenerate.

gcc/testsuite/ChangeLog:

	PR modula2/109879
	* gm2/isolib/run/pass/testreadint.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgm2: Adjust 'autogen.sh' to 'ACLOCAL_AMFLAGS', and simplify</title>
<updated>2023-05-08T13:51:59+00:00</updated>
<author>
<name>Thomas Schwinge</name>
<email>thomas@codesourcery.com</email>
</author>
<published>2023-04-11T19:40:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=8b8a4fb8eff662554207e2ba9ed6afb0f6c5abaf'/>
<id>8b8a4fb8eff662554207e2ba9ed6afb0f6c5abaf</id>
<content type='text'>
Specifying explicit '-I ..' before '-I ../config' is what (most) other GCC
components do.  Specifying '-I .' is not necessary.

With the order of '-I's aligned, 'autogen.sh' and plain 'autoreconf' then
produce identical results.

	libgm2/
	* autogen.sh: For 'aclocal', 'autoreconf', remove '-I .',
	add '-I ..'.
	* Makefile.am (ACLOCAL_AMFLAGS): Remove '-I .'.
	* libm2cor/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2iso/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2log/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2min/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2pim/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* aclocal.m4: Regenerate.
	* Makefile.in: Likewise.
	* libm2cor/Makefile.in: Likewise.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifying explicit '-I ..' before '-I ../config' is what (most) other GCC
components do.  Specifying '-I .' is not necessary.

With the order of '-I's aligned, 'autogen.sh' and plain 'autoreconf' then
produce identical results.

	libgm2/
	* autogen.sh: For 'aclocal', 'autoreconf', remove '-I .',
	add '-I ..'.
	* Makefile.am (ACLOCAL_AMFLAGS): Remove '-I .'.
	* libm2cor/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2iso/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2log/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2min/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* libm2pim/Makefile.am (ACLOCAL_AMFLAGS): Likewise.
	* aclocal.m4: Regenerate.
	* Makefile.in: Likewise.
	* libm2cor/Makefile.in: Likewise.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>modula-2 module registration process seems to fail with shared libraries [PR108261]</title>
<updated>2023-02-25T16:28:19+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-02-25T16:28:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=05652ac4e8b8685fe0c0f4ee2f75516d28bbf892'/>
<id>05652ac4e8b8685fe0c0f4ee2f75516d28bbf892</id>
<content type='text'>
The commit adds pathnames to modula-2 which in turn appears in any
external symbol.  This is necessary to allow different dialects of
libraries to coexist (different implementations of SYSTEM and Storage
for example in libm2pim and libm2iso).  It also makes it easier to
debug as the library name forms part of the external mangled name.
By default pathnames are not user facing.  This commit fixes
PR108261.

gcc/ChangeLog:

	PR modula2/108261
	* doc/gm2.texi (-fm2-pathname): New option documented.
	(-fm2-pathnameI): New option documented.
	(-fm2-prefix=): New option documented.
	(-fruntime-modules=): Update default module list.

gcc/m2/ChangeLog:

	PR modula2/108261
	* Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
	remove.  DynamicPath.def add.
	(GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
	DynamicPath.mod add.
	* Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
	dependency.
	(PGE-DEF): New definition.
	(BUILD-BOOT-PG-H): New dependency.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
	dependency.
	(BUILD-BOOT-PGE-H): New dependency.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
	dependency.
	(GM2PATH): Add pathname entries.
	(m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
	dependency.
	(m2/boot-bin/mc-opt$(exeext)): Fix -I path.
	* gm2-compiler/DynamicStringPath.def: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): New procedure definition.
	* gm2-compiler/DynamicStringPath.mod: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): Remove Debugging conditional.
	* gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
	GetLibName.
	(Debugging): New declaration.
	(GetFullSymName): Re-implemented to prefix (mange) libname
	to any extern variable/procedure which is IsExportQualified.
	* gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
	* gm2-compiler/M2Graph.mod (resolveImports): Add libname.
	* gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
	(GetM2Prefix): New procedure function.
	(SetM2PathName): New procedure.
	(GetM2PathName): New procedure function.
	* gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
	(GetM2Prefix): New procedure function implemented.
	(SetM2PathName): New procedure implemented.
	(GetM2PathName): New procedure function implemented.
	(RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
	* gm2-compiler/M2Quads.mod: Import GetLibName.
	(SafeRequestSym) Pass result of GetLibName to RequestDependant.
	(callRequestDependant): Add libname as a parameter.
	(BuildM2InitFunction): Add libname as a parameter.
	(BuildM2FiniFunction): Add libname as a parameter.
	(BuildM2CtorFunction): Add libname as a parameter.
	* gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
	if a definition source was found.
	* gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
	libname parameter.
	(PutLibName): New procedure.
	(GetLibName): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
	libname parameter.
	(GenName): Add libname parameter.
	(InitCtorFields): Add moduleSym as a parameter.
	(PutCtorExtern): Add libname parameter to GenName.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
	(_M2_DynamicPath_init): ...to this.
	(_M2_PathName_init): Added.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
	Add m2pim as the manged component of the exported symbol.
	(m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
	* gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
	(M2Options_GetM2Prefix): New function.
	(M2Options_SetM2PathName): New function.
	(M2Options_GetM2PathName): New function.
	* gm2-lang.cc (push_back_Ipath): New function.
	(add_one_import_path): New function.
	(gm2_langhook_handle_option): Record -I component.  Call
	SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
	component.  Call SetM2Prefix when -fm2-prefix= is seen.
	(gm2_langhook_post_options): Iterative over pathname entries
	and call SetM2PathName, SetSearchPath as appropriate.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/RTint.mod (FindVector): Rename variables.
	(initInputVector): Rename variables.
	(initOutputVector): Rename variables.
	(InitTimeVector): Rename variables.
	(FindVectorNo): Rename variables.
	(FindPendingVector): Rename variables.
	(ReArmTimeVector): Rename variables.
	(GetTimeVector): Rename variables.
	(AttachVector): Rename variables.
	(AttachVector): Rename variables.
	(IncludeVector): Rename variables.
	(ExcludeVector): Rename variables.
	(AddFd): Rename variables.
	(AddFd): Rename variables.
	(DumpPendingQueue): Rename variables.
	(stop): Remove.
	(activatePending): Rename variables.
	(Listen): Rename variables.
	* gm2-libs/libc.def (snprintf): New function.
	* gm2-libs/sckt.def: Change all exported identifiers to be
	export qualified.
	* gm2spec.cc (push_back_Ipath): New function.
	(add_m2_I_path): New function.
	(lang_specific_driver): Skip -fm2-pathname= and remember pathname.
	Skip -I and record the path and current pathname.  Call add_m2_I_path.
	* lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
	* lang.opt (-fm2-pathname=): New entry.
	(-fm2-pathname): New entry.
	(-fm2-prefix=): New entry.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
	* mc-boot-ch/Glibc.c (libc_snprintf): New function.
	* mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
	(M2RTS_RegisterModule): Changed prototype.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* pge-boot/GASCII.c: Rebuild.
	* pge-boot/GArgs.c: Rebuild.
	* pge-boot/GAssertion.c: Rebuild.
	* pge-boot/GDebug.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GLists.c: Rebuild.
	* pge-boot/GM2Dependent.c: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GNumberIO.c: Rebuild.
	* pge-boot/GOutput.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GSFIO.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GStorage.c: Rebuild.
	* pge-boot/GStrCase.c: Rebuild.
	* pge-boot/GStrIO.c: Rebuild.
	* pge-boot/GStrLib.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	* pge-boot/GSysStorage.c: Rebuild.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	* pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	* pge-boot/Glibc.c (libc_snprintf): New function.
	* pge-boot/Glibc.h (libc_snprintf): New prototype.
	* pge-boot/Gpge.c (_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	* pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
	(_M2_RTExceptions_fini): ... to this.
	(_M2_M2EXCEPTION_finish): Rename this...
	(_M2_M2EXCEPTION_fini): ... to this.
	(_M2_M2RTS_finish): Rename this...
	(_M2_M2RTS_fini): ... to this.
	(_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	(_M2_StrLib_finish): Rename this...
	(_M2_StrLib_fini): ... to this.
	(_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	(_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	(_M2_IO_finish): Rename this...
	(_M2_IO_fini): ... to this.
	(_M2_StdIO_finish): Rename this...
	(_M2_StdIO_fini): ... to this.
	(_M2_Debug_finish): Rename this...
	(_M2_Debug_fini): ... to this.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	(_M2_Storage_finish): Rename this...
	(_M2_Storage_fini): ... to this.
	(_M2_StrIO_finish): Rename this...
	(_M2_StrIO_fini): ... to this.
	(_M2_DynamicStrings_finish): Rename this...
	(_M2_DynamicStrings_fini): ... to this.
	(_M2_Assertion_finish): Rename this...
	(_M2_Assertion_fini): ... to this.
	(_M2_Indexing_finish): Rename this...
	(_M2_Indexing_fini): ... to this.
	(_M2_NameKey_finish): Rename this...
	(_M2_NameKey_fini): ... to this.
	(_M2_NumberIO_finish): Rename this...
	(_M2_NumberIO_fini): ... to this.
	(_M2_PushBackInput_finish): Rename this...
	(_M2_PushBackInput_fini): ... to this.
	(_M2_SymbolKey_finish): Rename this...
	(_M2_SymbolKey_fini): ... to this.
	(_M2_UnixArgs_finish): Rename this...
	(_M2_UnixArgs_fini): ... to this.
	(_M2_FIO_finish): Rename this...
	(_M2_FIO_fini): ... to this.
	(_M2_SFIO_finish): Rename this...
	(_M2_SFIO_fini): ... to this.
	(_M2_StrCase_finish): Rename this...
	(_M2_StrCase_fini): ... to this.
	(_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	(_M2_Lists_finish): Rename this...
	(_M2_Lists_fini): ... to this.
	(_M2_Args_finish): Rename this...
	(_M2_Args_fini): ... to this.
	(_M2_Output_finish): Rename this...
	(_M2_Output_fini): ... to this.
	(_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
	procedure names to their name mangled counterparts.
	* gm2-libs-iso/wrapsock.c: Removed.
	* gm2-libs-iso/wraptime.c: Removed.
	* mc-boot/Gpth.h: Removed.
	* gm2-compiler/PathName.def: New file.
	* gm2-compiler/PathName.mod: New file.

libgm2/ChangeLog:

	PR modula2/108261
	* libm2cor/KeyBoardLEDs.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(KeyBoardLEDs_SwitchScroll): EXPORT.
	(KeyBoardLEDs_SwitchNum): EXPORT.
	(KeyBoardLEDs_SwitchCaps): EXPORT.
	(KeyBoardLEDs_SwitchLeds): EXPORT.
	(_M2_KeyBoardLEDs_init): M2EXPORT.
	(_M2_KeyBoardLEDs_finish): M2EXPORT.
	(_M2_KeyBoardLEDs_dep): M2EXPORT.
	* libm2cor/Makefile.am (libm2cor_la_M2FLAGS): Define
	path names.
	* libm2cor/Makefile.in: Rebuild.
	* libm2iso/ErrnoCategory.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(ErrnoCategory_IsErrnoHard): EXPORT.
	(ErrnoCategory_IsErrnoSoft): EXPORT.
	(ErrnoCategory_UnAvailable): EXPORT.
	(ErrnoCategory_GetOpenResults): EXPORT.
	(_M2_ErrnoCategory_init): M2EXPORT.
	(_M2_ErrnoCategory_fini): M2EXPORT.
	(_M2_ErrnoCategory_dep): M2EXPORT.
	(_M2_ErrnoCategory_ctor): M2EXPORT.
	* libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Define
	path names.
	* libm2iso/Makefile.in: Rebuild.
	* libm2iso/RTco.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(newSem): Add module libname prefix to HaltC.
	(currentThread): Remove variable and replace with a function.
	(never): Add module libname prefix to HaltC.
	(initThread): Add module libname prefix to HaltC.
	* libm2iso/m2rts.h (str): New define.
	(M2RTS_RequestDependant): Change to the mangled name equivalent.
	(M2RTS_RegisterModule): Change to the mangled name equivalent.
	(m2iso_M2RTS_RequestDependant): Add libname parameter.
	(m2iso_M2RTS_RegisterModule): Add libname parameter.
	(m2pim_M2RTS_RegisterModule): Add libname parameter.
	(_M2_M2RTS_init): Rename this...
	(m2iso_M2_M2RTS_init): ...to this.
	(M2RTS_ConstructModules): Change to the mangled name equivalent.
	(M2RTS_Terminate): Change to the mangled name equivalent.
	(M2RTS_DeconstructModules): Change to the mangled name equivalent.
	(m2iso_M2RTS_ConstructModules): Add libname parameter.
	(m2iso_M2RTS_Terminate): Add libname parameter.
	(m2iso_M2RTS_DeconstructModules): Add libname parameter.
	(M2RTS_HaltC): Rename this...
	(m2iso_M2RTS_HaltC): ...to this.
	* libm2iso/wrapsock.c (EXPORT): New define.
	(IMPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(m2iso_M2RTS_RequestDependant): Add prototype.
	(wrapsock_clientOpen): EXPORT.
	(wrapsock_clientOpenIP): EXPORT.
	(wrapsock_getClientPortNo): EXPORT.
	(wrapsock_getClientHostname): EXPORT.
	(wrapsock_getClientSocketFd): EXPORT.
	(wrapsock_getClientIP): EXPORT.
	(wrapsock_getPushBackChar): EXPORT.
	(wrapsock_setPushBackChar): EXPORT.
	(wrapsock_getSizeOfClientInfo): EXPORT.
	(_M2_wrapsock_init): M2EXPORT.
	(_M2_wrapsock_fini): M2EXPORT.
	(ctor): M2EXPORT.  New function.
	* libm2iso/wraptime.c: Rename to...
	* libm2iso/wraptime.cc: ...this.
	(EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(wraptime_InitTimeval): EXPORT.
	(wraptime_KillTimeval): EXPORT.
	(wraptime_InitTimezone): EXPORT.
	(wraptime_KillTimezone): EXPORT.
	(wraptime_InitTM): EXPORT.
	(wraptime_KillTM): EXPORT.
	(wraptime_gettimeofday): EXPORT.
	(wraptime_settimeofday): EXPORT.
	(wraptime_GetFractions): EXPORT.
	(wraptime_localtime_r): EXPORT.
	(wraptime_GetYear): EXPORT.
	(wraptime_GetMonth): EXPORT.
	(wraptime_GetDay): EXPORT.
	(wraptime_GetHour): EXPORT.
	(wraptime_GetMinute): EXPORT.
	(wraptime_GetSecond): EXPORT.
	(wraptime_GetSummerTime): EXPORT.
	(wraptime_GetDST): EXPORT.
	(wraptime_SetTimezone): EXPORT.
	(wraptime_SetTimeval): EXPORT.
	(_M2_wraptime_init): M2EXPORT.
	(_M2_wraptime_fini): M2EXPORT.
	(ctor): M2EXPORT.  New function.
	* libm2log/Makefile.am (libm2log_la_M2FLAGS): Define
	path names.
	* libm2log/Makefile.in:
	* libm2min/Makefile.am (libm2min_la_M2FLAGS): Define
	path names.
	* libm2min/Makefile.in:
	* libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Define
	path names.
	* libm2pim/Makefile.in:
	* libm2pim/Selective.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(Selective_Select): EXPORT.
	(Selective_InitTime): EXPORT.
	(Selective_GetTime): EXPORT.
	(Selective_SetTime): EXPORT.
	(Selective_KillTime): EXPORT.
	(Selective_InitSet): EXPORT.
	(Selective_KillSet): EXPORT.
	(Selective_FdZero): EXPORT.
	(Selective_FdSet): EXPORT.
	(Selective_FdClr): EXPORT.
	(Selective_FdIsSet): EXPORT.
	(Selective_GetTimeOfDay): EXPORT.
	(Selective_MaxFdsPlusOne): EXPORT.
	(Selective_WriteCharRaw): EXPORT.
	(Selective_ReadCharRaw): EXPORT.
	(_M2_Selective_init): M2EXPORT.
	(_M2_Selective_fini): M2EXPORT.
	(_M2_Selective_dep): M2EXPORT.
	(_M2_Selective_ctor): M2EXPORT.
	* libm2pim/SysExceptions.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(SysExceptions_InitExceptionHandlers): EXPORT.
	(_M2_SysExceptions_init): M2EXPORT.
	(_M2_SysExceptions_fini): M2EXPORT.
	(_M2_SysExceptions_dep): M2EXPORT.
	(_M2_SysExceptions_ctor): M2EXPORT.
	* libm2pim/UnixArgs.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(UnixArgs_GetArgC): EXPORT.
	(UnixArgs_GetArgV): EXPORT.
	(UnixArgs_GetEnvV): EXPORT.
	(_M2_UnixArgs_init): M2EXPORT.
	(_M2_UnixArgs_fini): M2EXPORT.
	(_M2_UnixArgs_dep): M2EXPORT.
	(_M2_UnixArgs_ctor): M2EXPORT.
	* libm2pim/cgetopt.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(cgetopt_getopt): EXPORT.
	(cgetopt_getopt_long): EXPORT.
	(cgetopt_getopt_long_only): EXPORT.
	(cgetopt_InitOptions): EXPORT.
	(cgetopt_KillOptions): EXPORT.
	(cgetopt_SetOption): EXPORT.
	(cgetopt_GetLongOptionArray): EXPORT.
	(_M2_cgetopt_init): M2EXPORT.
	(_M2_cgetopt_fini): M2EXPORT.
	(_M2_cgetopt_dep): M2EXPORT.
	(_M2_cgetopt_ctor): M2EXPORT.
	* libm2pim/dtoa.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(dtoa_strtod): EXPORT.
	(dtoa_calcmaxsig): EXPORT.
	(dtoa_calcdecimal): EXPORT.
	(dtoa_calcsign): EXPORT.
	(dtoa_dtoa): EXPORT.
	(_M2_dtoa_init): M2EXPORT.
	(_M2_dtoa_fini): M2EXPORT.
	(_M2_dtoa_dep): M2EXPORT.
	(_M2_dtoa_ctor): M2EXPORT.
	* libm2pim/errno.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(errno_geterrno): EXPORT.
	(_M2_errno_init): M2EXPORT.
	(_M2_errno_fini): M2EXPORT.
	(_M2_errno_dep): M2EXPORT.
	(_M2_errno_ctor): M2EXPORT.
	* libm2pim/ldtoa.cc (EXPORT): New define.
	(IMPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(dtoa_calcmaxsig): EXPORT.
	(dtoa_calcdecimal): EXPORT.
	(dtoa_calcsign): EXPORT.
	(ldtoa_strtold): EXPORT.
	(ldtoa_ldtoa): EXPORT.
	(_M2_ldtoa_init): M2EXPORT.
	(_M2_ldtoa_fini): M2EXPORT.
	(_M2_ldtoa_dep): M2EXPORT.
	(_M2_ldtoa_ctor): M2EXPORT.
	* libm2pim/sckt.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(tcpServerEstablishPort): EXPORT.
	(tcpServerEstablish): EXPORT.
	(tcpServerAccept): EXPORT.
	(tcpServerPortNo): EXPORT.
	(tcpServerSocketFd): EXPORT.
	(getLocalIP): EXPORT.
	(tcpServerIP): EXPORT.
	(tcpServerClientIP): EXPORT.
	(tcpServerClientPortNo): EXPORT.
	(tcpClientSocket): EXPORT.
	(tcpClientSocketIP): EXPORT.
	(tcpClientConnect): EXPORT.
	(tcpClientPortNo): EXPORT.
	(tcpClientSocketFd): EXPORT.
	(tcpClientIP): EXPORT.
	(_M2_sckt_init): M2EXPORT.
	(_M2_sckt_finish): M2EXPORT.
	(_M2_sckt_dep): M2EXPORT.
	(_M2_sckt_ctor): M2EXPORT.
	* libm2pim/termios.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(_M2_termios_init): M2EXPORT.
	(_M2_termios_fini): M2EXPORT.
	(_M2_termios_dep): M2EXPORT.
	(_M2_termios_ctor): M2EXPORT.
	* libm2pim/wrapc.c (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(wrapc_strtime): EXPORT.
	(wrapc_filesize): EXPORT.
	(wrapc_filemtime): EXPORT.
	(wrapc_fileinode): EXPORT.
	(wrapc_getrand): EXPORT.
	(wrapc_getusername): EXPORT.
	(wrapc_getnameuidgid): EXPORT.
	(wrapc_signbit): EXPORT.
	(wrapc_signbitl): EXPORT.
	(wrapc_signbitf): EXPORT.
	(wrapc_isfinite): EXPORT.
	(wrapc_isfinitel): EXPORT.
	(wrapc_isfinitef): EXPORT.
	(_M2_wrapc_init): M2EXPORT.
	(_M2_wrapc_fini): M2EXPORT.
	(_M2_wrapc_ctor): M2EXPORT.

gcc/testsuite/ChangeLog:

	PR modula2/108261
	* gm2/examples/callingC/pass/examples-callingC-pass.exp: Tidy up
	variable access.
	* gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp: Tidy up
	variable access.
	* gm2/examples/cpp/pass/examples-cpp-pass.exp: Tidy up
	variable access.
	* gm2/examples/cppDef/pass/examples-cppDef-pass.exp: Tidy up
	variable access.
	* gm2/examples/hello/pass/examples-hello-pass.exp: Tidy up
	variable access.
	* gm2/examples/map/pass/examples-map-pass.exp: Tidy up
	variable access.
	* gm2/iso/check/fail/iso-check-fail.exp: Add pathname.
	* gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp:
	Add pathname.
	* gm2/link/externalscaffold/pass/scaffold.c: Add mangled export name.
	* gm2/pimlib/base/run/pass/FIO.mod: Updated test code.
	* gm2/pimlib/base/run/pass/StrLib.mod: Updated test code.
	* gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp: Remove path.
	* gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp:
	Tidy up variable access.
	* gm2/switches/auto-init/fail/switches-auto-init-fail.exp: Add pathname.
	* gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp:
	Add pathname.
	* gm2/switches/makeall/fail/switches-makeall-fail.exp: Remove -fmakeall.
	* gm2/switches/makeall/pass/switches-makeall-pass.exp: Remove -fmakeall.
	* lib/gm2-simple.exp (gm2_keep_executable): New global variable.
	(gm2_simple_execute): Keep executable if global is true.
	* lib/gm2-torture.exp: Add ; after global variable access.
	* lib/gm2.exp: Set up pathnames.
	* gm2/projects/pim/run/pass/tower/AdvCmd.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvCmd.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvIntroduction.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvIntroduction.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvMap.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvMap.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvMath.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvMath.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.bnf: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvSound.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvSound.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvSystem.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvSystem.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvTreasure.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvTreasure.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvUtil.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvUtil.mod: New test.
	* gm2/projects/pim/run/pass/tower/DrawG.def: New test.
	* gm2/projects/pim/run/pass/tower/DrawG.mod: New test.
	* gm2/projects/pim/run/pass/tower/DrawL.def: New test.
	* gm2/projects/pim/run/pass/tower/DrawL.mod: New test.
	* gm2/projects/pim/run/pass/tower/Dungeon.mod: New test.
	* gm2/projects/pim/run/pass/tower/Lock.def: New test.
	* gm2/projects/pim/run/pass/tower/Lock.mod: New test.
	* gm2/projects/pim/run/pass/tower/ProcArgs.def: New test.
	* gm2/projects/pim/run/pass/tower/ProcArgs.mod: New test.
	* gm2/projects/pim/run/pass/tower/Screen.def: New test.
	* gm2/projects/pim/run/pass/tower/Screen.mod: New test.
	* gm2/projects/pim/run/pass/tower/SocketControl.c: New test.
	* gm2/projects/pim/run/pass/tower/SocketControl.def: New test.
	* gm2/projects/pim/run/pass/tower/Window.def: New test.
	* gm2/projects/pim/run/pass/tower/Window.mod: New test.
	* gm2/projects/pim/run/pass/tower/adv.flex: New test.
	* gm2/projects/pim/run/pass/tower/advflex.c: New test.
	* gm2/projects/pim/run/pass/tower/advflex.def: New test.
	* gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp:
	New test.
	* gm2/projects/pim/run/pass/tower/star: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The commit adds pathnames to modula-2 which in turn appears in any
external symbol.  This is necessary to allow different dialects of
libraries to coexist (different implementations of SYSTEM and Storage
for example in libm2pim and libm2iso).  It also makes it easier to
debug as the library name forms part of the external mangled name.
By default pathnames are not user facing.  This commit fixes
PR108261.

gcc/ChangeLog:

	PR modula2/108261
	* doc/gm2.texi (-fm2-pathname): New option documented.
	(-fm2-pathnameI): New option documented.
	(-fm2-prefix=): New option documented.
	(-fruntime-modules=): Update default module list.

gcc/m2/ChangeLog:

	PR modula2/108261
	* Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
	remove.  DynamicPath.def add.
	(GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
	DynamicPath.mod add.
	* Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
	dependency.
	(PGE-DEF): New definition.
	(BUILD-BOOT-PG-H): New dependency.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
	dependency.
	(BUILD-BOOT-PGE-H): New dependency.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
	dependency.
	(GM2PATH): Add pathname entries.
	(m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
	dependency.
	(m2/boot-bin/mc-opt$(exeext)): Fix -I path.
	* gm2-compiler/DynamicStringPath.def: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): New procedure definition.
	* gm2-compiler/DynamicStringPath.mod: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): Remove Debugging conditional.
	* gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
	GetLibName.
	(Debugging): New declaration.
	(GetFullSymName): Re-implemented to prefix (mange) libname
	to any extern variable/procedure which is IsExportQualified.
	* gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
	* gm2-compiler/M2Graph.mod (resolveImports): Add libname.
	* gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
	(GetM2Prefix): New procedure function.
	(SetM2PathName): New procedure.
	(GetM2PathName): New procedure function.
	* gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
	(GetM2Prefix): New procedure function implemented.
	(SetM2PathName): New procedure implemented.
	(GetM2PathName): New procedure function implemented.
	(RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
	* gm2-compiler/M2Quads.mod: Import GetLibName.
	(SafeRequestSym) Pass result of GetLibName to RequestDependant.
	(callRequestDependant): Add libname as a parameter.
	(BuildM2InitFunction): Add libname as a parameter.
	(BuildM2FiniFunction): Add libname as a parameter.
	(BuildM2CtorFunction): Add libname as a parameter.
	* gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
	if a definition source was found.
	* gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
	libname parameter.
	(PutLibName): New procedure.
	(GetLibName): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
	libname parameter.
	(GenName): Add libname parameter.
	(InitCtorFields): Add moduleSym as a parameter.
	(PutCtorExtern): Add libname parameter to GenName.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
	(_M2_DynamicPath_init): ...to this.
	(_M2_PathName_init): Added.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
	Add m2pim as the manged component of the exported symbol.
	(m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
	* gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
	(M2Options_GetM2Prefix): New function.
	(M2Options_SetM2PathName): New function.
	(M2Options_GetM2PathName): New function.
	* gm2-lang.cc (push_back_Ipath): New function.
	(add_one_import_path): New function.
	(gm2_langhook_handle_option): Record -I component.  Call
	SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
	component.  Call SetM2Prefix when -fm2-prefix= is seen.
	(gm2_langhook_post_options): Iterative over pathname entries
	and call SetM2PathName, SetSearchPath as appropriate.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/RTint.mod (FindVector): Rename variables.
	(initInputVector): Rename variables.
	(initOutputVector): Rename variables.
	(InitTimeVector): Rename variables.
	(FindVectorNo): Rename variables.
	(FindPendingVector): Rename variables.
	(ReArmTimeVector): Rename variables.
	(GetTimeVector): Rename variables.
	(AttachVector): Rename variables.
	(AttachVector): Rename variables.
	(IncludeVector): Rename variables.
	(ExcludeVector): Rename variables.
	(AddFd): Rename variables.
	(AddFd): Rename variables.
	(DumpPendingQueue): Rename variables.
	(stop): Remove.
	(activatePending): Rename variables.
	(Listen): Rename variables.
	* gm2-libs/libc.def (snprintf): New function.
	* gm2-libs/sckt.def: Change all exported identifiers to be
	export qualified.
	* gm2spec.cc (push_back_Ipath): New function.
	(add_m2_I_path): New function.
	(lang_specific_driver): Skip -fm2-pathname= and remember pathname.
	Skip -I and record the path and current pathname.  Call add_m2_I_path.
	* lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
	* lang.opt (-fm2-pathname=): New entry.
	(-fm2-pathname): New entry.
	(-fm2-prefix=): New entry.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
	* mc-boot-ch/Glibc.c (libc_snprintf): New function.
	* mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
	(M2RTS_RegisterModule): Changed prototype.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* pge-boot/GASCII.c: Rebuild.
	* pge-boot/GArgs.c: Rebuild.
	* pge-boot/GAssertion.c: Rebuild.
	* pge-boot/GDebug.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GLists.c: Rebuild.
	* pge-boot/GM2Dependent.c: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GNumberIO.c: Rebuild.
	* pge-boot/GOutput.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GSFIO.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GStorage.c: Rebuild.
	* pge-boot/GStrCase.c: Rebuild.
	* pge-boot/GStrIO.c: Rebuild.
	* pge-boot/GStrLib.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	* pge-boot/GSysStorage.c: Rebuild.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	* pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	* pge-boot/Glibc.c (libc_snprintf): New function.
	* pge-boot/Glibc.h (libc_snprintf): New prototype.
	* pge-boot/Gpge.c (_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	* pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
	(_M2_RTExceptions_fini): ... to this.
	(_M2_M2EXCEPTION_finish): Rename this...
	(_M2_M2EXCEPTION_fini): ... to this.
	(_M2_M2RTS_finish): Rename this...
	(_M2_M2RTS_fini): ... to this.
	(_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	(_M2_StrLib_finish): Rename this...
	(_M2_StrLib_fini): ... to this.
	(_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	(_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	(_M2_IO_finish): Rename this...
	(_M2_IO_fini): ... to this.
	(_M2_StdIO_finish): Rename this...
	(_M2_StdIO_fini): ... to this.
	(_M2_Debug_finish): Rename this...
	(_M2_Debug_fini): ... to this.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	(_M2_Storage_finish): Rename this...
	(_M2_Storage_fini): ... to this.
	(_M2_StrIO_finish): Rename this...
	(_M2_StrIO_fini): ... to this.
	(_M2_DynamicStrings_finish): Rename this...
	(_M2_DynamicStrings_fini): ... to this.
	(_M2_Assertion_finish): Rename this...
	(_M2_Assertion_fini): ... to this.
	(_M2_Indexing_finish): Rename this...
	(_M2_Indexing_fini): ... to this.
	(_M2_NameKey_finish): Rename this...
	(_M2_NameKey_fini): ... to this.
	(_M2_NumberIO_finish): Rename this...
	(_M2_NumberIO_fini): ... to this.
	(_M2_PushBackInput_finish): Rename this...
	(_M2_PushBackInput_fini): ... to this.
	(_M2_SymbolKey_finish): Rename this...
	(_M2_SymbolKey_fini): ... to this.
	(_M2_UnixArgs_finish): Rename this...
	(_M2_UnixArgs_fini): ... to this.
	(_M2_FIO_finish): Rename this...
	(_M2_FIO_fini): ... to this.
	(_M2_SFIO_finish): Rename this...
	(_M2_SFIO_fini): ... to this.
	(_M2_StrCase_finish): Rename this...
	(_M2_StrCase_fini): ... to this.
	(_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	(_M2_Lists_finish): Rename this...
	(_M2_Lists_fini): ... to this.
	(_M2_Args_finish): Rename this...
	(_M2_Args_fini): ... to this.
	(_M2_Output_finish): Rename this...
	(_M2_Output_fini): ... to this.
	(_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
	procedure names to their name mangled counterparts.
	* gm2-libs-iso/wrapsock.c: Removed.
	* gm2-libs-iso/wraptime.c: Removed.
	* mc-boot/Gpth.h: Removed.
	* gm2-compiler/PathName.def: New file.
	* gm2-compiler/PathName.mod: New file.

libgm2/ChangeLog:

	PR modula2/108261
	* libm2cor/KeyBoardLEDs.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(KeyBoardLEDs_SwitchScroll): EXPORT.
	(KeyBoardLEDs_SwitchNum): EXPORT.
	(KeyBoardLEDs_SwitchCaps): EXPORT.
	(KeyBoardLEDs_SwitchLeds): EXPORT.
	(_M2_KeyBoardLEDs_init): M2EXPORT.
	(_M2_KeyBoardLEDs_finish): M2EXPORT.
	(_M2_KeyBoardLEDs_dep): M2EXPORT.
	* libm2cor/Makefile.am (libm2cor_la_M2FLAGS): Define
	path names.
	* libm2cor/Makefile.in: Rebuild.
	* libm2iso/ErrnoCategory.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(ErrnoCategory_IsErrnoHard): EXPORT.
	(ErrnoCategory_IsErrnoSoft): EXPORT.
	(ErrnoCategory_UnAvailable): EXPORT.
	(ErrnoCategory_GetOpenResults): EXPORT.
	(_M2_ErrnoCategory_init): M2EXPORT.
	(_M2_ErrnoCategory_fini): M2EXPORT.
	(_M2_ErrnoCategory_dep): M2EXPORT.
	(_M2_ErrnoCategory_ctor): M2EXPORT.
	* libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Define
	path names.
	* libm2iso/Makefile.in: Rebuild.
	* libm2iso/RTco.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(newSem): Add module libname prefix to HaltC.
	(currentThread): Remove variable and replace with a function.
	(never): Add module libname prefix to HaltC.
	(initThread): Add module libname prefix to HaltC.
	* libm2iso/m2rts.h (str): New define.
	(M2RTS_RequestDependant): Change to the mangled name equivalent.
	(M2RTS_RegisterModule): Change to the mangled name equivalent.
	(m2iso_M2RTS_RequestDependant): Add libname parameter.
	(m2iso_M2RTS_RegisterModule): Add libname parameter.
	(m2pim_M2RTS_RegisterModule): Add libname parameter.
	(_M2_M2RTS_init): Rename this...
	(m2iso_M2_M2RTS_init): ...to this.
	(M2RTS_ConstructModules): Change to the mangled name equivalent.
	(M2RTS_Terminate): Change to the mangled name equivalent.
	(M2RTS_DeconstructModules): Change to the mangled name equivalent.
	(m2iso_M2RTS_ConstructModules): Add libname parameter.
	(m2iso_M2RTS_Terminate): Add libname parameter.
	(m2iso_M2RTS_DeconstructModules): Add libname parameter.
	(M2RTS_HaltC): Rename this...
	(m2iso_M2RTS_HaltC): ...to this.
	* libm2iso/wrapsock.c (EXPORT): New define.
	(IMPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(m2iso_M2RTS_RequestDependant): Add prototype.
	(wrapsock_clientOpen): EXPORT.
	(wrapsock_clientOpenIP): EXPORT.
	(wrapsock_getClientPortNo): EXPORT.
	(wrapsock_getClientHostname): EXPORT.
	(wrapsock_getClientSocketFd): EXPORT.
	(wrapsock_getClientIP): EXPORT.
	(wrapsock_getPushBackChar): EXPORT.
	(wrapsock_setPushBackChar): EXPORT.
	(wrapsock_getSizeOfClientInfo): EXPORT.
	(_M2_wrapsock_init): M2EXPORT.
	(_M2_wrapsock_fini): M2EXPORT.
	(ctor): M2EXPORT.  New function.
	* libm2iso/wraptime.c: Rename to...
	* libm2iso/wraptime.cc: ...this.
	(EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(wraptime_InitTimeval): EXPORT.
	(wraptime_KillTimeval): EXPORT.
	(wraptime_InitTimezone): EXPORT.
	(wraptime_KillTimezone): EXPORT.
	(wraptime_InitTM): EXPORT.
	(wraptime_KillTM): EXPORT.
	(wraptime_gettimeofday): EXPORT.
	(wraptime_settimeofday): EXPORT.
	(wraptime_GetFractions): EXPORT.
	(wraptime_localtime_r): EXPORT.
	(wraptime_GetYear): EXPORT.
	(wraptime_GetMonth): EXPORT.
	(wraptime_GetDay): EXPORT.
	(wraptime_GetHour): EXPORT.
	(wraptime_GetMinute): EXPORT.
	(wraptime_GetSecond): EXPORT.
	(wraptime_GetSummerTime): EXPORT.
	(wraptime_GetDST): EXPORT.
	(wraptime_SetTimezone): EXPORT.
	(wraptime_SetTimeval): EXPORT.
	(_M2_wraptime_init): M2EXPORT.
	(_M2_wraptime_fini): M2EXPORT.
	(ctor): M2EXPORT.  New function.
	* libm2log/Makefile.am (libm2log_la_M2FLAGS): Define
	path names.
	* libm2log/Makefile.in:
	* libm2min/Makefile.am (libm2min_la_M2FLAGS): Define
	path names.
	* libm2min/Makefile.in:
	* libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Define
	path names.
	* libm2pim/Makefile.in:
	* libm2pim/Selective.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(Selective_Select): EXPORT.
	(Selective_InitTime): EXPORT.
	(Selective_GetTime): EXPORT.
	(Selective_SetTime): EXPORT.
	(Selective_KillTime): EXPORT.
	(Selective_InitSet): EXPORT.
	(Selective_KillSet): EXPORT.
	(Selective_FdZero): EXPORT.
	(Selective_FdSet): EXPORT.
	(Selective_FdClr): EXPORT.
	(Selective_FdIsSet): EXPORT.
	(Selective_GetTimeOfDay): EXPORT.
	(Selective_MaxFdsPlusOne): EXPORT.
	(Selective_WriteCharRaw): EXPORT.
	(Selective_ReadCharRaw): EXPORT.
	(_M2_Selective_init): M2EXPORT.
	(_M2_Selective_fini): M2EXPORT.
	(_M2_Selective_dep): M2EXPORT.
	(_M2_Selective_ctor): M2EXPORT.
	* libm2pim/SysExceptions.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(SysExceptions_InitExceptionHandlers): EXPORT.
	(_M2_SysExceptions_init): M2EXPORT.
	(_M2_SysExceptions_fini): M2EXPORT.
	(_M2_SysExceptions_dep): M2EXPORT.
	(_M2_SysExceptions_ctor): M2EXPORT.
	* libm2pim/UnixArgs.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(UnixArgs_GetArgC): EXPORT.
	(UnixArgs_GetArgV): EXPORT.
	(UnixArgs_GetEnvV): EXPORT.
	(_M2_UnixArgs_init): M2EXPORT.
	(_M2_UnixArgs_fini): M2EXPORT.
	(_M2_UnixArgs_dep): M2EXPORT.
	(_M2_UnixArgs_ctor): M2EXPORT.
	* libm2pim/cgetopt.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(cgetopt_getopt): EXPORT.
	(cgetopt_getopt_long): EXPORT.
	(cgetopt_getopt_long_only): EXPORT.
	(cgetopt_InitOptions): EXPORT.
	(cgetopt_KillOptions): EXPORT.
	(cgetopt_SetOption): EXPORT.
	(cgetopt_GetLongOptionArray): EXPORT.
	(_M2_cgetopt_init): M2EXPORT.
	(_M2_cgetopt_fini): M2EXPORT.
	(_M2_cgetopt_dep): M2EXPORT.
	(_M2_cgetopt_ctor): M2EXPORT.
	* libm2pim/dtoa.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(dtoa_strtod): EXPORT.
	(dtoa_calcmaxsig): EXPORT.
	(dtoa_calcdecimal): EXPORT.
	(dtoa_calcsign): EXPORT.
	(dtoa_dtoa): EXPORT.
	(_M2_dtoa_init): M2EXPORT.
	(_M2_dtoa_fini): M2EXPORT.
	(_M2_dtoa_dep): M2EXPORT.
	(_M2_dtoa_ctor): M2EXPORT.
	* libm2pim/errno.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(errno_geterrno): EXPORT.
	(_M2_errno_init): M2EXPORT.
	(_M2_errno_fini): M2EXPORT.
	(_M2_errno_dep): M2EXPORT.
	(_M2_errno_ctor): M2EXPORT.
	* libm2pim/ldtoa.cc (EXPORT): New define.
	(IMPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(dtoa_calcmaxsig): EXPORT.
	(dtoa_calcdecimal): EXPORT.
	(dtoa_calcsign): EXPORT.
	(ldtoa_strtold): EXPORT.
	(ldtoa_ldtoa): EXPORT.
	(_M2_ldtoa_init): M2EXPORT.
	(_M2_ldtoa_fini): M2EXPORT.
	(_M2_ldtoa_dep): M2EXPORT.
	(_M2_ldtoa_ctor): M2EXPORT.
	* libm2pim/sckt.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(tcpServerEstablishPort): EXPORT.
	(tcpServerEstablish): EXPORT.
	(tcpServerAccept): EXPORT.
	(tcpServerPortNo): EXPORT.
	(tcpServerSocketFd): EXPORT.
	(getLocalIP): EXPORT.
	(tcpServerIP): EXPORT.
	(tcpServerClientIP): EXPORT.
	(tcpServerClientPortNo): EXPORT.
	(tcpClientSocket): EXPORT.
	(tcpClientSocketIP): EXPORT.
	(tcpClientConnect): EXPORT.
	(tcpClientPortNo): EXPORT.
	(tcpClientSocketFd): EXPORT.
	(tcpClientIP): EXPORT.
	(_M2_sckt_init): M2EXPORT.
	(_M2_sckt_finish): M2EXPORT.
	(_M2_sckt_dep): M2EXPORT.
	(_M2_sckt_ctor): M2EXPORT.
	* libm2pim/termios.cc (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(_M2_termios_init): M2EXPORT.
	(_M2_termios_fini): M2EXPORT.
	(_M2_termios_dep): M2EXPORT.
	(_M2_termios_ctor): M2EXPORT.
	* libm2pim/wrapc.c (EXPORT): New define.
	(M2EXPORT): New define.
	(M2LIBNAME): New define.
	(wrapc_strtime): EXPORT.
	(wrapc_filesize): EXPORT.
	(wrapc_filemtime): EXPORT.
	(wrapc_fileinode): EXPORT.
	(wrapc_getrand): EXPORT.
	(wrapc_getusername): EXPORT.
	(wrapc_getnameuidgid): EXPORT.
	(wrapc_signbit): EXPORT.
	(wrapc_signbitl): EXPORT.
	(wrapc_signbitf): EXPORT.
	(wrapc_isfinite): EXPORT.
	(wrapc_isfinitel): EXPORT.
	(wrapc_isfinitef): EXPORT.
	(_M2_wrapc_init): M2EXPORT.
	(_M2_wrapc_fini): M2EXPORT.
	(_M2_wrapc_ctor): M2EXPORT.

gcc/testsuite/ChangeLog:

	PR modula2/108261
	* gm2/examples/callingC/pass/examples-callingC-pass.exp: Tidy up
	variable access.
	* gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp: Tidy up
	variable access.
	* gm2/examples/cpp/pass/examples-cpp-pass.exp: Tidy up
	variable access.
	* gm2/examples/cppDef/pass/examples-cppDef-pass.exp: Tidy up
	variable access.
	* gm2/examples/hello/pass/examples-hello-pass.exp: Tidy up
	variable access.
	* gm2/examples/map/pass/examples-map-pass.exp: Tidy up
	variable access.
	* gm2/iso/check/fail/iso-check-fail.exp: Add pathname.
	* gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp:
	Add pathname.
	* gm2/link/externalscaffold/pass/scaffold.c: Add mangled export name.
	* gm2/pimlib/base/run/pass/FIO.mod: Updated test code.
	* gm2/pimlib/base/run/pass/StrLib.mod: Updated test code.
	* gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp: Remove path.
	* gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp:
	Tidy up variable access.
	* gm2/switches/auto-init/fail/switches-auto-init-fail.exp: Add pathname.
	* gm2/switches/check-all/pim2/fail/switches-check-all-pim2-fail.exp:
	Add pathname.
	* gm2/switches/makeall/fail/switches-makeall-fail.exp: Remove -fmakeall.
	* gm2/switches/makeall/pass/switches-makeall-pass.exp: Remove -fmakeall.
	* lib/gm2-simple.exp (gm2_keep_executable): New global variable.
	(gm2_simple_execute): Keep executable if global is true.
	* lib/gm2-torture.exp: Add ; after global variable access.
	* lib/gm2.exp: Set up pathnames.
	* gm2/projects/pim/run/pass/tower/AdvCmd.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvCmd.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvIntroduction.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvIntroduction.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvMap.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvMap.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvMath.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvMath.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.bnf: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvParse.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvSound.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvSound.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvSystem.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvSystem.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvTreasure.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvTreasure.mod: New test.
	* gm2/projects/pim/run/pass/tower/AdvUtil.def: New test.
	* gm2/projects/pim/run/pass/tower/AdvUtil.mod: New test.
	* gm2/projects/pim/run/pass/tower/DrawG.def: New test.
	* gm2/projects/pim/run/pass/tower/DrawG.mod: New test.
	* gm2/projects/pim/run/pass/tower/DrawL.def: New test.
	* gm2/projects/pim/run/pass/tower/DrawL.mod: New test.
	* gm2/projects/pim/run/pass/tower/Dungeon.mod: New test.
	* gm2/projects/pim/run/pass/tower/Lock.def: New test.
	* gm2/projects/pim/run/pass/tower/Lock.mod: New test.
	* gm2/projects/pim/run/pass/tower/ProcArgs.def: New test.
	* gm2/projects/pim/run/pass/tower/ProcArgs.mod: New test.
	* gm2/projects/pim/run/pass/tower/Screen.def: New test.
	* gm2/projects/pim/run/pass/tower/Screen.mod: New test.
	* gm2/projects/pim/run/pass/tower/SocketControl.c: New test.
	* gm2/projects/pim/run/pass/tower/SocketControl.def: New test.
	* gm2/projects/pim/run/pass/tower/Window.def: New test.
	* gm2/projects/pim/run/pass/tower/Window.mod: New test.
	* gm2/projects/pim/run/pass/tower/adv.flex: New test.
	* gm2/projects/pim/run/pass/tower/advflex.c: New test.
	* gm2/projects/pim/run/pass/tower/advflex.def: New test.
	* gm2/projects/pim/run/pass/tower/projects-pim-run-pass-tower.exp:
	New test.
	* gm2/projects/pim/run/pass/tower/star: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>modula2/108462 - duplicate install of static modula2 target libs</title>
<updated>2023-01-31T14:54:17+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2023-01-23T10:43:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=7f583a335769591d016caa51490e3e5dd50354fe'/>
<id>7f583a335769591d016caa51490e3e5dd50354fe</id>
<content type='text'>
The following addresses the fact that libgm2 installs static libraries
into two places, one performed by

toolexeclib_LTLIBRARIES = libm2cor.la

and one performed as part of the install-data-local rule to a
m2/m2cor subdirectory alongside Modula-2 .def and .mod files.

This patch opts to keep the copy installed by libtool and removes
the extra installs in the install-data-local rules.

I've built and installed both with and without
--enable-version-specific-runtime-libs and compiled and linked
a Modula-2 testcase with the installed compiler with the two
multilibs and with and without static successfully.

	PR modula2/108462
libgm2/
	* libm2cor/Makefile.am: Remove static lib install from
	install-data-local.
	* libm2iso/Makefile.am: Likewise.
	* libm2log/Makefile.am: Likewise.
	* libm2min/Makefile.am: Likewise.
	* libm2pim/Makefile.am: Likewise.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following addresses the fact that libgm2 installs static libraries
into two places, one performed by

toolexeclib_LTLIBRARIES = libm2cor.la

and one performed as part of the install-data-local rule to a
m2/m2cor subdirectory alongside Modula-2 .def and .mod files.

This patch opts to keep the copy installed by libtool and removes
the extra installs in the install-data-local rules.

I've built and installed both with and without
--enable-version-specific-runtime-libs and compiled and linked
a Modula-2 testcase with the installed compiler with the two
multilibs and with and without static successfully.

	PR modula2/108462
libgm2/
	* libm2cor/Makefile.am: Remove static lib install from
	install-data-local.
	* libm2iso/Makefile.am: Likewise.
	* libm2log/Makefile.am: Likewise.
	* libm2min/Makefile.am: Likewise.
	* libm2pim/Makefile.am: Likewise.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
</pre>
</div>
</content>
</entry>
</feed>
