gcc/libgm2/libm2pim
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
..
cgetopt.cc PR modula2/111530: Build failure on BSD due to getopt_long_only GNU extension dependency 2023-10-27 15:54:48 +01:00
dtoa.cc PR 109125 13 regression SIGBUS in m2pim_ldtoa_ldtoa 2023-03-15 21:30:33 +00:00
errno.cc modula-2 module registration process seems to fail with shared libraries [PR108261] 2023-02-25 16:28:19 +00:00
ldtoa.cc PR 109125 13 regression SIGBUS in m2pim_ldtoa_ldtoa 2023-03-15 21:30:33 +00:00
Makefile.am PR modula2/111956 Many powerpc platforms do _not_ have support for IEEE754 2024-01-18 13:06:30 +00:00
Makefile.in PR modula2/111956 Many powerpc platforms do _not_ have support for IEEE754 2024-01-18 13:06:30 +00:00
sckt.cc Replace bool as boolean instead of int in libgm2 2023-05-13 15:49:50 +01:00
Selective.cc modula-2 module registration process seems to fail with shared libraries [PR108261] 2023-02-25 16:28:19 +00:00
SysExceptions.cc modula-2 module registration process seems to fail with shared libraries [PR108261] 2023-02-25 16:28:19 +00:00
target.c
termios.cc PR 109125 Modula2 SIGBUS in m2pim_ldtoa_ldtoa 2023-03-14 19:52:11 +00:00
UnixArgs.cc modula-2 module registration process seems to fail with shared libraries [PR108261] 2023-02-25 16:28:19 +00:00
wrapc.cc PR modula2/111955 introduce isnan support to Builtins.def 2023-10-25 11:04:12 +01:00