<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git/libgm2/configure.ac, branch 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/115276: libgm2 wraptime.cc field access all return -1.</title>
<updated>2025-04-24T21:09:19+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2025-04-24T21:09:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=419f40af5c5335b84c16e4891377142f12f7577b'/>
<id>419f40af5c5335b84c16e4891377142f12f7577b</id>
<content type='text'>
This patch provides autoconf tests for each field used in wraptime.cc
referencing struct tm and struct timeval.

libgm2/ChangeLog:

	PR modula2/115276
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_STRUCT_TIMEZONE): Add.
	(AC_CHECK_MEMBER): Test for struct tm.tm_year.
	(AC_CHECK_MEMBER): Test for struct tm.tm_mon.
	(AC_CHECK_MEMBER): Test for struct tm.tm_mday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_hour.
	(AC_CHECK_MEMBER): Test for struct tm.tm_min.
	(AC_CHECK_MEMBER): Test for struct tm.tm_sec.
	(AC_CHECK_MEMBER): Test for struct tm.tm_year.
	(AC_CHECK_MEMBER): Test for struct tm.tm_yday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_wday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_isdst.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_sec.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_sec.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_usec.
	* libm2iso/wraptime.cc (InitTimeval): Guard against lack
	struct timeval and malloc.
	(InitTimezone): Guard against lack of struct tm.tm_zone
	and malloc.
	(KillTimezone): Ditto.
	(InitTimeval): Guard against lack of struct timeval
	and malloc.
	(KillTimeval): Guard against lack of malloc.
	(settimeofday): Guard against lack of struct tm.tm_zone.
	(GetFractions): Guard against lack of struct timeval.
	(localtime_r): Ditto.
	(GetYear): Guard against lack of struct tm.
	(GetMonth): Ditto.
	(GetDay): Ditto.
	(GetHour): Ditto.
	(GetMinute): Ditto.
	(GetSecond): Ditto.
	(GetSummerTime): Ditto.
	(GetDST): Guards against lack of struct timezone.
	(SetTimezone): Ditto.
	(SetTimeval): Guard against lack of struct tm.

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 provides autoconf tests for each field used in wraptime.cc
referencing struct tm and struct timeval.

libgm2/ChangeLog:

	PR modula2/115276
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_STRUCT_TIMEZONE): Add.
	(AC_CHECK_MEMBER): Test for struct tm.tm_year.
	(AC_CHECK_MEMBER): Test for struct tm.tm_mon.
	(AC_CHECK_MEMBER): Test for struct tm.tm_mday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_hour.
	(AC_CHECK_MEMBER): Test for struct tm.tm_min.
	(AC_CHECK_MEMBER): Test for struct tm.tm_sec.
	(AC_CHECK_MEMBER): Test for struct tm.tm_year.
	(AC_CHECK_MEMBER): Test for struct tm.tm_yday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_wday.
	(AC_CHECK_MEMBER): Test for struct tm.tm_isdst.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_sec.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_sec.
	(AC_CHECK_MEMBER): Test for struct timeval.tv_usec.
	* libm2iso/wraptime.cc (InitTimeval): Guard against lack
	struct timeval and malloc.
	(InitTimezone): Guard against lack of struct tm.tm_zone
	and malloc.
	(KillTimezone): Ditto.
	(InitTimeval): Guard against lack of struct timeval
	and malloc.
	(KillTimeval): Guard against lack of malloc.
	(settimeofday): Guard against lack of struct tm.tm_zone.
	(GetFractions): Guard against lack of struct timeval.
	(localtime_r): Ditto.
	(GetYear): Guard against lack of struct tm.
	(GetMonth): Ditto.
	(GetDay): Ditto.
	(GetHour): Ditto.
	(GetMinute): Ditto.
	(GetSecond): Ditto.
	(GetSummerTime): Ditto.
	(GetDST): Guards against lack of struct timezone.
	(SetTimezone): Ditto.
	(SetTimeval): Guard against lack of struct tm.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/117703: libgm2 soname bumps for GCC 15</title>
<updated>2024-11-20T22:17:30+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2024-11-20T22:17:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=26f3efccaa760ca74ad6e2584ce3056c889fe246'/>
<id>26f3efccaa760ca74ad6e2584ce3056c889fe246</id>
<content type='text'>
Bump libgm2 version ready for the gcc-15 release.

libgm2/ChangeLog:

	PR modula2/117703
	* configure: Regenerate.
	* configure.ac (libtool_VERSION): Bump to 20:0:0.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bump libgm2 version ready for the gcc-15 release.

libgm2/ChangeLog:

	PR modula2/117703
	* configure: Regenerate.
	* configure.ac (libtool_VERSION): Bump to 20:0:0.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/115276 bugfix libgm2 wraptime.InitTM returns NIL</title>
<updated>2024-05-29T16:26:59+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2024-05-29T16:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=d1a1f7e9f0bedea55c558ab95127679bc3e9ff72'/>
<id>d1a1f7e9f0bedea55c558ab95127679bc3e9ff72</id>
<content type='text'>
This patch fixes libgm2/libm2iso/wraptime.cc:InitTM so that
it does not always return NULL.  The incorrect autoconf macro
was used (inside InitTM) and the function short circuited
to return NULL.  The fix is to use HAVE_SYS_TIME_H and use
AC_HEADER_TIME in libgm2/configure.ac.

libgm2/ChangeLog:

	PR modula2/115276
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use AC_HEADER_TIME.
	* libm2iso/wraptime.cc (InitTM): Check HAVE_SYS_TIME_H
	before using struct tm to obtain the size.

gcc/testsuite/ChangeLog:

	PR modula2/115276
	* gm2/isolib/run/pass/testinittm.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 fixes libgm2/libm2iso/wraptime.cc:InitTM so that
it does not always return NULL.  The incorrect autoconf macro
was used (inside InitTM) and the function short circuited
to return NULL.  The fix is to use HAVE_SYS_TIME_H and use
AC_HEADER_TIME in libgm2/configure.ac.

libgm2/ChangeLog:

	PR modula2/115276
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use AC_HEADER_TIME.
	* libm2iso/wraptime.cc (InitTM): Check HAVE_SYS_TIME_H
	before using struct tm to obtain the size.

gcc/testsuite/ChangeLog:

	PR modula2/115276
	* gm2/isolib/run/pass/testinittm.mod: New test.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgm2: Define missing configure macros [PR113888]</title>
<updated>2024-02-12T13:01:41+00:00</updated>
<author>
<name>Rainer Orth</name>
<email>ro@CeBiTec.Uni-Bielefeld.DE</email>
</author>
<published>2024-02-12T13:01:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=0437cbdccb91da6a8c25b2c29e9f19a9585309fc'/>
<id>0437cbdccb91da6a8c25b2c29e9f19a9585309fc</id>
<content type='text'>
As detailed in PR modula2/113888, the 32-bit libm2pim/target.c doesn't
assemble in a Linux/sparc64 multilib build.  However, the root cause is
that the HAVE_EXP10* macros are never defined.  While I was at it, I
checked for other cases where the code uses HAVE_* macros that are
missing from config.h.in.

This patch adds the missing checks, changes the configure checks where
the names don't match what's used in the code, or corrects the code to
use the right names.

So far tested on sparc64-unknown-linux-gnu by building libgm2 (32 and
64-bit) and running the gm2 tests.

2024-02-12  Rainer Orth  &lt;ro@CeBiTec.Uni-Bielefeld.DE&gt;

	libgm2:
	PR modula2/113888
	* configure.ac (GM2_CHECK_LIB): Rename gettimeofday guard to
	HAVE_GETTIMEOFDAY.
	(GM_CHECK_LIB): Check for settimeofday.
	(GM2_CHECK_LIB): Check for exp10, exp10f, exp10l in libm.
	(AC_CHECK_DECLS): Check for getenv.
	* configure, config.h.in: Regenerate.
	* libm2pim/dtoa.cc: Rename &lt;strings.h&gt;, &lt;string.h&gt; guards to
	HAVE_STRINGS_H, HAVE_STRING_H.
	* libm2pim/ldtoa.cc: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As detailed in PR modula2/113888, the 32-bit libm2pim/target.c doesn't
assemble in a Linux/sparc64 multilib build.  However, the root cause is
that the HAVE_EXP10* macros are never defined.  While I was at it, I
checked for other cases where the code uses HAVE_* macros that are
missing from config.h.in.

This patch adds the missing checks, changes the configure checks where
the names don't match what's used in the code, or corrects the code to
use the right names.

So far tested on sparc64-unknown-linux-gnu by building libgm2 (32 and
64-bit) and running the gm2 tests.

2024-02-12  Rainer Orth  &lt;ro@CeBiTec.Uni-Bielefeld.DE&gt;

	libgm2:
	PR modula2/113888
	* configure.ac (GM2_CHECK_LIB): Rename gettimeofday guard to
	HAVE_GETTIMEOFDAY.
	(GM_CHECK_LIB): Check for settimeofday.
	(GM2_CHECK_LIB): Check for exp10, exp10f, exp10l in libm.
	(AC_CHECK_DECLS): Check for getenv.
	* configure, config.h.in: Regenerate.
	* libm2pim/dtoa.cc: Rename &lt;strings.h&gt;, &lt;string.h&gt; guards to
	HAVE_STRINGS_H, HAVE_STRING_H.
	* libm2pim/ldtoa.cc: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>modula2: libgm2 bump version to 19:0.0</title>
<updated>2023-11-30T15:39:17+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-11-30T15:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=c8dafbef1adc6ba2d6377c3ef704669b50ddfb9d'/>
<id>c8dafbef1adc6ba2d6377c3ef704669b50ddfb9d</id>
<content type='text'>
This patch bumps the libgm2 version to 19.0.0 reflecting
time related fixes, changes to builtins.def and the
commencement of gcc stage3.

libgm2/ChangeLog:

	* configure: Regenerate.
	* configure.ac:(libtool_VERSION): Bump to 19:0:0.

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 bumps the libgm2 version to 19.0.0 reflecting
time related fixes, changes to builtins.def and the
commencement of gcc stage3.

libgm2/ChangeLog:

	* configure: Regenerate.
	* configure.ac:(libtool_VERSION): Bump to 19:0:0.

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 modula2/110779 SysClock can not read the clock (Darwin portability fixes)</title>
<updated>2023-08-12T17:17:41+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-08-12T17:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=63fb0bedb8077ac1e6b6337f198b4eae30813fbc'/>
<id>63fb0bedb8077ac1e6b6337f198b4eae30813fbc</id>
<content type='text'>
This patch adds corrections to defensively check against glibc functions,
structures and contains fallbacks.  These fixes were required under Darwin.

gcc/m2/ChangeLog:

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
	(GetClock): Call EpochTime if the C time functions are
	unavailable.
	* gm2-libs-iso/wrapclock.def (istimezone): New function
	definition.

libgm2/ChangeLog:

	PR modula2/110779
	* configure: Regenerate.
	* configure.ac: Provide special case test for Darwin cross
	configuration.
	(GLIBCXX_CONFIGURE): New statement.
	(GLIBCXX_CHECK_GETTIMEOFDAY): New statement.
	(GLIBCXX_ENABLE_LIBSTDCXX_TIME): New statement.
	* libm2iso/wrapclock.cc: New sys/time.h conditional include.
	(sys/syscall.h): Conditional include.
	(unistd.h): Conditional include.
	(GetTimeRealtime): Re-implement.
	(SetTimeRealtime): Re-implement.
	(timezone): Re-implement.
	(istimezone): New function.
	(daylight): Re-implement.
	(isdst): Re-implement.
	(tzname): Re-implement.

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 corrections to defensively check against glibc functions,
structures and contains fallbacks.  These fixes were required under Darwin.

gcc/m2/ChangeLog:

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
	(GetClock): Call EpochTime if the C time functions are
	unavailable.
	* gm2-libs-iso/wrapclock.def (istimezone): New function
	definition.

libgm2/ChangeLog:

	PR modula2/110779
	* configure: Regenerate.
	* configure.ac: Provide special case test for Darwin cross
	configuration.
	(GLIBCXX_CONFIGURE): New statement.
	(GLIBCXX_CHECK_GETTIMEOFDAY): New statement.
	(GLIBCXX_ENABLE_LIBSTDCXX_TIME): New statement.
	* libm2iso/wrapclock.cc: New sys/time.h conditional include.
	(sys/syscall.h): Conditional include.
	(unistd.h): Conditional include.
	(GetTimeRealtime): Re-implement.
	(SetTimeRealtime): Re-implement.
	(timezone): Re-implement.
	(istimezone): New function.
	(daylight): Re-implement.
	(isdst): Re-implement.
	(tzname): Re-implement.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PR modula2/110779: libgm2 fix solaris bootstrap check for tm_gmtoff</title>
<updated>2023-08-09T08:35:13+00:00</updated>
<author>
<name>Gaius Mulley</name>
<email>gaiusmod2@gmail.com</email>
</author>
<published>2023-08-09T08:35:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=e3476ed2233911e6a578488899179bd91e818947'/>
<id>e3476ed2233911e6a578488899179bd91e818947</id>
<content type='text'>
This patch defensively checks for every C function and every struct
used in wrapclock.cc.  It adds return values to GetTimespec and
SetTimespec to allow the module to return a code representing
unavailable.

gcc/m2/ChangeLog:

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
	return value.
	(SetClock): Test SetTimespec return value.
	* gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
	return type.
	(SetTimespec): Add integer return type.

libgm2/ChangeLog:

	PR modula2/110779
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_CACHE_CHECK): Check for tm_gmtoff field in
	struct tm.
	(GM2_CHECK_LIB): Check for daylight, timezone and tzname.
	* libm2iso/wrapclock.cc (timezone): Guard against absence of
	struct tm and tm_gmtoff.
	(daylight): Check for daylight.
	(timezone): Check for timezone.
	(isdst): Check for isdst.
	(tzname): Check for tzname.
	(GetTimeRealtime): Check for struct timespec.
	(SetTimeRealtime): Check for struct timespec.
	(InitTimespec): Check for struct timespec.
	(KillTimespec): Check for struct timespec.
	(SetTimespec): Check for struct timespec.
	(GetTimespec): Check for struct timespec.

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 defensively checks for every C function and every struct
used in wrapclock.cc.  It adds return values to GetTimespec and
SetTimespec to allow the module to return a code representing
unavailable.

gcc/m2/ChangeLog:

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
	return value.
	(SetClock): Test SetTimespec return value.
	* gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
	return type.
	(SetTimespec): Add integer return type.

libgm2/ChangeLog:

	PR modula2/110779
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_CACHE_CHECK): Check for tm_gmtoff field in
	struct tm.
	(GM2_CHECK_LIB): Check for daylight, timezone and tzname.
	* libm2iso/wrapclock.cc (timezone): Guard against absence of
	struct tm and tm_gmtoff.
	(daylight): Check for daylight.
	(timezone): Check for timezone.
	(isdst): Check for isdst.
	(tzname): Check for tzname.
	(GetTimeRealtime): Check for struct timespec.
	(SetTimeRealtime): Check for struct timespec.
	(InitTimespec): Check for struct timespec.
	(KillTimespec): Check for struct timespec.
	(SetTimespec): Check for struct timespec.
	(GetTimespec): Check for struct timespec.

Signed-off-by: Gaius Mulley &lt;gaiusmod2@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
