[PATCH v5 6/7] math: Remove the SVID error handling from tgammaf

Adhemerval Zanella adhemerval.zanella@linaro.org
Fri Oct 31 16:08:55 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           | 58 ++++++++++---------
 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, 64 insertions(+), 32 deletions(-)
 create mode 100644 sysdeps/ieee754/flt-32/w_tgammaf.c

diff --git a/math/Versions b/math/Versions
index 307f74f6ba4..bd22e051d0d 100644
--- a/math/Versions
+++ b/math/Versions
@@ -706,5 +706,6 @@ libm {
     y0f;
     y1f;
     ynf;
+    tgammaf;
   }
 }
diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c
index 253d0c8b663..b63d6462610 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 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..e7a9f865cb6 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -25,31 +25,24 @@ 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 <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,30 +82,32 @@ __ieee754_gammaf_r (float x, int *signgamp)
 	* z - 0x1.2788cfc6fb619p-1;
       double f = 1.0 / z + d;
       float r = f;
+
       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;
+	      {
+		r = tb[i].f + tb[i].df;
+		break;
+	      }
 	}
+      if (isinf (r))
+	errno = ERANGE;
+
       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;
+	return __math_oflowf (t >> 31);
       if (x < 0.0f)
 	return __math_invalidf (0.0f);
       double t0 = 1, x0 = 1;
@@ -121,12 +116,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,6 +157,8 @@ __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))
     {
@@ -173,4 +168,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 acfbe67aacd..4e360415b37 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1334,6 +1334,7 @@ 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
 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 ffd518644ec..aa2b8f9002c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1300,6 +1300,7 @@ 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
 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 191ea9e1323..3d5b1996ec2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1459,6 +1459,7 @@ 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
 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 4390dbbb9a6..ff6a6a0e01a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 4390dbbb9a6..ff6a6a0e01a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 8d7fe33087b..29d96f29424 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 2ee0fb5e3b9..91766882a15 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1341,6 +1341,7 @@ 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
 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 4390dbbb9a6..ff6a6a0e01a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 d07a815408a..d4b0a5fe83c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -996,6 +996,7 @@ 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
 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 2bbc4fb5c25..b060967b02c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 2bbc4fb5c25..b060967b02c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 1c67aa9eb6a..36ebb4f829a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 922d0ba9537..f779f2c2d01 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1300,6 +1300,7 @@ 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
 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 6e86c2cadb3..499ca93d88c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1112,6 +1112,7 @@ 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
 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 e895d6b0c43..82aa4dd38aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1110,6 +1110,7 @@ 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
 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 3e3e095e12b..9a8b5719dff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1105,6 +1105,7 @@ 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
 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 4bfcfc7abff..96f19717acc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1489,6 +1489,7 @@ 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
 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 579c925705c..1cf1fbb5ccf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1403,6 +1403,7 @@ 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
 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 627dc7cc2df..fbe1a6b03d8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1403,6 +1403,7 @@ 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
 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 f2947818369..9b135d127cf 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 f2947818369..9b135d127cf 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -965,6 +965,7 @@ 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
 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 125d15436e8..0b41f13ad32 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1410,6 +1410,7 @@ 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
 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 3288af27afc..6bf8d75d9f3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1300,6 +1300,7 @@ 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
 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 4ed2cccd2d1..324d99e8866 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1333,6 +1333,7 @@ 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
 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 ef26213e436..41e7e5ac1b1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1333,6 +1333,7 @@ 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
 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