diff options
author | Gaius Mulley <gaiusmod2@gmail.com> | 2024-01-18 13:06:30 +0000 |
---|---|---|
committer | Gaius Mulley <gaiusmod2@gmail.com> | 2024-01-18 13:06:30 +0000 |
commit | f2872e00f61a5a333fa22e651d37d3b2035ac41f (patch) | |
tree | d2c9fabd7690d9e0efaf3e26c28032ed817cefc1 /libgm2/libm2pim | |
parent | af66955000e38eeba5992641f98a4749cfeb8854 (diff) | |
download | gcc-f2872e00f61a5a333fa22e651d37d3b2035ac41f.zip gcc-f2872e00f61a5a333fa22e651d37d3b2035ac41f.tar.gz gcc-f2872e00f61a5a333fa22e651d37d3b2035ac41f.tar.bz2 |
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>
Diffstat (limited to 'libgm2/libm2pim')
-rw-r--r-- | libgm2/libm2pim/Makefile.am | 9 | ||||
-rw-r--r-- | libgm2/libm2pim/Makefile.in | 7 |
2 files changed, 6 insertions, 10 deletions
diff --git a/libgm2/libm2pim/Makefile.am b/libgm2/libm2pim/Makefile.am index 4c5e046..b575cab 100644 --- a/libgm2/libm2pim/Makefile.am +++ b/libgm2/libm2pim/Makefile.am @@ -88,7 +88,6 @@ AM_MAKEFLAGS = \ "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ "DESTDIR=$(DESTDIR)" \ "WERROR=$(WERROR)" \ - "TARGET_LONGDOUBLE_ABI=$(TARGET_LONGDOUBLE_ABI)" \ "TARGET_LIB_PATH_libgm2=$(TARGET_LIB_PATH_libgm2)" # Subdir rules rely on $(FLAGS_TO_PASS) @@ -168,14 +167,14 @@ libm2pimdir = libm2pim libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) libm2pim_la_CFLAGS = \ -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso \ - -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso \ - $(TARGET_LONGDOUBLE_ABI) + -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso + libm2pim_la_M2FLAGS = \ -fm2-pathname=m2pim -I. -I$(GM2_SRC)/gm2-libs \ -fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \ -fm2-g -g -Wcase-enum -Wreturn-type \ - -fcase -fm2-prefix=m2pim \ - $(TARGET_LONGDOUBLE_ABI) + -fcase -fm2-prefix=m2pim + if TARGET_DARWIN libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup else diff --git a/libgm2/libm2pim/Makefile.in b/libgm2/libm2pim/Makefile.in index eca7e85..85623d0 100644 --- a/libgm2/libm2pim/Makefile.in +++ b/libgm2/libm2pim/Makefile.in @@ -467,7 +467,6 @@ AM_MAKEFLAGS = \ "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ "DESTDIR=$(DESTDIR)" \ "WERROR=$(WERROR)" \ - "TARGET_LONGDOUBLE_ABI=$(TARGET_LONGDOUBLE_ABI)" \ "TARGET_LIB_PATH_libgm2=$(TARGET_LIB_PATH_libgm2)" @@ -545,15 +544,13 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_PIMLIB_TRUE@libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) @BUILD_PIMLIB_TRUE@libm2pim_la_CFLAGS = \ @BUILD_PIMLIB_TRUE@ -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso \ -@BUILD_PIMLIB_TRUE@ -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso \ -@BUILD_PIMLIB_TRUE@ $(TARGET_LONGDOUBLE_ABI) +@BUILD_PIMLIB_TRUE@ -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso @BUILD_PIMLIB_TRUE@libm2pim_la_M2FLAGS = \ @BUILD_PIMLIB_TRUE@ -fm2-pathname=m2pim -I. -I$(GM2_SRC)/gm2-libs \ @BUILD_PIMLIB_TRUE@ -fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \ @BUILD_PIMLIB_TRUE@ -fm2-g -g -Wcase-enum -Wreturn-type \ -@BUILD_PIMLIB_TRUE@ -fcase -fm2-prefix=m2pim \ -@BUILD_PIMLIB_TRUE@ $(TARGET_LONGDOUBLE_ABI) +@BUILD_PIMLIB_TRUE@ -fcase -fm2-prefix=m2pim @BUILD_PIMLIB_TRUE@@TARGET_DARWIN_FALSE@libm2pim_la_link_flags = \ @BUILD_PIMLIB_TRUE@@TARGET_DARWIN_FALSE@ $(am__append_1) |