When GCC is configured with --with-long-double-format=ieee, set the
IEEE-quad target defines for powerpc*le so that long double defaults to
IEEE binary128. This is required for powerpc64le-*-freebsd*: FreeBSD 16
uses IEEE-128 long double in its base ABI.
gcc/ChangeLog:
* config.gcc (powerpc*le-*-*): Set RS6000_DEFAULT_LONG_DOUBLE_SIZE,
TARGET_IEEEQUAD_DEFAULT and TARGET_FLOAT128_ENABLE_TYPE when
--with-long-double-format=ieee.
Signed-off-by: Piotr Kubaj <[email protected]>
---
gcc/config.gcc | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -3071,7 +3071,10 @@
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file}
rs6000/t-ppccomm"
case ${target} in
powerpc*le-*-*)
- tm_file="${tm_file} rs6000/sysv4le.h" ;;
+ tm_file="${tm_file} rs6000/sysv4le.h"
+ if test x$with_long_double_format = xieee; then
+ tm_defines="${tm_defines}
RS6000_DEFAULT_LONG_DOUBLE_SIZE=128 TARGET_IEEEQUAD_DEFAULT=1
TARGET_FLOAT128_ENABLE_TYPE=1"
+ fi ;;
esac
case ${target} in
powerpc64*)
--
2.49.0