[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