From: Adhemerval Zanella Date: Wed, 5 Nov 2025 11:10:01 +0000 (-0300) Subject: math: Remove the SVID error handling from tgammaf X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3078358ac6deab75109606f72ad85049703184ad;p=thirdparty%2Fglibc.git math: Remove the SVID error handling from tgammaf It improves latency for about 1.5% and throughput for about 2-4%. Tested on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra --- 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 #include #include +#include -#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..2e16412775 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 #include #include #include #include +#include +#include #include #include #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,22 @@ __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 (isinf (r)) + return __math_erangef (r); 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 +108,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 +149,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/math_config.h b/sysdeps/ieee754/flt-32/math_config.h index 230aee591c..e927bdb2f9 100644 --- a/sysdeps/ieee754/flt-32/math_config.h +++ b/sysdeps/ieee754/flt-32/math_config.h @@ -225,6 +225,7 @@ attribute_hidden float __math_invalidf (float); attribute_hidden int __math_invalidf_i (int); attribute_hidden long int __math_invalidf_li (long int); attribute_hidden float __math_edomf (float x); +attribute_hidden float __math_erangef (float x); /* Shared between expf, exp2f, exp10f, and powf. */ #define EXP2F_TABLE_BITS 5 diff --git a/sysdeps/ieee754/flt-32/math_errf.c b/sysdeps/ieee754/flt-32/math_errf.c index 244e38a4ce..45e7394be2 100644 --- a/sysdeps/ieee754/flt-32/math_errf.c +++ b/sysdeps/ieee754/flt-32/math_errf.c @@ -54,6 +54,12 @@ __math_edomf (float y) return with_errnof (y, EDOM); } +attribute_hidden float +__math_erangef (float y) +{ + return with_errnof (y, ERANGE); +} + /* NOINLINE prevents fenv semantics breaking optimizations. */ NOINLINE static float xflowf (uint32_t sign, float y) 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