[glibc/azanella/clang] math: Handle fabsf128 intra PLT for !__USE_EXTERN_INLINES

Adhemerval Zanella azanella@sourceware.org
Fri Oct 17 19:15:53 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d996bd2c2a0ccf9435488be105daf2d1b9751b09

commit d996bd2c2a0ccf9435488be105daf2d1b9751b09
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Aug 2 15:42:14 2022 -0300

    math: Handle fabsf128 intra PLT for !__USE_EXTERN_INLINES
    
    If compiler does not support __USE_EXTERN_INLINES we need to route
    fabsf128 call to an internal symbol.

Diff:
---
 include/math.h                        | 11 ++++++++---
 sysdeps/ieee754/float128/s_fabsf128.c |  3 +++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/math.h b/include/math.h
index 9ba4708801..d8ff0864c0 100644
--- a/include/math.h
+++ b/include/math.h
@@ -114,9 +114,11 @@ __issignalingf (float x)
 
 # if __HAVE_DISTINCT_FLOAT128
 
+#  ifdef __USE_EXTERN_INLINES
+
 /* __builtin_isinf_sign is broken in GCC < 7 for float128.  */
-#  if ! __GNUC_PREREQ (7, 0)
-#   include <ieee754_float128.h>
+#   if ! __GNUC_PREREQ (7, 0)
+#    include <ieee754_float128.h>
 extern inline int
 __isinff128 (_Float128 x)
 {
@@ -126,13 +128,16 @@ __isinff128 (_Float128 x)
   lx |= -lx;
   return ~(lx >> 63) & (hx >> 62);
 }
-#  endif
+#   endif
 
 extern inline _Float128
 fabsf128 (_Float128 x)
 {
   return __builtin_fabsf128 (x);
 }
+#  else
+libm_hidden_proto (fabsf128)
+#  endif
 # endif
 
 
diff --git a/sysdeps/ieee754/float128/s_fabsf128.c b/sysdeps/ieee754/float128/s_fabsf128.c
index 79ba47c3fd..d877b0214f 100644
--- a/sysdeps/ieee754/float128/s_fabsf128.c
+++ b/sysdeps/ieee754/float128/s_fabsf128.c
@@ -1,2 +1,5 @@
 #include <float128_private.h>
 #include "../ldbl-128/s_fabsl.c"
+#ifndef __USE_EXTERN_INLINES
+libm_hidden_def (fabsf128)
+#endif


More information about the Glibc-cvs mailing list