Commit Graph

104 Commits

Author SHA1 Message Date
GCC Administrator
d815d9ad89 Daily bump. 2024-05-30 00:16:44 +00:00
Gaius Mulley
d1a1f7e9f0 PR modula2/115276 bugfix libgm2 wraptime.InitTM returns NIL
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 <gaiusmod2@gmail.com>
2024-05-29 17:26:59 +01:00
GCC Administrator
f2d0116090 Daily bump. 2024-05-03 00:17:26 +00:00
Gaius Mulley
67e66c973c modula2: Regenerate libgm2 Makefile.ins using correct include order
Regenerated libgm2/Makefile.in (and subdir Makefile.in) using
aclocal -I .. -I ../config (or autoreconf).

libgm2/ChangeLog:

	* Makefile.in: Regenerate.
	* libm2cor/Makefile.in: Ditto.
	* libm2iso/Makefile.in: Ditto.
	* libm2log/Makefile.in: Ditto.
	* libm2min/Makefile.in: Ditto.
	* libm2pim/Makefile.in: Ditto.
	* aclocal.m4: Ditto.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-05-02 14:38:51 +01:00
GCC Administrator
a1e6798acf Daily bump. 2024-04-03 00:17:29 +00:00
Jakub Jelinek
94792057ad Fix up duplicated words mostly in comments, part 1
Like in r12-7519-g027e30414492d50feb2854aff38227b14300dc4b, I've done
git grep -v 'long long\|optab optab\|template template\|double double' | grep ' \([a-zA-Z]\+\) \1 '

This is just part of the changes, mostly for non-gcc directories.
I'll try to get to the rest soon.  Obviously, the above command also
finds cases which are correct as is and shouldn't be changed, so one
needs to manually inspect everything.

I'd hope most of it is pretty obvious, but the config/ and libstdc++-v3/
hunks include a tweak in a license wording, though other copies of the
similar license have the wording right.

2024-04-02  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.tpl: Fix duplicated words; returns returns ->
	returns.
config/
	* lcmessage.m4: Fix duplicated words; can can -> can,
	package package -> package.
libdecnumber/
	* decCommon.c (decFinalize): Fix duplicated words in
	comment; the the -> the.
libgcc/
	* unwind-dw2-fde.c (struct fde_accumulator): Fix duplicated
	words in comment; is is -> is.
libgfortran/
	* configure.host: Fix duplicated words; the the -> the.
libgm2/
	* configure.host: Fix duplicated words; the the -> the.
libgomp/
	* libgomp.texi (OpenMP 5.2): Fix duplicated words; with with ->
	with.
	(omp_target_associate_ptr): Fix duplicated words; either either ->
	either.
	(omp_init_allocator): Fix duplicated words; be be -> be.
	(omp_realloc): Fix duplicated words; is is -> is.
	(OMP_ALLOCATOR): Fix duplicated words; other other -> other.
	* priority_queue.h (priority_queue_multi_p): Fix duplicated words;
	to to -> to.
libiberty/
	* regex.c (byte_re_match_2_internal): Fix duplicated words in comment;
	next next -> next.
	* dyn-string.c (dyn_string_init): Fix duplicated words in comment;
	of of -> of.
libitm/
	* beginend.cc (GTM::gtm_thread::begin_transaction): Fix duplicated
	words in comment; not not -> not to.
libobjc/
	* init.c (duplicate_classes): Fix duplicated words in comment; in in
	-> in.
	* sendmsg.c (__objc_prepare_dtable_for_class): Fix duplicated words
	in comment; the the -> the.
	* encoding.c (objc_layout_structure): Likewise.
libstdc++-v3/
	* acinclude.m4: Fix duplicated words; file file -> file can.
	* configure.host: Fix duplicated words; the the -> the.
libvtv/
	* vtv_rts.cc (vtv_fail): Fix duplicated words; to to -> to.
	* vtv_fail.cc (vtv_fail): Likewise.
2024-04-02 13:39:11 +02:00
GCC Administrator
ad178a2be7 Daily bump. 2024-02-26 00:16:54 +00:00
Gaius Mulley
d1b241b950 PR modula2/113749 m2 enabled build times out on i686-gnu-hurd
The bug fix changes the FIO module to use the target O_RDONLY,
O_WRONLY, SEEK_SET and SEEK_END (now available from the module wrapc).
Also rebuilt are the bootstrap tools mc and pge as they have their
own wrapc and C translations of FIO.

gcc/m2/ChangeLog:

	PR modula2/113749
	* Make-lang.in (BUILD-PGE-O): Add m2/pge-boot/Gwrapc.o.
	* gm2-libs-ch/wrapc.c (wrapc_SeekSet): New function.
	(wrapc_SeekEnd): Ditto.
	(wrapc_ReadOnly): Ditto.
	(wrapc_WriteOnly): Ditto.
	* gm2-libs/FIO.mod (SEEK_SET): Remove.
	(SEEK_END): Remove.
	(UNIXREADONLY): Remove.
	(UNIXWRITEONLY): Remove.
	(ConnectToUnix): Replace UNIXWRITEONLY with a call to WriteOnly.
	Replace UNIXREADONLY with a call to ReadOnly.
	(SetPositionFromBeginning): Replace SEEK_SET with a call to
	SeekSet.
	(SetPositionFromEnd): Replace SEEK_END with a call to
	SeekEnd.
	* gm2-libs/wrapc.def (SeekSet): New procedure function.
	(SeekEnd): New procedure function.
	(ReadOnly): New procedure function.
	(WriteOnly): New procedure function.
	* mc-boot-ch/Glibc.c (BUILD_MC_LIBC_TRACE): Undef.
	(check_init): New function.
	(tracedb): Ditto.
	(tracedb_open): Ditto.
	(tracedb_result): Ditto.
	(libc_read): Ditto.
	(libc_write): Ditto.
	(libc_close): Ditto.
	(libc_creat): Ditto.
	(libc_open): Ditto.
	(libc_lseek): Ditto.
	* mc-boot-ch/Gwrapc.c (wrapc_SeekSet): New function.
	(wrapc_SeekEnd): Ditto.
	(wrapc_ReadOnly): Ditto.
	(wrapc_WriteOnly): Ditto.
	* mc-boot/GDynamicStrings.cc: Rebuilt.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GM2EXCEPTION.cc: Ditto.
	* mc-boot/GPushBackInput.cc: Ditto.
	* mc-boot/GRTExceptions.cc: Ditto.
	* mc-boot/GRTint.cc: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GStdIO.cc: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/GSysStorage.cc: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc-boot/GmcComment.cc: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/GsymbolKey.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc-boot/Gwrapc.h: Ditto.
	* mc/decl.mod (getSymName): Add pointerref clause.
	* mc/mcStream.mod (copy): Check for an error after every read.
	* mc/varargs.mod (copy): Rewrite pointer arithmetic using INC to
	avoid type incompatibility.
	* pge-boot/GDynamicStrings.cc: Rebuilt.
	* pge-boot/GDynamicStrings.h: Ditto.
	* pge-boot/GFIO.cc: Ditto.
	* pge-boot/GFIO.h: Ditto.
	* pge-boot/GIO.cc: Ditto.
	* pge-boot/GIndexing.cc: Ditto.
	* pge-boot/GM2Dependent.cc: Ditto.
	* pge-boot/GM2EXCEPTION.cc: Ditto.
	* pge-boot/GNameKey.cc: Ditto.
	* pge-boot/GPushBackInput.cc: Ditto.
	* pge-boot/GRTExceptions.cc: Ditto.
	* pge-boot/GStdIO.cc: Ditto.
	* pge-boot/GSymbolKey.cc: Ditto.
	* pge-boot/GSysStorage.cc: Ditto.
	* pge-boot/Glibc.h: Ditto.
	* pge-boot/Gwrapc.cc: Ditto.
	* pge-boot/Gwrapc.h: Ditto.

libgm2/ChangeLog:

	PR modula2/113749
	* libm2pim/wrapc.cc: Include fcntl.h.
	(SeekSet): New function.
	(SeekEnd): Ditto.
	(ReadOnly): Ditto.
	(WriteOnly): Ditto.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-02-25 11:08:37 +00:00
GCC Administrator
df6c57ce40 Daily bump. 2024-02-14 00:17:32 +00:00
Rainer Orth
efc71fd575 libgm2: Fix libm2iso/wraptime.cc compilation on Solaris
As it turned out, my patch to complete the libgm2 autoconf macros works
on both Linux/sparc64 and Linux/x86_64, but breaks Solaris bootstrap:

/vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int
m2iso_wraptime_gettimeofday(void*, timezone*)':
/vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:148:24: error:
invalid conversion from 'void*' to 'timeval*' [-fpermissive]
  148 |   return gettimeofday (tv, tz);
      |                        ^~
      |                        |
      |                        void*
In file included from /usr/include/sys/select.h:27,
                 from /usr/include/sys/types.h:665,
                 from /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:35:
/usr/include/sys/time.h:444:18: note:   initializing argument 1 of 'int gettimeofday(timeval*, void*)'
  444 | int gettimeofday(struct timeval *_RESTRICT_KYWD, void *_RESTRICT_KYWD);
      |                  ^
/vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int
m2iso_wraptime_settimeofday(void*, timezone*)':
/vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:165:24: error:
invalid conversion from 'void*' to 'timeval*' [-fpermissive]
  165 |   return settimeofday (tv, tz);
      |                        ^~
      |                        |
      |                        void*
/usr/include/sys/time.h:431:18: note: initializing argument 1 of 'int
settimeofday(timeval*, void*)'
  431 | int settimeofday(struct timeval *, void *);
      |                  ^~~~~~~~~~~~~~~~

This happens because on Linux only HAVE_[GS]ETTIMEOFDAY is defined,
while Solaris has both that and HAVE_STRUCT_TIMEZONE, selecting
different implementations.

Fixed by casting tv to struct timeval *.

I thought about changing the signatures instead to take a struct timeval
* instead, but that seemed risky given that there's a
HAVE_STRUCT_TIMEVAL, so would probably break other targets.

Bootstrapped without regressions on i386-pc-solaris2.11,
sparc-sun-solaris2.11, and x86_64-pc-linux-gnu.

2024-02-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libgm2:
	* libm2iso/wraptime.cc [HAVE_STRUCT_TIMEZONE && HAVE_GETTIMEOFDAY]
	(EXPORT(gettimeofday)): Cast tv to struct timeval *.
	[HAVE_STRUCT_TIMEZONE && HAVE_SETTIMEOFDAY]
	(EXPORT(settimeofday)): Likewise.
2024-02-13 13:24:43 +01:00
GCC Administrator
bf074ee40a Daily bump. 2024-02-13 00:17:51 +00:00
Rainer Orth
0437cbdccb libgm2: Define missing configure macros [PR113888]
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  <ro@CeBiTec.Uni-Bielefeld.DE>

	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 <strings.h>, <string.h> guards to
	HAVE_STRINGS_H, HAVE_STRING_H.
	* libm2pim/ldtoa.cc: Likewise.
2024-02-12 14:01:41 +01:00
GCC Administrator
bb0f96abb1 Daily bump. 2024-01-19 00:18:21 +00:00
Gaius Mulley
f2872e00f6 PR modula2/111956 Many powerpc platforms do _not_ have support for IEEE754
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 <gaiusmod2@gmail.com>
2024-01-18 13:06:30 +00:00
GCC Administrator
f38103f567 Daily bump. 2024-01-06 00:18:04 +00:00
Gaius Mulley
bae3b7919e modula2: libm2iso/RTco.cc tidyup use bool instead of int
A missing bool/int detected in the global variable initialized.
The majority of ints were replaced by bool but this one was missed.

libgm2/ChangeLog:

	* libm2iso/RTco.cc (initialized): Use bool instead of int.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-01-05 16:39:46 +00:00
GCC Administrator
0a529d196b Daily bump. 2023-12-23 00:17:03 +00:00
Christophe Lyon
05d353b794 Allow overriding EXPECT
While investigating possible race conditions in the GCC testsuites
caused by bufferization issues, I wanted to investigate workarounds
similar to GDB's READ1 [1], and I noticed it was not always possible
to override EXPECT when running 'make check'.

This patch adds the missing support in various Makefiles.

I was not able to test the patch for all the libraries updated here,
but I confirmed it works as intended/needed for libstdc++.

libatomic, libitm, libgomp already work as intended because their
Makefiles do not have:
MAKEOVERRIDES=

Tested on (native) aarch64-linux-gnu, confirmed the patch introduces
the behaviour I want in gcc, g++, gfortran and libstdc++.

I updated (but could not test) libgm2, libphobos, libquadmath and
libssp for consistency since their Makefiles have MAKEOVERRIDES=

libffi, libgo, libsanitizer seem to need a similar update, but they
are imported from their respective upstream repo, so should not be
patched here.

[1] https://github.com/bminor/binutils-gdb/blob/master/gdb/testsuite/README#L269

2023-12-21  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/
	* Makefile.in: Allow overriding EXEPCT.

	libgm2/
	* Makefile.am: Allow overriding EXEPCT.
	* Makefile.in: Regenerate.

	libphobos/
	* Makefile.am: Allow overriding EXEPCT.
	* Makefile.in: Regenerate.

	libquadmath/
	* Makefile.am: Allow overriding EXEPCT.
	* Makefile.in: Regenerate.

	libssp/
	* Makefile.am: Allow overriding EXEPCT.
	* Makefile.in: Regenerate.

	libstdc++-v3/
	* Makefile.am: Allow overriding EXEPCT.
	* Makefile.in: Regenerate.
2023-12-22 10:24:56 +00:00
GCC Administrator
e8018ccff9 Daily bump. 2023-12-14 00:18:00 +00:00
Gaius Mulley
33a3f85ee4 PR modula2/112921 missing modules shortreal shortstr shortconv convstringshort
For completeness here are three SHORTREAL modules which match their
LONGREAL and REAL counterparts.  The datatype SHORTREAL is a GNU
extension and these modules were missing.

gcc/m2/ChangeLog:

	PR modula2/112921
	* gm2-libs-iso/ConvStringShort.def: New file.
	* gm2-libs-iso/ConvStringShort.mod: New file.
	* gm2-libs-iso/ShortConv.def: New file.
	* gm2-libs-iso/ShortConv.mod: New file.
	* gm2-libs-iso/ShortMath.def: New file.
	* gm2-libs-iso/ShortMath.mod: New file.
	* gm2-libs-iso/ShortStr.def: New file.
	* gm2-libs-iso/ShortStr.mod: New file.

libgm2/ChangeLog:

	PR modula2/112921
	* libm2iso/Makefile.am (M2DEFS): Add ConvStringShort.def,
	ShortConv.def, ShortMath.def and ShortStr.def.
	(M2MODS): Add ConvStringShort.mod,
	ShortConv.mod, ShortMath.mod and ShortStr.mod.
	* libm2iso/Makefile.in: Regenerate.

gcc/testsuite/ChangeLog:

	PR modula2/112921
	* gm2/iso/run/pass/shorttest.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-12-13 17:35:02 +00:00
GCC Administrator
8a5d6ce0e8 Daily bump. 2023-12-13 00:17:49 +00:00
Gaius Mulley
01cca857aa PR modula2/112984 Compiling program with -Wpedantic shows warning in libraries
This patch tidies up the library modules so that -Wpedantic does not
generate any warnings (apart from two procedures with legitimate infinite
loops).

gcc/m2/ChangeLog:

	PR modula2/112984
	* gm2-libs-coroutines/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs-iso/ClientSocket.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/IOChan.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/IOLink.mod: Remove redundant import of IOChan and SYSTEM.
	* gm2-libs-iso/IOResult.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/LongIO.mod: Remove redundant import of writeString.
	* gm2-libs-iso/LongWholeIO.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/M2RTS.mod: Remove redundant import of ADDRESS.
	* gm2-libs-iso/MemStream.mod: Remove redundant import of ADDRESS.
	* gm2-libs-iso/RTdata.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RTfio.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RTgen.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RealIO.mod: Remove redundant import of writeString.
	* gm2-libs-iso/RndFile.mod: Remove redundant import of SYSTEM.
	* gm2-libs-iso/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs-iso/ShortWholeIO.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/TextIO.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/TextUtil.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/WholeIO.mod: Remove redundant import of IOChan.
	* gm2-libs-log/BitByteOps.mod: Remove redundant import of BYTE.
	* gm2-libs-log/FileSystem.mod: Remove redundant import of BYTE and ADDRESS.
	* gm2-libs-log/InOut.mod: Remove redundant import of String.
	* gm2-libs-log/RealConversions.mod: Remove redundant import of StringToLongreal.
	* gm2-libs/FIO.mod: Remove redundant import of SIZE.
	* gm2-libs/FormatStrings.mod: Remove redundant import of String
	and ConCatChar.
	* gm2-libs/IO.mod: Remove redundant import of SIZE.
	* gm2-libs/Indexing.mod: Remove redundant import of ADDRESS.
	* gm2-libs/M2Dependent.mod: Remove redundant import of SIZE.
	* gm2-libs/M2RTS.mod: Remove redundant import of ADDRESS.
	* gm2-libs/OptLib.mod: Remove redundant import of DynamicStrings.
	* gm2-libs/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs/StringConvert.mod: Remove redundant import of String.

libgm2/ChangeLog:

	* libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Added line breaks.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am (libm2log_la_M2FLAGS): Added line breaks.
	* libm2log/Makefile.in: Regenerate.
	* libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Added line breaks.
	* libm2pim/Makefile.in: Regenerate.

gcc/testsuite/ChangeLog:

	PR modula2/112984
	* gm2/switches/pedantic/pass/hello.mod: New test.
	* gm2/switches/pedantic/pass/switches-pedantic-pass.exp: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-12-12 19:29:06 +00:00
GCC Administrator
8428bcd703 Daily bump. 2023-12-01 00:17:36 +00:00
Gaius Mulley
c8dafbef1a modula2: libgm2 bump version to 19:0.0
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 <gaiusmod2@gmail.com>
2023-11-30 15:39:17 +00:00
GCC Administrator
b9fd8399ec Daily bump. 2023-11-14 12:23:39 +00:00
Gaius Mulley
0036702555 PR modula2/110779: Add reduced acinclude.m4 to allow interrogation of time features
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 <gaiusmod2@gmail.com>
2023-11-13 15:11:50 +00:00
GCC Administrator
7f974c5fd4 Daily bump. 2023-10-28 00:16:37 +00:00
Gaius Mulley
32cc0b82a3 PR modula2/112110: fails to build on freebsd when compiling wrapclock.cc
This patch fixes a mangled #if #endif conditional section within
wrapclock.cc.  The conditional section in wrapclock_timezone
should return 0 rather than return timezone.

libgm2/ChangeLog:

	PR modula2/112110
	* libm2iso/wrapclock.cc (timezone): Return 0 if unable
	to get the timezone from the tm struct.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-10-27 18:42:09 +01:00
Gaius Mulley
e5f6a5ad7c PR modula2/111530: Build failure on BSD due to getopt_long_only GNU extension dependency
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 <gaiusmod2@gmail.com>
2023-10-27 15:54:48 +01:00
GCC Administrator
f75fc1f083 Daily bump. 2023-10-26 00:17:43 +00:00
Gaius Mulley
8bb655d0c5 PR modula2/111955 introduce isnan support to Builtins.def
This patch introduces isnan, isnanf and isnanl to Builtins.def.
It requires fallback functions isnan, isnanf, isnanl to be implemented in
libgm2/libm2pim/wrapc.cc and gm2-libs-ch/wrapc.c.
Access to the GCC builtin isnan tree is provided by adding
an isnan definition and support functions to gm2-gcc/m2builtins.cc.

gcc/m2/ChangeLog:

	PR modula2/111955
	* gm2-gcc/m2builtins.cc (gm2_isnan_node): New tree.
	(DoBuiltinIsnan): New function.
	(m2builtins_BuiltInIsnan): New function.
	(m2builtins_init): Initialize gm2_isnan_node.
	(list_of_builtins): Add define for __builtin_isnan.
	* gm2-libs-ch/wrapc.c (wrapc_isnan): New function.
	(wrapc_isnanf): New function.
	(wrapc_isnanl): New function.
	* gm2-libs/Builtins.def (isnanf): New procedure function.
	(isnan): New procedure function.
	(isnanl): New procedure function.
	* gm2-libs/Builtins.mod:
	* gm2-libs/wrapc.def (isnan): New function.
	(isnanf): New function.
	(isnanl): New function.

libgm2/ChangeLog:

	PR modula2/111955
	* libm2pim/wrapc.cc (isnan): Export new function.
	(isnanf): Export new function.
	(isnanl): Export new function.

gcc/testsuite/ChangeLog:

	PR modula2/111955
	* gm2/pimlib/run/pass/testnan.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-10-25 11:04:12 +01:00
GCC Administrator
3b6327461d Daily bump. 2023-10-23 00:16:43 +00:00
Iain Sandoe
6a6d3817af Config,Darwin: Allow for configuring Darwin to use embedded runpath.
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.
2023-10-22 19:30:02 +01:00
GCC Administrator
87c00507b8 Daily bump. 2023-09-30 00:17:24 +00:00
Gaius Mulley
5f2408712a modula2: iso library SysClock.mod and wrapclock.cc fixes.
This patch corrects the C equivalent of m2 LONGINT parameters
in wrapclock.cc and corrects the SysClock.mod module.
wrapclock.cc uses a typedef long long int longint_t to match
m2 LONGINT (rather than unsigned long).  These fixes
prevent calls to SysClock hanging spinning on an (incorrect)
large day count from the epoch.

gcc/m2/ChangeLog:

	* gm2-compiler/M2Quads.mod (EndBuildFor): Improve
	block comments.
	* gm2-libs-iso/SysClock.mod (ExtractDate): Replace
	testDays with yearOfDays.  New local variable monthOfDays.

libgm2/ChangeLog:

	* libm2iso/wrapclock.cc (longint_t): New declaration.
	(GetTimespec): Replace types for sec and nano with
	longint_t.
	(SetTimespec): Replace types for sec and nano with
	longint_t.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-09-29 17:18:16 +01:00
GCC Administrator
590a8bec3e Daily bump. 2023-09-20 00:17:55 +00:00
Gaius Mulley
81d5ca0b9b PR 108143/modula2 LONGREAL and powerpc64le-linux
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 <gaiusmod2@gmail.com>
2023-09-19 19:23:03 +01:00
GCC Administrator
ef701ef602 Daily bump. 2023-09-14 00:18:06 +00:00
Gaius Mulley
3af2af1579 modula2: -Wcase-enum detect singular/plural and use switch during build
This patch generates a singular or plural message relating to the
number of enums missing.  Use -Wcase-enum when building of the
modula-2 libraries and m2/stage2/cc1gm2.

gcc/m2/ChangeLog:

	* Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
	(GM2_ISO_FLAGS): Add -Wcase-enum.
	* gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
	singular or plural start text prior to the enum list.
	Remove unused parameter tokenno.
	(EmitMissingRangeErrors): New procedure.
	(MissingCaseBounds): Call EmitMissingRangeErrors.
	(MissingCaseStatementBounds): Call EmitMissingRangeErrors.
	* gm2-libs-iso/TextIO.mod: Fix spacing.

libgm2/ChangeLog:

	* libm2cor/Makefile.am (libm2cor_la_M2FLAGS): Add
	-Wcase-enum.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Add
	-Wcase-enum.
	* libm2iso/Makefile.in: Regenerate.
	* libm2log/Makefile.am (libm2log_la_M2FLAGS): Add
	-Wcase-enum.
	* libm2log/Makefile.in: Regenerate.
	* libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Add
	-Wcase-enum.
	* libm2pim/Makefile.in: Regenerate.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-09-13 15:51:59 +01:00
GCC Administrator
adae87c162 Daily bump. 2023-08-13 00:16:46 +00:00
Gaius Mulley
63fb0bedb8 PR modula2/110779 SysClock can not read the clock (Darwin portability fixes)
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 <gaiusmod2@gmail.com>
2023-08-12 18:17:41 +01:00
GCC Administrator
9b099a83b4 Daily bump. 2023-08-10 00:17:26 +00:00
Gaius Mulley
e3476ed223 PR modula2/110779: libgm2 fix solaris bootstrap check for tm_gmtoff
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 <gaiusmod2@gmail.com>
2023-08-09 09:35:13 +01:00
GCC Administrator
4b92dba78d Daily bump. 2023-08-08 00:17:37 +00:00
Nick Alcock
dc17ceb305
libtool.m4: augment symcode for Solaris 11
This reports common symbols like GNU nm, via a type code of 'C'.

ChangeLog:

	* libtool.m4 (lt_cv_sys_global_symbol_pipe): Augment symcode for
	Solaris 11.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.

zlib/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:41 +02:00
Alexander von Gluck IV
ead5103cc6
Add support for the haiku operating system
These are the os support patches we have been grooming and maintaining
for quite a few years over on git.haiku-os.org.  All of these
architectures are working and most have been stable for quite some time.

ChangeLog:

	* configure: Regenerate.
	* configure.ac: Add Haiku to list of ELF OSes
	* libtool.m4: Update sys_lib_dlsearch_path_spec on Haiku.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.

zlib/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:40 +02:00
Nick Alcock
f330710912
libtool.m4: fix the NM="/nm/over/here -B/option/with/path" case
My previous nm patch handled all cases but one -- if the user set NM in
the environment to a path which contained an option, libtool's nm
detection tries to run nm against a copy of nm with the options in it:
e.g. if NM was set to "nm --blargle", and nm was found in /usr/bin, the
test would try to run "/usr/bin/nm --blargle /usr/bin/nm --blargle".
This is unlikely to be desirable: in this case we should run
"/usr/bin/nm --blargle /usr/bin/nm".

Furthermore, as part of this nm has to detect when the passed-in $NM
contains a path, and in that case avoid doing a path search itself.
This too was thrown off if an option contained something that looked
like a path, e.g. NM="nm -B../prev-gcc"; libtool then tries to run
"nm -B../prev-gcc nm" which rarely works well (and indeed it looks
to see whether that nm exists, finds it doesn't, and wrongly concludes
that nm -p or whatever does not work).

Fix all of these by clipping all options (defined as everything
including and after the first " -") before deciding whether nm
contains a path (but not using the clipped value for anything else),
and then removing all options from the path-modified nm before
looking to see whether that nm existed.

NM=my-nm now does a path search and runs e.g.
  /usr/bin/my-nm -B /usr/bin/my-nm

NM=/usr/bin/my-nm now avoids a path search and runs e.g.
  /usr/bin/my-nm -B /usr/bin/my-nm

NM="my-nm -p../wombat" now does a path search and runs e.g.
  /usr/bin/my-nm -p../wombat -B /usr/bin/my-nm

NM="../prev-binutils/new-nm -B../prev-gcc" now avoids a path search:
  ../prev-binutils/my-nm -B../prev-gcc -B ../prev-binutils/my-nm

This seems to be all combinations, including those used by GCC bootstrap
(which, before this commit, fails to bootstrap when configured
--with-build-config=bootstrap-lto, because the lto plugin is now using
--export-symbols-regex, which requires libtool to find a working nm,
while also using -B../prev-gcc to point at the lto plugin associated
with the GCC just built.)

Regenerate all affected configure scripts.

ChangeLog:

	* libtool.m4 (LT_PATH_NM): Handle user-specified NM with
	options, including options containing paths.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.

zlib/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:39 +02:00
Nick Alcock
ab42297456
libtool.m4: fix nm BSD flag detection
Libtool needs to get BSD-format (or MS-format) output out of the system
nm, so that it can scan generated object files for symbol names for
-export-symbols-regex support.  Some nms need specific flags to turn on
BSD-formatted output, so libtool checks for this in its AC_PATH_NM.
Unfortunately the code to do this has a pair of interlocking flaws:

 - it runs the test by doing an nm of /dev/null.  Some platforms
   reasonably refuse to do an nm on a device file, but before now this
   has only been worked around by assuming that the error message has a
   specific textual form emitted by Tru64 nm, and that getting this
   error means this is Tru64 nm and that nm -B would work to produce
   BSD-format output, even though the test never actually got anything
   but an error message out of nm -B.  This is fixable by nm'ing *nm
   itself* (since we necessarily have a path to it).

 - the test is entirely skipped if NM is set in the environment, on the
   grounds that the user has overridden the test: but the user cannot
   reasonably be expected to know that libtool wants not only nm but
   also flags forcing BSD-format output.  Worse yet, one such "user" is
   the top-level Cygnus configure script, which neither tests for
   nor specifies any BSD-format flags.  So platforms needing BSD-format
   flags always fail to set them when run in a Cygnus tree, breaking
   -export-symbols-regex on such platforms.  Libtool also needs to
   augment $LD on some platforms, but this is done unconditionally,
   augmenting whatever the user specified: the nm check should do the
   same.

   One wrinkle: if the user has overridden $NM, a path might have been
   provided: so we use the user-specified path if there was one, and
   otherwise do the path search as usual.  (If the nm specified doesn't
   work, this might lead to a few extra pointless path searches -- but
   the test is going to fail anyway, so that's not a problem.)

(Tested with NM unset, and set to nm, /usr/bin/nm, my-nm where my-nm is a
symlink to /usr/bin/nm on the PATH, and /not-on-the-path/my-nm where
*that* is a symlink to /usr/bin/nm.)

ChangeLog:

	* libtool.m4 (LT_PATH_NM): Try BSDization flags with a user-provided
	NM, if there is one.  Run nm on itself, not on /dev/null, to avoid
	errors from nms that refuse to work on non-regular files.  Remove
	other workarounds for this problem.  Strip out blank lines from the
	nm output.

fixincludes/ChangeLog:

	* configure: Regenerate.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.

zlib/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:39 +02:00
H.J. Lu
9c7797a8c2
GCC: Check if AR works with --plugin and rc
AR from older binutils doesn't work with --plugin and rc:

[hjl@gnu-cfl-2 bin]$ touch foo.c
[hjl@gnu-cfl-2 bin]$ ar --plugin /usr/libexec/gcc/x86_64-redhat-linux/10/liblto_plugin.so rc libfoo.a foo.c
[hjl@gnu-cfl-2 bin]$ ./ar --plugin /usr/libexec/gcc/x86_64-redhat-linux/10/liblto_plugin.so rc libfoo.a foo.c
./ar: no operation specified
[hjl@gnu-cfl-2 bin]$ ./ar --version
GNU ar (Linux/GNU Binutils) 2.29.51.0.1.20180112
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
[hjl@gnu-cfl-2 bin]$

Check if AR works with --plugin and rc before passing --plugin to AR and
RANLIB.

ChangeLog:

	* configure: Regenerated.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Check if AR works with
	--plugin and rc before enabling --plugin.

config/ChangeLog:

	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): Check if AR works with
	--plugin and rc before enabling --plugin.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libiberty/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.

zlib/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:37 +02:00
H.J. Lu
126f707efb
Sync with binutils: GCC: Pass --plugin to AR and RANLIB
Sync with binutils for building binutils with LTO:

50ad1254d50 GCC: Pass --plugin to AR and RANLIB

Detect GCC LTO plugin.  Pass --plugin to AR and RANLIB to support LTO
build.

ChangeLog:

	* Makefile.tpl (AR): Add @AR_PLUGIN_OPTION@
	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
	* configure.ac: Include config/gcc-plugin.m4.
	AC_SUBST AR_PLUGIN_OPTION and RANLIB_PLUGIN_OPTION.
	* libtool.m4 (_LT_CMD_OLD_ARCHIVE): Pass --plugin to AR and
	RANLIB if possible.
	* Makefile.in: Regenerated.
	* configure: Likewise.

config/ChangeLog:

	* gcc-plugin.m4 (GCC_PLUGIN_OPTION): New.

libiberty/ChangeLog:

	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
	(configure_deps): Depend on ../config/gcc-plugin.m4.
	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
	RANLIB_PLUGIN_OPTION.
	* aclocal.m4: Regenerated.
	* configure: Likewise.

zlib/ChangeLog:

	* configure: Regenerated.

gcc/ChangeLog:

	* configure: Regenerate.

libatomic/ChangeLog:

	* configure: Regenerate.

libbacktrace/ChangeLog:

	* configure: Regenerate.

libcc1/ChangeLog:

	* configure: Regenerate.

libffi/ChangeLog:

	* configure: Regenerate.

libgfortran/ChangeLog:

	* configure: Regenerate.

libgm2/ChangeLog:

	* configure: Regenerate.

libgomp/ChangeLog:

	* configure: Regenerate.

libitm/ChangeLog:

	* configure: Regenerate.

libobjc/ChangeLog:

	* configure: Regenerate.

libphobos/ChangeLog:

	* configure: Regenerate.

libquadmath/ChangeLog:

	* configure: Regenerate.

libsanitizer/ChangeLog:

	* configure: Regenerate.

libssp/ChangeLog:

	* configure: Regenerate.

libstdc++-v3/ChangeLog:

	* configure: Regenerate.

libvtv/ChangeLog:

	* configure: Regenerate.

lto-plugin/ChangeLog:

	* configure: Regenerate.
2023-08-07 22:59:36 +02:00