[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