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

Reply via email to