aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2018-01-11 23:31:09 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2018-01-11 23:31:09 +0000
commit8c7a27d566e7144451d1f0eb79d6b5866035995f (patch)
tree866629ef524c5989733eec997136715953b1a31e /gcc/config
parent02a03501e439cd92b741034c32ce7238a927dff1 (diff)
downloadgcc-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/config')
-rw-r--r--gcc/config/rs6000/rs6000-c.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index 7a6954a..b7693d0 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -708,7 +708,18 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile)
builtin_define ("__LONGDOUBLE128");
if (TARGET_IEEEQUAD)
- builtin_define ("__LONG_DOUBLE_IEEE128__");
+ {
+ /* Older versions of GLIBC used __attribute__((__KC__)) to create the
+ IEEE 128-bit floating point complex type for C++ (which does not
+ support _Float128 _Complex). If the default for long double is
+ IEEE 128-bit mode, the library would need to use
+ __attribute__((__TC__)) instead. Defining __KF__ and __KC__
+ is a stop-gap to build with the older libraries, until we
+ get an updated library. */
+ builtin_define ("__LONG_DOUBLE_IEEE128__");
+ builtin_define ("__KF__=__TF__");
+ builtin_define ("__KC__=__TC__");
+ }
else
builtin_define ("__LONG_DOUBLE_IBM128__");
}