[PATCH v6 3/3] math: Remove the SVID error handling from tgammaf
Adhemerval Zanella
adhemerval.zanella@linaro.org
Tue Nov 4 16:20:01 GMT 2025
It improves latency for about 1.5% and throughput for about 2-4%.
Tested on x86_64-linux-gnu and i686-linux-gnu.
---
math/Versions | 1 +
math/w_tgammaf_compat.c | 9 ++--
sysdeps/generic/math_private_calls.h | 2 +
sysdeps/ieee754/flt-32/e_gammaf_r.c | 54 +++++++++----------
sysdeps/ieee754/flt-32/w_tgammaf.c | 1 +
sysdeps/mach/hurd/i386/libm.abilist | 1 +
sysdeps/unix/sysv/linux/aarch64/libm.abilist | 1 +
sysdeps/unix/sysv/linux/alpha/libm.abilist | 1 +
sysdeps/unix/sysv/linux/arm/be/libm.abilist | 1 +
sysdeps/unix/sysv/linux/arm/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/hppa/libm.abilist | 1 +
sysdeps/unix/sysv/linux/i386/libm.abilist | 1 +
.../sysv/linux/m68k/coldfire/libm.abilist | 1 +
.../unix/sysv/linux/m68k/m680x0/libm.abilist | 1 +
.../sysv/linux/microblaze/be/libm.abilist | 1 +
.../sysv/linux/microblaze/le/libm.abilist | 1 +
.../unix/sysv/linux/mips/mips32/libm.abilist | 1 +
.../unix/sysv/linux/mips/mips64/libm.abilist | 1 +
.../linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../powerpc/powerpc32/nofpu/libm.abilist | 2 +
.../linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../linux/powerpc/powerpc64/le/libm.abilist | 1 +
.../unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
.../unix/sysv/linux/s390/s390-64/libm.abilist | 1 +
sysdeps/unix/sysv/linux/sh/be/libm.abilist | 1 +
sysdeps/unix/sysv/linux/sh/le/libm.abilist | 1 +
.../sysv/linux/sparc/sparc32/libm.abilist | 1 +
.../sysv/linux/sparc/sparc64/libm.abilist | 1 +
.../unix/sysv/linux/x86_64/64/libm.abilist | 1 +
.../unix/sysv/linux/x86_64/x32/libm.abilist | 1 +
30 files changed, 60 insertions(+), 33 deletions(-)
create mode 100644 sysdeps/ieee754/flt-32/w_tgammaf.c
diff --git a/math/Versions b/math/Versions
index 3afbc427b9..d6ad34f459 100644
--- a/math/Versions
+++ b/math/Versions
@@ -707,5 +707,6 @@ libm {
y0f;
y1f;
ynf;
+ tgammaf;
}
}
diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c
index 253d0c8b66..b63d646261 100644
--- a/math/w_tgammaf_compat.c
+++ b/math/w_tgammaf_compat.c
@@ -18,12 +18,13 @@
#include <math_private.h>
#include <math-svid-compat.h>
#include <libm-alias-float.h>
+#include <shlib-compat.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_43)
float
-__tgammaf(float x)
+__tgammaf_svid(float x)
{
- float y = __ieee754_gammaf_r(x, NULL);
+ float y = __tgammaf(x);
if(__glibc_unlikely (!isfinite (y) || y == 0)
&& (isfinite (x) || (isinf (x) && x < 0.0f))
@@ -43,5 +44,5 @@ __tgammaf(float x)
}
return y;
}
-libm_alias_float (__tgamma, tgamma)
+compat_symbol (libm, __tgammaf_svid, tgammaf, GLIBC_2_1);
#endif
diff --git a/sysdeps/generic/math_private_calls.h b/sysdeps/generic/math_private_calls.h
index 62ced4efb3..097a5de673 100644
--- a/sysdeps/generic/math_private_calls.h
+++ b/sysdeps/generic/math_private_calls.h
@@ -36,7 +36,9 @@ extern _Mdouble_ __MSUF (__ieee754_exp10) (_Mdouble_);
extern _Mdouble_ __MSUF (__ieee754_exp2) (_Mdouble_);
extern _Mdouble_ __MSUF (__ieee754_fmod) (_Mdouble_, _Mdouble_);
extern _Mdouble_ __MSUF (__ieee754_gamma) (_Mdouble_);
+#if !defined __MATH_DECLARING_FLOAT
extern _Mdouble_ __MSUF_R (__ieee754_gamma) (_Mdouble_, int *);
+#endif
extern _Mdouble_ __MSUF (__ieee754_hypot) (_Mdouble_, _Mdouble_);
extern _Mdouble_ __MSUF (__ieee754_j0) (_Mdouble_);
extern _Mdouble_ __MSUF (__ieee754_j1) (_Mdouble_);
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index 66e8caee0b..917c9faac5 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -25,31 +25,23 @@ SOFTWARE.
*/
/* Changes with respect to the original CORE-MATH code:
- - removed the dealing with errno
- (this is done in the wrapper math/w_tgammaf_compat.c)
- usage of math_narrow_eval to deal with underflow/overflow
- - deal with signgamp
*/
+#include <array_length.h>
#include <math.h>
#include <float.h>
#include <stdint.h>
#include <stddef.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include <libm-alias-finite.h>
#include <math-narrow-eval.h>
#include "math_config.h"
float
-__ieee754_gammaf_r (float x, int *signgamp)
+__tgammaf (float x)
{
- /* The wrapper in math/w_tgamma_template.c expects *signgamp to be set to a
- non-negative value if the returned value is gamma(x), and to a negative
- value if it is -gamma(x).
- Since the code here directly computes gamma(x), we set it to 1.
- */
- if (signgamp != NULL)
- *signgamp = 1;
-
/* List of exceptional cases. Each entry contains the 32-bit encoding u of x,
a binary32 approximation f of gamma(x), and a correction term df. */
static const struct
@@ -92,27 +84,24 @@ __ieee754_gammaf_r (float x, int *signgamp)
uint64_t rt = asuint64 (f);
if (((rt + 2) & 0xfffffff) < 4)
{
- for (unsigned i = 0; i < sizeof (tb) / sizeof (tb[0]); i++)
+ for (unsigned i = 0; i < array_length (tb); i++)
if (t == tb[i].u)
return tb[i].f + tb[i].df;
}
+ if (x == 0.0f)
+ return __math_oflowf_value (r);
+ else if (isinf (r))
+ return __math_oflowf (t >> 31);
return r;
}
float fx = floorf (x);
if (__glibc_unlikely (x >= 0x1.18522p+5f))
- {
- /* Overflow case. The original CORE-MATH code returns
- 0x1p127f * 0x1p127f, but apparently some compilers replace this
- by +Inf. */
- return math_narrow_eval (x * 0x1p127f);
- }
+ return __math_oflowf (0);
/* compute k only after the overflow check, otherwise the case to integer
might overflow */
int k = fx;
if (__glibc_unlikely (fx == x))
{ /* x is integer */
- if (x == 0.0f)
- return 1.0f / x;
if (x < 0.0f)
return __math_invalidf (0.0f);
double t0 = 1, x0 = 1;
@@ -121,12 +110,10 @@ __ieee754_gammaf_r (float x, int *signgamp)
return t0;
}
if (__glibc_unlikely (x < -42.0f))
- { /* negative non-integer */
- /* For x < -42, x non-integer, |gamma(x)| < 2^-151. */
- static const float sgn[2] = { 0x1p-127f, -0x1p-127f };
- /* Underflows always happens */
- return math_narrow_eval (0x1p-127f * sgn[k & 1]);
- }
+ /* negative non-integer */
+ /* For x < -42, x non-integer, |gamma(x)| < 2^-151. */
+ /* Underflows always happens */
+ return __math_uflowf (k & 1);
/* The array c[] stores a degree-15 polynomial approximation for
gamma(x). */
static const double c[] =
@@ -164,13 +151,22 @@ __ieee754_gammaf_r (float x, int *signgamp)
f *= w;
uint64_t rt = asuint64 (f);
float r = f;
+ if (__glibc_unlikely (r == 0))
+ return __math_uflowf (rt >> 63);
/* Deal with exceptional cases. */
if (__glibc_unlikely (((rt + 2) & 0xfffffff) < 8))
{
- for (unsigned j = 0; j < sizeof (tb) / sizeof (tb[0]); j++)
+ for (unsigned j = 0; j < array_length (tb); j++)
if (t == tb[j].u)
return tb[j].f + tb[j].df;
}
return r;
}
-libm_alias_finite (__ieee754_gammaf_r, __gammaf_r)
+
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __tgammaf, tgammaf, GLIBC_2_43);
+libm_alias_float_other (__tgamma, tgamma)
+#else
+libm_alias_float (__tgamma, tgamma)
+#endif
+libm_alias_finite (__tgammaf, __gammaf_r)
diff --git a/sysdeps/ieee754/flt-32/w_tgammaf.c b/sysdeps/ieee754/flt-32/w_tgammaf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_tgammaf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 95aeaacda6..20da811584 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1335,6 +1335,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 4e203bf5a4..17a71db73d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1301,6 +1301,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 3d587a92a6..ec439daa5d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1460,6 +1460,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 635490118f..24e1adc4b5 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 635490118f..24e1adc4b5 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 3e9cb9fd3e..b8e75bce1e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index b76820ffad..6d0400dcc1 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1342,6 +1342,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 635490118f..24e1adc4b5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 67156d74fa..fcb3e6f369 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -997,6 +997,7 @@ GLIBC_2.43 lgammaf_r F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 86744483ed..06c935c595 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 86744483ed..06c935c595 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 24e19f31f7..ac514efdcd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 0e2c6c6464..713065cd65 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1301,6 +1301,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 1dfe3281c2..64af459283 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1113,6 +1113,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index bc167e6424..c9b6b2be85 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1105,12 +1105,14 @@ GLIBC_2.43 coshf F
GLIBC_2.43 j0f F
GLIBC_2.43 j1f F
GLIBC_2.43 jnf F
+GLIBC_2.43 lgammaf F
GLIBC_2.43 lgammaf_r F
GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index d123eeef26..a7a949ec86 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1106,6 +1106,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index ca9f3cd4b9..5f6dd0a606 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1490,6 +1490,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index f36d31952b..9c3a54a6db 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 355df9f489..0c6fd6ef65 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 9b626d9580..24c81ef25a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 9b626d9580..24c81ef25a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -966,6 +966,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 7ddd3c4b5e..064ca0f7c6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1411,6 +1411,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 5cd12dfb19..a5717fe546 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1301,6 +1301,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index eb267367f1..d3dff0e42b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1334,6 +1334,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index d1fea5ad56..387d97597e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1334,6 +1334,7 @@ GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
GLIBC_2.43 sqrtf F
+GLIBC_2.43 tgammaf F
GLIBC_2.43 y0f F
GLIBC_2.43 y1f F
GLIBC_2.43 ynf F
--
2.43.0
More information about the Libc-alpha
mailing list