[PATCH 11/25] math: Add fetestexcept internal alias

Adhemerval Zanella adhemerval.zanella@linaro.org
Mon Aug 25 16:38:30 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                      | 2 ++
 math/ftestexcept.c                  | 4 +++-
 sysdeps/aarch64/fpu/ftestexcept.c   | 4 +++-
 sysdeps/alpha/fpu/ftestexcept.c     | 4 +++-
 sysdeps/arc/fpu/ftestexcept.c       | 4 +++-
 sysdeps/arm/ftestexcept.c           | 4 +++-
 sysdeps/csky/fpu/ftestexcept.c      | 4 +++-
 sysdeps/generic/fenv_private.h      | 8 ++++----
 sysdeps/hppa/fpu/ftestexcept.c      | 4 +++-
 sysdeps/i386/fpu/ftestexcept.c      | 4 +++-
 sysdeps/loongarch/fpu/ftestexcept.c | 4 +++-
 sysdeps/m68k/fpu/ftestexcept.c      | 4 +++-
 sysdeps/mips/fpu/ftestexcept.c      | 4 +++-
 sysdeps/or1k/fpu/ftestexcept.c      | 4 +++-
 sysdeps/powerpc/fpu/ftestexcept.c   | 4 +++-
 sysdeps/powerpc/nofpu/ftestexcept.c | 4 +++-
 sysdeps/riscv/rvf/ftestexcept.c     | 4 +++-
 sysdeps/s390/fpu/ftestexcept.c      | 4 +++-
 sysdeps/sh/sh4/fpu/ftestexcept.c    | 4 +++-
 sysdeps/sparc/fpu/ftestexcept.c     | 4 +++-
 sysdeps/x86_64/fpu/ftestexcept.c    | 4 +++-
 21 files changed, 63 insertions(+), 23 deletions(-)

diff --git a/include/fenv.h b/include/fenv.h
index b03d816a7a..85938bb1c7 100644
--- a/include/fenv.h
+++ b/include/fenv.h
@@ -16,6 +16,7 @@ extern int __feupdateenv (const fenv_t *__envp);
 extern __typeof (fegetround) __fegetround __attribute_pure__;
 extern __typeof (feholdexcept) __feholdexcept;
 extern __typeof (fesetround) __fesetround;
+extern __typeof (fetestexcept) __fetestexcept;
 
 libm_hidden_proto (feraiseexcept)
 libm_hidden_proto (__feraiseexcept)
@@ -32,6 +33,7 @@ libm_hidden_proto (__feholdexcept)
 libm_hidden_proto (feupdateenv)
 libm_hidden_proto (__feupdateenv)
 libm_hidden_proto (fetestexcept)
+libm_hidden_proto (__fetestexcept)
 libm_hidden_proto (feclearexcept)
 libm_hidden_proto (__feclearexcept)
 
diff --git a/math/ftestexcept.c b/math/ftestexcept.c
index ba98df7f58..e0c4f2feab 100644
--- a/math/ftestexcept.c
+++ b/math/ftestexcept.c
@@ -19,9 +19,11 @@
 #include <fenv.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return 0;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
 stub_warning (fetestexcept)
diff --git a/sysdeps/aarch64/fpu/ftestexcept.c b/sysdeps/aarch64/fpu/ftestexcept.c
index 1c709e8636..f057616f7f 100644
--- a/sysdeps/aarch64/fpu/ftestexcept.c
+++ b/sysdeps/aarch64/fpu/ftestexcept.c
@@ -20,8 +20,10 @@
 #include <fenv_private.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return libc_fetestexcept_aarch64 (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/alpha/fpu/ftestexcept.c b/sysdeps/alpha/fpu/ftestexcept.c
index 183f68b7d0..1395deee8d 100644
--- a/sysdeps/alpha/fpu/ftestexcept.c
+++ b/sysdeps/alpha/fpu/ftestexcept.c
@@ -19,7 +19,7 @@
 #include <fenv_libc.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   unsigned long tmp;
 
@@ -28,4 +28,6 @@ fetestexcept (int excepts)
 
   return tmp & excepts & SWCR_STATUS_MASK;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/arc/fpu/ftestexcept.c b/sysdeps/arc/fpu/ftestexcept.c
index 74327e42f0..c3cfe631a4 100644
--- a/sysdeps/arc/fpu/ftestexcept.c
+++ b/sysdeps/arc/fpu/ftestexcept.c
@@ -22,7 +22,7 @@
 #include <stdio.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   unsigned int fpsr;
 
@@ -30,4 +30,6 @@ fetestexcept (int excepts)
 
   return fpsr & excepts;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/arm/ftestexcept.c b/sysdeps/arm/ftestexcept.c
index 603cbfcaa9..a5d6db2d93 100644
--- a/sysdeps/arm/ftestexcept.c
+++ b/sysdeps/arm/ftestexcept.c
@@ -21,7 +21,7 @@
 
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   /* Return no exception flags if a VFP unit isn't present.  */
   if (!ARM_HAVE_VFP)
@@ -29,4 +29,6 @@ fetestexcept (int excepts)
 
   return libc_fetestexcept_vfp (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/csky/fpu/ftestexcept.c b/sysdeps/csky/fpu/ftestexcept.c
index 135ddcaed0..ea16d691e5 100644
--- a/sysdeps/csky/fpu/ftestexcept.c
+++ b/sysdeps/csky/fpu/ftestexcept.c
@@ -23,8 +23,10 @@
 #include <stdio.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return libc_fetestexcept_vfp (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/generic/fenv_private.h b/sysdeps/generic/fenv_private.h
index cf041ebf78..11aeb3be28 100644
--- a/sysdeps/generic/fenv_private.h
+++ b/sysdeps/generic/fenv_private.h
@@ -82,13 +82,13 @@ default_libc_feholdexcept_setround (fenv_t *e, int r)
 #endif
 
 #ifndef libc_fetestexcept
-# define libc_fetestexcept  fetestexcept
+# define libc_fetestexcept  __fetestexcept
 #endif
 #ifndef libc_fetestexceptf
-# define libc_fetestexceptf fetestexcept
+# define libc_fetestexceptf __fetestexcept
 #endif
 #ifndef libc_fetestexceptl
-# define libc_fetestexceptl fetestexcept
+# define libc_fetestexceptl __fetestexcept
 #endif
 
 static __always_inline void
@@ -130,7 +130,7 @@ default_libc_feupdateenv (fenv_t *e)
 static __always_inline int
 default_libc_feupdateenv_test (fenv_t *e, int ex)
 {
-  int ret = fetestexcept (ex);
+  int ret = __fetestexcept (ex);
   __feupdateenv (e);
   return ret;
 }
diff --git a/sysdeps/hppa/fpu/ftestexcept.c b/sysdeps/hppa/fpu/ftestexcept.c
index 0286230cc7..032568ccef 100644
--- a/sysdeps/hppa/fpu/ftestexcept.c
+++ b/sysdeps/hppa/fpu/ftestexcept.c
@@ -19,7 +19,7 @@
 #include <fenv.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   union { unsigned long long l; unsigned int sw[2]; } s;
 
@@ -30,4 +30,6 @@ fetestexcept (int excepts)
 
   return (s.sw[0] >> 27) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/i386/fpu/ftestexcept.c b/sysdeps/i386/fpu/ftestexcept.c
index 2d41ba22ac..09a673e1ab 100644
--- a/sysdeps/i386/fpu/ftestexcept.c
+++ b/sysdeps/i386/fpu/ftestexcept.c
@@ -21,7 +21,7 @@
 #include <ldsodefs.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   short temp;
   int xtemp = 0;
@@ -35,4 +35,6 @@ fetestexcept (int excepts)
 
   return (temp | xtemp) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/loongarch/fpu/ftestexcept.c b/sysdeps/loongarch/fpu/ftestexcept.c
index 14e1857879..3d5b6de760 100644
--- a/sysdeps/loongarch/fpu/ftestexcept.c
+++ b/sysdeps/loongarch/fpu/ftestexcept.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   int cw;
 
@@ -29,4 +29,6 @@ fetestexcept (int excepts)
 
   return cw & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/m68k/fpu/ftestexcept.c b/sysdeps/m68k/fpu/ftestexcept.c
index cbe0205833..cfa659e182 100644
--- a/sysdeps/m68k/fpu/ftestexcept.c
+++ b/sysdeps/m68k/fpu/ftestexcept.c
@@ -19,7 +19,7 @@
 #include <fenv.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   fexcept_t fpsr;
 
@@ -28,4 +28,6 @@ fetestexcept (int excepts)
 
   return fpsr & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/mips/fpu/ftestexcept.c b/sysdeps/mips/fpu/ftestexcept.c
index 58e2c555db..3cb45a590b 100644
--- a/sysdeps/mips/fpu/ftestexcept.c
+++ b/sysdeps/mips/fpu/ftestexcept.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   int cw;
 
@@ -29,4 +29,6 @@ fetestexcept (int excepts)
 
   return cw & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/or1k/fpu/ftestexcept.c b/sysdeps/or1k/fpu/ftestexcept.c
index e199bcdf1a..004a414eda 100644
--- a/sysdeps/or1k/fpu/ftestexcept.c
+++ b/sysdeps/or1k/fpu/ftestexcept.c
@@ -20,8 +20,10 @@
 #include <fenv_private.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return libc_fetestexcept_or1k (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/powerpc/fpu/ftestexcept.c b/sysdeps/powerpc/fpu/ftestexcept.c
index c295156d55..0c30823fa8 100644
--- a/sysdeps/powerpc/fpu/ftestexcept.c
+++ b/sysdeps/powerpc/fpu/ftestexcept.c
@@ -19,7 +19,7 @@
 #include <fenv_libc.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   fenv_union_t u;
 
@@ -30,4 +30,6 @@ fetestexcept (int excepts)
      just:  */
   return u.l & excepts;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/powerpc/nofpu/ftestexcept.c b/sysdeps/powerpc/nofpu/ftestexcept.c
index b042c0f4d5..11bb1a5dd5 100644
--- a/sysdeps/powerpc/nofpu/ftestexcept.c
+++ b/sysdeps/powerpc/nofpu/ftestexcept.c
@@ -20,8 +20,10 @@
 #include "soft-supp.h"
 
 int
-fetestexcept (int x)
+__fetestexcept (int x)
 {
   return __sim_exceptions_thread & x;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/riscv/rvf/ftestexcept.c b/sysdeps/riscv/rvf/ftestexcept.c
index ac4ae00555..52099212b0 100644
--- a/sysdeps/riscv/rvf/ftestexcept.c
+++ b/sysdeps/riscv/rvf/ftestexcept.c
@@ -20,8 +20,10 @@
 #include <fenv_private.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return libc_fetestexcept_riscv (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/s390/fpu/ftestexcept.c b/sysdeps/s390/fpu/ftestexcept.c
index 056aa097b1..e906539929 100644
--- a/sysdeps/s390/fpu/ftestexcept.c
+++ b/sysdeps/s390/fpu/ftestexcept.c
@@ -19,8 +19,10 @@
 #include <fenv_private.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   return libc_fetestexcept_s390 (excepts);
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/sh/sh4/fpu/ftestexcept.c b/sysdeps/sh/sh4/fpu/ftestexcept.c
index 66441cfb3e..39659a4566 100644
--- a/sysdeps/sh/sh4/fpu/ftestexcept.c
+++ b/sysdeps/sh/sh4/fpu/ftestexcept.c
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   fpu_control_t temp;
 
@@ -29,4 +29,6 @@ fetestexcept (int excepts)
 
   return temp & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/sparc/fpu/ftestexcept.c b/sysdeps/sparc/fpu/ftestexcept.c
index 77a3b2e39d..44f6767e8c 100644
--- a/sysdeps/sparc/fpu/ftestexcept.c
+++ b/sysdeps/sparc/fpu/ftestexcept.c
@@ -20,7 +20,7 @@
 #include <fenv_private.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   fenv_t tmp;
 
@@ -28,4 +28,6 @@ fetestexcept (int excepts)
 
   return tmp & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
diff --git a/sysdeps/x86_64/fpu/ftestexcept.c b/sysdeps/x86_64/fpu/ftestexcept.c
index b6c617d985..87a851d4b4 100644
--- a/sysdeps/x86_64/fpu/ftestexcept.c
+++ b/sysdeps/x86_64/fpu/ftestexcept.c
@@ -19,7 +19,7 @@
 #include <fenv.h>
 
 int
-fetestexcept (int excepts)
+__fetestexcept (int excepts)
 {
   int temp;
   unsigned int mxscr;
@@ -30,4 +30,6 @@ fetestexcept (int excepts)
 
   return (temp | mxscr) & excepts & FE_ALL_EXCEPT;
 }
+libm_hidden_def (__fetestexcept)
+weak_alias (__fetestexcept, fetestexcept)
 libm_hidden_def (fetestexcept)
-- 
2.43.0



More information about the Libc-alpha mailing list