[PATCH v4 17/21] math: Remove the SVID error handling from tgammaf
Adhemerval Zanella
adhemerval.zanella@linaro.org
Wed Oct 8 13:55:17 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 | 2 +-
math/w_tgammaf_compat.c | 9 ++--
sysdeps/generic/math_private_calls.h | 2 +
sysdeps/ieee754/flt-32/e_gammaf_r.c | 43 ++++++++++++-------
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 | 1 +
.../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, 61 insertions(+), 21 deletions(-)
create mode 100644 sysdeps/ieee754/flt-32/w_tgammaf.c
diff --git a/math/Versions b/math/Versions
index 68d63a8e664..681cf8471bb 100644
--- a/math/Versions
+++ b/math/Versions
@@ -689,6 +689,6 @@ libm {
GLIBC_2.43 {
# No SVID compatible error handling.
remainderf; remainder; log10f; lgammaf; lgammaf_r; acosf; asinf; acoshf;
- atan2f; atanhf; coshf; sinhf;
+ atan2f; atanhf; coshf; sinhf; tgammaf;
}
}
diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c
index addbdb11094..4aec892cc39 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.0))
@@ -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 62ced4efb3d..097a5de673d 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 66e8caee0be..61f97bfa1d3 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 <errno.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
@@ -89,6 +81,16 @@ __ieee754_gammaf_r (float x, int *signgamp)
* z - 0x1.2788cfc6fb619p-1;
double f = 1.0 / z + d;
float r = f;
+ /* tgamma(x) overflows for:
+ * 0 <= x < 0x1p-128 whatever the rounding mode
+ * x = 0x1p-128 and rounding to nearest or away from zero
+ (in which case the result is +Inf)
+ * -0x1p-128 <= x <= 0 whatever the rounding mode
+ */
+ if (fabsf (x) < 0x1p-128f ||
+ (x == 0x1p-128f && r > 0x1.fffffep+127f) || x == -0x1p-128f)
+ errno = ERANGE; /* overflow */
+
uint64_t rt = asuint64 (f);
if (((rt + 2) & 0xfffffff) < 4)
{
@@ -104,7 +106,7 @@ __ieee754_gammaf_r (float x, int *signgamp)
/* 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_value (math_narrow_eval (x * 0x1p127f));
}
/* compute k only after the overflow check, otherwise the case to integer
might overflow */
@@ -112,7 +114,7 @@ __ieee754_gammaf_r (float x, int *signgamp)
if (__glibc_unlikely (fx == x))
{ /* x is integer */
if (x == 0.0f)
- return 1.0f / x;
+ return __math_oflowf_value (1.0f / x);
if (x < 0.0f)
return __math_invalidf (0.0f);
double t0 = 1, x0 = 1;
@@ -125,7 +127,7 @@ __ieee754_gammaf_r (float x, int *signgamp)
/* 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]);
+ return __math_oflowf_value (math_narrow_eval (0x1p-127f * sgn[k & 1]));
}
/* The array c[] stores a degree-15 polynomial approximation for
gamma(x). */
@@ -164,6 +166,8 @@ __ieee754_gammaf_r (float x, int *signgamp)
f *= w;
uint64_t rt = asuint64 (f);
float r = f;
+ if (fabsf (r) < 0x1p-126f)
+ errno = ERANGE; // underflow
/* Deal with exceptional cases. */
if (__glibc_unlikely (((rt + 2) & 0xfffffff) < 8))
{
@@ -173,4 +177,11 @@ __ieee754_gammaf_r (float x, int *signgamp)
}
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 00000000000..1cc89317007
--- /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 d8d7cd87811..5fc732e34e3 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1331,3 +1331,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 0f5baffe3eb..20ac69ad691 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1297,3 +1297,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index d1a03bf02e5..9cec18fb45b 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1456,3 +1456,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index fbc3b5064a4..55f75969705 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index fbc3b5064a4..55f75969705 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 0d4750fbe77..13a840b964a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index d84a2c8c78a..f395e70e5a7 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1338,3 +1338,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index fbc3b5064a4..55f75969705 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index a9e3508169b..b7d60a66c96 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -993,3 +993,4 @@ GLIBC_2.43 lgammaf F
GLIBC_2.43 lgammaf_r F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 720d3a55d06..80fe359bebf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 720d3a55d06..80fe359bebf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 85cb5826b71..dc884254400 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index ca6901ae273..11a0ba70086 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1297,3 +1297,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 572b67bcf84..d4b23e444c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1109,3 +1109,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 134f11ec932..b74c06d4762 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1108,3 +1108,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index cff5aece427..f0851beb3f7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1102,3 +1102,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index f48afb01e62..f7aae34e2aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1486,3 +1486,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index c1e4b87b49f..64c9cf527c6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1400,3 +1400,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index ec84cdba566..d9975e51a44 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1400,3 +1400,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index b4b32ee3ee0..ae963e3bbec 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index b4b32ee3ee0..ae963e3bbec 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -962,3 +962,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index b3a2c941f67..82864e9469c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1407,3 +1407,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index b6d70df1e1c..4d95a9f1b2d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1297,3 +1297,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index a881f1c65e3..7fbb92a3d77 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1330,3 +1330,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index d99c0257607..20bcb9b64b1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1330,3 +1330,4 @@ GLIBC_2.43 log10f F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
GLIBC_2.43 sinhf F
+GLIBC_2.43 tgammaf F
--
2.43.0
More information about the Libc-alpha
mailing list