[PATCH v7 1/2] math: Remove the SVID error handling from lgammaf/lgammaf_r

Adhemerval Zanella adhemerval.zanella@linaro.org
Wed Nov 5 11:10:00 GMT 2025


It improves latency throughput for about 2%.

Tested on x86_64-linux-gnu and i686-linux-gnu.
---
 math/Versions                                 |  2 ++
 math/lgamma-compat.h                          | 15 +++++++++---
 math/w_lgammaf_compat2.c                      |  2 +-
 math/w_lgammaf_main.c                         |  7 +-----
 math/w_lgammaf_r_compat.c                     |  5 ++--
 sysdeps/ieee754/flt-32/e_lgammaf_r.c          | 24 ++++++++++++++-----
 sysdeps/ieee754/flt-32/w_lgammaf.c            | 17 +++++++++++++
 sysdeps/ieee754/flt-32/w_lgammaf_r.c          |  1 +
 sysdeps/mach/hurd/i386/libm.abilist           |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libm.abilist  |  2 ++
 sysdeps/unix/sysv/linux/alpha/libm.abilist    |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libm.abilist   |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libm.abilist   |  2 ++
 sysdeps/unix/sysv/linux/hppa/libm.abilist     |  2 ++
 sysdeps/unix/sysv/linux/i386/libm.abilist     |  2 ++
 .../sysv/linux/m68k/coldfire/libm.abilist     |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libm.abilist  |  2 ++
 .../sysv/linux/microblaze/be/libm.abilist     |  2 ++
 .../sysv/linux/microblaze/le/libm.abilist     |  2 ++
 .../unix/sysv/linux/mips/mips32/libm.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips64/libm.abilist  |  2 ++
 .../linux/powerpc/powerpc32/fpu/libm.abilist  |  2 ++
 .../powerpc/powerpc32/nofpu/libm.abilist      |  1 +
 .../linux/powerpc/powerpc64/be/libm.abilist   |  2 ++
 .../linux/powerpc/powerpc64/le/libm.abilist   |  2 ++
 .../unix/sysv/linux/s390/s390-32/libm.abilist |  2 ++
 .../unix/sysv/linux/s390/s390-64/libm.abilist |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libm.abilist    |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libm.abilist    |  2 ++
 .../sysv/linux/sparc/sparc32/libm.abilist     |  2 ++
 .../sysv/linux/sparc/sparc64/libm.abilist     |  2 ++
 .../unix/sysv/linux/x86_64/64/libm.abilist    |  2 ++
 .../unix/sysv/linux/x86_64/x32/libm.abilist   |  2 ++
 33 files changed, 104 insertions(+), 18 deletions(-)
 create mode 100644 sysdeps/ieee754/flt-32/w_lgammaf.c
 create mode 100644 sysdeps/ieee754/flt-32/w_lgammaf_r.c

diff --git a/math/Versions b/math/Versions
index bf57cc9176..3afbc427b9 100644
--- a/math/Versions
+++ b/math/Versions
@@ -697,6 +697,8 @@ libm {
     j0f;
     j1f;
     jnf;
+    lgammaf;
+    lgammaf_r;
     log10f;
     remainder;
     remainderf;
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index bf4acef559..795e97d5a0 100644
--- a/math/lgamma-compat.h
+++ b/math/lgamma-compat.h
@@ -34,10 +34,17 @@
    old glibc.
 
    Users of this file define USE_AS_COMPAT to 0 when building the main
-   version of lgamma, 1 when building the compatibility version.  */
+   version of lgamma, 1 when building the compatibility version that
+   handles signgam visibility, and 2 when building the compatibility
+   that handles SVID support).  */
 
+#if USE_AS_COMPAT <= 1
 #define LGAMMA_OLD_VER GLIBC_2_0
 #define LGAMMA_NEW_VER GLIBC_2_23
+#elif USE_AS_COMPAT == 2
+#define LGAMMA_OLD_VER    GLIBC_2_23
+#define LGAMMA_NEW_VER    GLIBC_2_43
+#endif
 #define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER)
 
 /* Whether to build this version at all.  */
@@ -45,8 +52,10 @@
   (LIBM_SVID_COMPAT && (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT))
 
 /* The name to use for this version.  */
-#if USE_AS_COMPAT
+#if USE_AS_COMPAT == 1
 # define LGFUNC(FUNC) FUNC ## _compat
+#elif USE_AS_COMPAT == 2
+# define LGFUNC(FUNC) FUNC ## _compat2
 #else
 # define LGFUNC(FUNC) FUNC
 #endif
@@ -54,7 +63,7 @@
 /* If there is a compatibility version, gamma (not an ISO C function,
    so never a problem for it to set signgam) points directly to it
    rather than having separate versions.  */
-#define GAMMA_ALIAS (USE_AS_COMPAT ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
+#define GAMMA_ALIAS (USE_AS_COMPAT == 1 ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
 
 /* How to call the underlying lgamma_r function.  */
 #define CALL_LGAMMA(TYPE, FUNC, ARG)			\
diff --git a/math/w_lgammaf_compat2.c b/math/w_lgammaf_compat2.c
index 5fc402260c..3a942dbe04 100644
--- a/math/w_lgammaf_compat2.c
+++ b/math/w_lgammaf_compat2.c
@@ -1,2 +1,2 @@
-#define USE_AS_COMPAT 0
+#define USE_AS_COMPAT 2
 #include <w_lgammaf_main.c>
diff --git a/math/w_lgammaf_main.c b/math/w_lgammaf_main.c
index 22b7f8fc53..8d475d3a6c 100644
--- a/math/w_lgammaf_main.c
+++ b/math/w_lgammaf_main.c
@@ -33,12 +33,7 @@ LGFUNC (__lgammaf) (float x)
 
 	return y;
 }
-# if USE_AS_COMPAT
-compat_symbol (libm, __lgammaf_compat, lgammaf, LGAMMA_OLD_VER);
-# else
-versioned_symbol (libm, __lgammaf, lgammaf, LGAMMA_NEW_VER);
-libm_alias_float_other (__lgamma, lgamma)
-# endif
+compat_symbol (libm, LGFUNC (__lgammaf), lgammaf, LGAMMA_OLD_VER);
 # if GAMMA_ALIAS
 strong_alias (LGFUNC (__lgammaf), __gammaf)
 weak_alias (__gammaf, gammaf)
diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c
index be01b6daac..524f9901d3 100644
--- a/math/w_lgammaf_r_compat.c
+++ b/math/w_lgammaf_r_compat.c
@@ -20,11 +20,12 @@
 #include <math_private.h>
 #include <math-svid-compat.h>
 #include <libm-alias-float.h>
+#include <shlib-compat.h>
 
 
 #if LIBM_SVID_COMPAT
 float
-__lgammaf_r(float x, int *signgamp)
+__lgammaf_r_svidf(float x, int *signgamp)
 {
 	float y = __ieee754_lgammaf_r(x,signgamp);
 	if(__builtin_expect(!isfinite(y), 0)
@@ -36,5 +37,5 @@ __lgammaf_r(float x, int *signgamp)
 
 	return y;
 }
-libm_alias_float_r (__lgamma, lgamma, _r)
+compat_symbol (libm, __lgammaf_r_svidf, lgammaf_r, GLIBC_2_0);
 #endif
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 059afa86c6..2fb4784b59 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -36,6 +36,8 @@ SOFTWARE.
 #include <math.h>
 #include <libm-alias-finite.h>
 #include <limits.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include <math-narrow-eval.h>
 #include "math_config.h"
 
@@ -108,7 +110,7 @@ as_ln (double x)
 }
 
 float
-__ieee754_lgammaf_r (float x, int *signgamp)
+__lgammaf_r (float x, int *signgamp)
 {
   static const struct
   {
@@ -161,7 +163,7 @@ __ieee754_lgammaf_r (float x, int *signgamp)
       if (x <= 0.0f)
 	{
 	  *signgamp = asuint (x) >> 31 ? -1 : 1;
-	  return 1.0f / 0.0f;
+	  return __math_divzerof (0);
 	}
       if (x == 1.0f || x == 2.0f)
 	{
@@ -206,10 +208,11 @@ __ieee754_lgammaf_r (float x, int *signgamp)
       if (ax > 0x1.afc1ap+1f)
 	{
 	  if (__glibc_unlikely (x > 0x1.895f1cp+121f))
-	    return math_narrow_eval (0x1p127f * 0x1p127f);
+	    return __math_oflowf (0);
+
 	  /* |x|>=2**23, must be -integer */
 	  if (__glibc_unlikely (x < 0.0f && ax > 0x1p+23f))
-	    return ax / 0.0f;
+	    return __math_divzerof (0);
 	  double lz = as_ln (z);
 	  f = (z - 0.5) * (lz - 1) + 0x1.acfe390c97d69p-2;
 	  if (ax < 0x1.0p+20f)
@@ -271,7 +274,7 @@ __ieee754_lgammaf_r (float x, int *signgamp)
 	    {
 	      int ni = floorf (-2 * x);
 	      if ((ni & 1) == 0 && ni == -2 * x)
-		return 1.0f / 0.0f;
+		return __math_divzerof (0);
 	    }
 	  const double c0 = 0x1.3cc0e6a0106b3p+2;
 	  static const double rd[] =
@@ -363,4 +366,13 @@ __ieee754_lgammaf_r (float x, int *signgamp)
     }
   return r;
 }
-libm_alias_finite (__ieee754_lgammaf_r, __lgammaf_r)
+strong_alias (__lgammaf_r, __ieee754_lgammaf_r)
+libm_alias_finite (__lgammaf_r, __lgammaf_r)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgammaf_r, lgammaf_r, GLIBC_2_43);
+# if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
+weak_alias (__lgammaf_r, lgammaf32_r)
+# endif
+#else
+libm_alias_float_r (__lgamma, lgamma, _r)
+#endif
diff --git a/sysdeps/ieee754/flt-32/w_lgammaf.c b/sysdeps/ieee754/flt-32/w_lgammaf.c
new file mode 100644
index 0000000000..5fc9b46866
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_lgammaf.c
@@ -0,0 +1,17 @@
+#include <math-svid-compat.h>
+#include <math.h>
+#include <libm-alias-float.h>
+
+float
+__lgammaf (float x)
+{
+  return __lgammaf_r (x, &__signgam);
+}
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgammaf, lgammaf, GLIBC_2_43);
+libm_alias_float_other (__lgamma, lgamma)
+#else
+libm_alias_float (__lgamma, lgamma)
+strong_alias (__lgammaf, __gammaf)
+weak_alias (__gammaf, gammaf)
+#endif
diff --git a/sysdeps/ieee754/flt-32/w_lgammaf_r.c b/sysdeps/ieee754/flt-32/w_lgammaf_r.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_lgammaf_r.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 024bc15fe5..95aeaacda6 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1328,6 +1328,8 @@ GLIBC_2.43 fmodf 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
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 9e803a74ac..4e203bf5a4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1294,6 +1294,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index dbbad3c8fb..3d587a92a6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1453,6 +1453,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index b819f6d8d0..635490118f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index b819f6d8d0..635490118f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 0091839d73..3e9cb9fd3e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 6fc86a9230..b76820ffad 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1335,6 +1335,8 @@ GLIBC_2.43 fmodf 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
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index b819f6d8d0..635490118f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 968c41a8bd..67156d74fa 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -992,6 +992,8 @@ GLIBC_2.43 fmodf 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 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sqrtf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 2f6ac7784d..86744483ed 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 2f6ac7784d..86744483ed 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 92eaa36b8d..24e19f31f7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 13f0831083..0e2c6c6464 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1294,6 +1294,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 80a5aaf8b8..1dfe3281c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1106,6 +1106,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 2a876cae98..bc167e6424 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1105,6 +1105,7 @@ GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
 GLIBC_2.43 jnf F
+GLIBC_2.43 lgammaf_r F
 GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 4cbec9212f..d123eeef26 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1099,6 +1099,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 55b3fa1906..ca9f3cd4b9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1483,6 +1483,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 61cc0a5ba1..f36d31952b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1397,6 +1397,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 1b4db358a4..355df9f489 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1397,6 +1397,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 32857b8b54..9b626d9580 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 32857b8b54..9b626d9580 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -959,6 +959,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 364f51b035..7ddd3c4b5e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1404,6 +1404,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 49e898d5eb..5cd12dfb19 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1294,6 +1294,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 73b55ae4dd..eb267367f1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1327,6 +1327,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index a138d3e070..d1fea5ad56 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1327,6 +1327,8 @@ 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
-- 
2.43.0



More information about the Libc-alpha mailing list