[PATCH 07/25] math: Add feclearexcept internal alias

Adhemerval Zanella adhemerval.zanella@linaro.org
Mon Aug 25 16:38:26 GMT 2025


To avoid linknamespace issues on old standards.  It is required
if the fallback fma implementation is used if/when it is also
used internally for other implementation.
---
 include/fenv.h                    | 1 +
 math/fclrexcpt.c                  | 1 +
 sysdeps/aarch64/fpu/fclrexcpt.c   | 4 +++-
 sysdeps/alpha/fpu/fclrexcpt.c     | 1 +
 sysdeps/arc/fpu/fclrexcpt.c       | 4 +++-
 sysdeps/arm/fclrexcpt.c           | 4 +++-
 sysdeps/csky/fpu/fclrexcpt.c      | 4 +++-
 sysdeps/hppa/fpu/fclrexcpt.c      | 4 +++-
 sysdeps/i386/fpu/fclrexcpt.c      | 1 +
 sysdeps/loongarch/fpu/fclrexcpt.c | 4 +++-
 sysdeps/m68k/fpu/fclrexcpt.c      | 1 +
 sysdeps/mips/fpu/fclrexcpt.c      | 4 +++-
 sysdeps/or1k/fpu/fclrexcpt.c      | 4 +++-
 sysdeps/powerpc/fpu/fclrexcpt.c   | 1 +
 sysdeps/powerpc/nofpu/fclrexcpt.c | 1 +
 sysdeps/riscv/rvf/fclrexcpt.c     | 4 +++-
 sysdeps/s390/fpu/fclrexcpt.c      | 4 +++-
 sysdeps/sh/sh4/fpu/fclrexcpt.c    | 4 +++-
 sysdeps/sparc/fpu/fclrexcpt.c     | 1 +
 sysdeps/x86_64/fpu/fclrexcpt.c    | 4 +++-
 20 files changed, 44 insertions(+), 12 deletions(-)

diff --git a/include/fenv.h b/include/fenv.h
index 0b32f80964..b03d816a7a 100644
--- a/include/fenv.h
+++ b/include/fenv.h
@@ -33,6 +33,7 @@ libm_hidden_proto (feupdateenv)
 libm_hidden_proto (__feupdateenv)
 libm_hidden_proto (fetestexcept)
 libm_hidden_proto (feclearexcept)
+libm_hidden_proto (__feclearexcept)
 
 /* Rounding mode context.  This allows functions to set/restore rounding mode
    only when the desired rounding mode is different from the current rounding
diff --git a/math/fclrexcpt.c b/math/fclrexcpt.c
index cd24c2536b..7ab92f4801 100644
--- a/math/fclrexcpt.c
+++ b/math/fclrexcpt.c
@@ -25,6 +25,7 @@ __feclearexcept (int excepts)
   /* This always fails unless nothing needs to be done.  */
   return (excepts != 0);
 }
+libm_hidden_def (__feclearexcept)
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feclearexcept, __old_feclearexcept)
 compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
diff --git a/sysdeps/aarch64/fpu/fclrexcpt.c b/sysdeps/aarch64/fpu/fclrexcpt.c
index 841794a764..21eb731e29 100644
--- a/sysdeps/aarch64/fpu/fclrexcpt.c
+++ b/sysdeps/aarch64/fpu/fclrexcpt.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fpu_fpsr_t fpsr;
   fpu_fpsr_t fpsr_new;
@@ -35,4 +35,6 @@ feclearexcept (int excepts)
 
   return 0;
 }
+weak_alias (__feclearexcept, feclearexcept)
+libm_hidden_def (__feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c
index e3a8d4b48d..cef1ec95f6 100644
--- a/sysdeps/alpha/fpu/fclrexcpt.c
+++ b/sysdeps/alpha/fpu/fclrexcpt.c
@@ -35,6 +35,7 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
diff --git a/sysdeps/arc/fpu/fclrexcpt.c b/sysdeps/arc/fpu/fclrexcpt.c
index 96cd84e329..5fc49e607d 100644
--- a/sysdeps/arc/fpu/fclrexcpt.c
+++ b/sysdeps/arc/fpu/fclrexcpt.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   unsigned int fpsr;
 
@@ -33,4 +33,6 @@ feclearexcept (int excepts)
 
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/arm/fclrexcpt.c b/sysdeps/arm/fclrexcpt.c
index 91c8cb67d3..3c565ab351 100644
--- a/sysdeps/arm/fclrexcpt.c
+++ b/sysdeps/arm/fclrexcpt.c
@@ -22,7 +22,7 @@
 
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fpu_control_t fpscr, new_fpscr;
 
@@ -40,4 +40,6 @@ feclearexcept (int excepts)
 
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/csky/fpu/fclrexcpt.c b/sysdeps/csky/fpu/fclrexcpt.c
index 47969f8dca..a4933f36a2 100644
--- a/sysdeps/csky/fpu/fclrexcpt.c
+++ b/sysdeps/csky/fpu/fclrexcpt.c
@@ -21,7 +21,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   int fpsr;
 
@@ -39,4 +39,6 @@ feclearexcept (int excepts)
 
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/hppa/fpu/fclrexcpt.c b/sysdeps/hppa/fpu/fclrexcpt.c
index 454aeee415..f71411826b 100644
--- a/sysdeps/hppa/fpu/fclrexcpt.c
+++ b/sysdeps/hppa/fpu/fclrexcpt.c
@@ -19,7 +19,7 @@
 #include <fenv.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   union { unsigned long long l; unsigned int sw[2]; } s;
 
@@ -32,4 +32,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/i386/fpu/fclrexcpt.c b/sysdeps/i386/fpu/fclrexcpt.c
index f7a2ed2be1..713bc03669 100644
--- a/sysdeps/i386/fpu/fclrexcpt.c
+++ b/sysdeps/i386/fpu/fclrexcpt.c
@@ -56,6 +56,7 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
diff --git a/sysdeps/loongarch/fpu/fclrexcpt.c b/sysdeps/loongarch/fpu/fclrexcpt.c
index 8bd2cf2a93..9ee376f853 100644
--- a/sysdeps/loongarch/fpu/fclrexcpt.c
+++ b/sysdeps/loongarch/fpu/fclrexcpt.c
@@ -21,7 +21,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   int cw;
 
@@ -43,4 +43,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/m68k/fpu/fclrexcpt.c b/sysdeps/m68k/fpu/fclrexcpt.c
index 0df111f44e..0681d0934a 100644
--- a/sysdeps/m68k/fpu/fclrexcpt.c
+++ b/sysdeps/m68k/fpu/fclrexcpt.c
@@ -38,6 +38,7 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
diff --git a/sysdeps/mips/fpu/fclrexcpt.c b/sysdeps/mips/fpu/fclrexcpt.c
index a9ab82af3b..abfe059996 100644
--- a/sysdeps/mips/fpu/fclrexcpt.c
+++ b/sysdeps/mips/fpu/fclrexcpt.c
@@ -21,7 +21,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   int cw;
 
@@ -43,4 +43,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/or1k/fpu/fclrexcpt.c b/sysdeps/or1k/fpu/fclrexcpt.c
index 57aa9e5a60..f1f4f064b7 100644
--- a/sysdeps/or1k/fpu/fclrexcpt.c
+++ b/sysdeps/or1k/fpu/fclrexcpt.c
@@ -21,7 +21,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fpu_control_t cw;
   fpu_control_t cw_new;
@@ -41,4 +41,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/powerpc/fpu/fclrexcpt.c b/sysdeps/powerpc/fpu/fclrexcpt.c
index d9bab95bb2..c02f5fad5d 100644
--- a/sysdeps/powerpc/fpu/fclrexcpt.c
+++ b/sysdeps/powerpc/fpu/fclrexcpt.c
@@ -38,6 +38,7 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
diff --git a/sysdeps/powerpc/nofpu/fclrexcpt.c b/sysdeps/powerpc/nofpu/fclrexcpt.c
index baea127e11..66be5ea00e 100644
--- a/sysdeps/powerpc/nofpu/fclrexcpt.c
+++ b/sysdeps/powerpc/nofpu/fclrexcpt.c
@@ -26,6 +26,7 @@ __feclearexcept (int x)
   SIM_SET_GLOBAL (__sim_exceptions_global, __sim_exceptions_thread);
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #include <shlib-compat.h>
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
diff --git a/sysdeps/riscv/rvf/fclrexcpt.c b/sysdeps/riscv/rvf/fclrexcpt.c
index 661aa799a9..29509a9f20 100644
--- a/sysdeps/riscv/rvf/fclrexcpt.c
+++ b/sysdeps/riscv/rvf/fclrexcpt.c
@@ -20,9 +20,11 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   asm volatile ("csrc fflags, %0" : : "r" (excepts));
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/s390/fpu/fclrexcpt.c b/sysdeps/s390/fpu/fclrexcpt.c
index b8e3e8f814..30623f6370 100644
--- a/sysdeps/s390/fpu/fclrexcpt.c
+++ b/sysdeps/s390/fpu/fclrexcpt.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fexcept_t temp;
 
@@ -42,4 +42,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/sh/sh4/fpu/fclrexcpt.c b/sysdeps/sh/sh4/fpu/fclrexcpt.c
index 49361d9110..410a140463 100644
--- a/sysdeps/sh/sh4/fpu/fclrexcpt.c
+++ b/sysdeps/sh/sh4/fpu/fclrexcpt.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fpu_control_t cw;
 
@@ -38,4 +38,6 @@ feclearexcept (int excepts)
 
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
diff --git a/sysdeps/sparc/fpu/fclrexcpt.c b/sysdeps/sparc/fpu/fclrexcpt.c
index c1f2cdfdf7..368c9eaa99 100644
--- a/sysdeps/sparc/fpu/fclrexcpt.c
+++ b/sysdeps/sparc/fpu/fclrexcpt.c
@@ -34,6 +34,7 @@ __feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
 
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feclearexcept, __old_feclearexcept)
diff --git a/sysdeps/x86_64/fpu/fclrexcpt.c b/sysdeps/x86_64/fpu/fclrexcpt.c
index ba784666af..3bbb5a2b48 100644
--- a/sysdeps/x86_64/fpu/fclrexcpt.c
+++ b/sysdeps/x86_64/fpu/fclrexcpt.c
@@ -19,7 +19,7 @@
 #include <fenv.h>
 
 int
-feclearexcept (int excepts)
+__feclearexcept (int excepts)
 {
   fenv_t temp;
   unsigned int mxcsr;
@@ -49,4 +49,6 @@ feclearexcept (int excepts)
   /* Success.  */
   return 0;
 }
+libm_hidden_def (__feclearexcept)
+weak_alias (__feclearexcept, feclearexcept)
 libm_hidden_def (feclearexcept)
-- 
2.43.0



More information about the Libc-alpha mailing list