Patch-Source: https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=3fe5720430a9ba61ed7562aac4d758cc77d49a28 -- From 3fe5720430a9ba61ed7562aac4d758cc77d49a28 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 3 Aug 2024 20:37:54 +0200 Subject: [PATCH] libquadmath: Fix up libquadmath/math/sqrtq.c compilation in some powerpc* configurations [PR116007] My PR114623 change started using soft-fp.h and quad.h for the sqrtq implementation. Unfortunately, that seems to fail building in some powerpc* configurations, where TFmode isn't available. quad.h has: #ifndef TFtype typedef float TFtype __attribute__ ((mode (TF))); #endif and uses TFtype. quad.h has: /* Define the complex type corresponding to __float128 ("_Complex __float128" is not allowed) */ #if (!defined(_ARCH_PPC)) || defined(__LONG_DOUBLE_IEEE128__) typedef _Complex float __attribute__((mode(TC))) __complex128; #else typedef _Complex float __attribute__((mode(KC))) __complex128; #endif with the conditional and KCmode use added during porting of libquadmath to powerpc*, so I've just defined TFtype for powerpc when __LONG_DOUBLE_IEEE128__ isn't defined; I could define it to float __attribute__ ((mode (KF))) but it seemed easier to just define it to __float128 which should do the same thing. 2024-08-03 Jakub Jelinek PR target/116007 * math/sqrtq.c (TFtype): For PowerPC without __LONG_DOUBLE_IEEE128__ define to __float128 before including soft-fp.h and quad.h. (cherry picked from commit 3ac02e67503ccffa3dfeeffc0a60fce6bdaca43b) --- libquadmath/math/sqrtq.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libquadmath/math/sqrtq.c b/libquadmath/math/sqrtq.c index 8ca2828d42ce..a58998a06670 100644 --- a/libquadmath/math/sqrtq.c +++ b/libquadmath/math/sqrtq.c @@ -9,6 +9,9 @@ && defined(FE_TOWARDZERO) \ && defined(FE_INEXACT) #define USE_SOFT_FP 1 +#if defined(_ARCH_PPC) && !defined(__LONG_DOUBLE_IEEE128__) +#define TFtype __float128 +#endif #include "../../libgcc/soft-fp/soft-fp.h" #include "../../libgcc/soft-fp/quad.h" #endif -- 2.43.5