diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2018-01-11 23:31:09 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2018-01-11 23:31:09 +0000 |
commit | 8c7a27d566e7144451d1f0eb79d6b5866035995f (patch) | |
tree | 866629ef524c5989733eec997136715953b1a31e /gcc/configure | |
parent | 02a03501e439cd92b741034c32ce7238a927dff1 (diff) | |
download | gcc-8c7a27d566e7144451d1f0eb79d6b5866035995f.zip gcc-8c7a27d566e7144451d1f0eb79d6b5866035995f.tar.gz gcc-8c7a27d566e7144451d1f0eb79d6b5866035995f.tar.bz2 |
configure.ac (--with-long-double-format): Add support for the configuration option to change the default long double...
2018-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
* configure.ac (--with-long-double-format): Add support for the
configuration option to change the default long double format on
PowerPC systems.
* config.gcc (powerpc*-linux*-*): Likewise.
* configure: Regenerate.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long
double is IEEE, define __KC__ and __KF__ to allow floatn.h to be
used without modification.
From-SVN: r256558
Diffstat (limited to 'gcc/configure')
-rwxr-xr-x | gcc/configure | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/gcc/configure b/gcc/configure index 39eb3c8..376d341 100755 --- a/gcc/configure +++ b/gcc/configure @@ -945,6 +945,7 @@ enable_linker_build_id enable_libssp enable_default_ssp with_long_double_128 +with_long_double_format with_gc with_system_zlib enable_maintainer_mode @@ -1738,6 +1739,9 @@ Optional Packages: --with-glibc-version=M.N assume GCC used with glibc version M.N or later --with-long-double-128 use 128-bit long double by default + --with-long-double-format={ieee,ibm} + Specify whether PowerPC long double uses IEEE or IBM format + --with-gc={page,zone} this option is not supported anymore. It used to choose the garbage collection mechanism to use with the compiler @@ -18442,7 +18446,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18445 "configure" +#line 18449 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18548,7 +18552,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18551 "configure" +#line 18555 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -29185,6 +29189,45 @@ $as_echo "#define TARGET_DEFAULT_LONG_DOUBLE_128 1" >>confdefs.h fi +# Check if TFmode long double target should use the IBM extended double or IEEE +# 128-bit floating point formats if long doubles are 128-bits long. The long +# double type can only be switched on powerpc64 bit Linux systems where VSX is +# supported. Other PowerPC systems do not build the IEEE 128-bit emulator in +# libgcc. + +# Check whether --with-long-double-format was given. +if test "${with_long_double_format+set}" = set; then : + withval=$with_long_double_format; +case "$target:$with_long_double_format" in + powerpc64le-*-linux*:ieee | powerpc64le-*-linux*:ibm) + : + ;; + powerpc64-*-linux*:ieee | powerpc64-*-linux*:ibm) + # IEEE 128-bit emulation is only built on 64-bit VSX Linux systems + case "$with_cpu" in + power7 | power8 | power9 | power1*) + : + ;; + *) + as_fn_error "Configuration option --with-long-double-format is only \ +supported if the default cpu is power7 or newer" "$LINENO" 5 + with_long_double_format="" + ;; + esac + ;; + xpowerpc64*-*-linux*:*) + as_fn_error "--with-long-double-format argument should be ibm or ieee" "$LINENO" 5 + with_long_double_format="" + ;; + *) + as_fn_error "Configure option --with-long-double-format is only supported \ +on 64-bit PowerPC VSX Linux systems" "$LINENO" 5 + with_long_double_format="" + ;; +esac +fi + + # Check if the target LIBC supports exporting the AT_PLATFORM and AT_HWCAP # values in the TCB. Currently, only GLIBC 2.23 and later support this. gcc_cv_libc_provides_hwcap_in_tcb=no |