[PATCH v4 09/21] math: Remove the SVID error handling from lgammaf/lgammaf_r
Adhemerval Zanella
adhemerval.zanella@linaro.org
Wed Oct 8 13:55:09 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 | 25 ++++++++++++++++---
sysdeps/ieee754/flt-32/math_config.h | 1 +
sysdeps/ieee754/flt-32/math_errf.c | 6 +++++
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 | 2 ++
.../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 ++
35 files changed, 114 insertions(+), 17 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 247c98c2d78..f7bdec76ec4 100644
--- a/math/Versions
+++ b/math/Versions
@@ -688,6 +688,6 @@ libm {
}
GLIBC_2.43 {
# No SVID compatible error handling.
- remainderf; remainder; log10f;
+ remainderf; remainder; log10f; lgammaf; lgammaf_r;
}
}
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index bf4acef5591..795e97d5a05 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 5fc402260c2..3a942dbe04f 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 22b7f8fc530..8d475d3a6ce 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 be01b6daacf..524f9901d3d 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 75ec25fb9e1..5674670e782 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
{
@@ -168,7 +170,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)
{
@@ -213,7 +215,13 @@ __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);
+ {
+ float r = math_narrow_eval (0x1p127f * 0x1p127f);
+ if (x > 0x1.895f1cp+121f || (x == 0x1.895f1cp+121f &&
+ x * 5.0f >= 0x1.ebb6e4p+123))
+ return __math_oflowf_value (r);
+ return r;
+ }
/* |x|>=2**23, must be -integer */
if (__glibc_unlikely (x < 0.0f && ax > 0x1p+23))
return ax / 0.0f;
@@ -363,4 +371,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/math_config.h b/sysdeps/ieee754/flt-32/math_config.h
index 6bb5c3324cc..3379a550a9d 100644
--- a/sysdeps/ieee754/flt-32/math_config.h
+++ b/sysdeps/ieee754/flt-32/math_config.h
@@ -217,6 +217,7 @@ make_float (uint32_t x, int ep, uint32_t s)
}
attribute_hidden float __math_oflowf (uint32_t);
+attribute_hidden float __math_oflowf_value (float x);
attribute_hidden float __math_uflowf (uint32_t);
attribute_hidden float __math_may_uflowf (uint32_t);
attribute_hidden float __math_divzerof (uint32_t);
diff --git a/sysdeps/ieee754/flt-32/math_errf.c b/sysdeps/ieee754/flt-32/math_errf.c
index 244e38a4ce1..35e067c7e38 100644
--- a/sysdeps/ieee754/flt-32/math_errf.c
+++ b/sysdeps/ieee754/flt-32/math_errf.c
@@ -84,6 +84,12 @@ __math_oflowf (uint32_t sign)
return xflowf (sign, 0x1p97f);
}
+attribute_hidden float
+__math_oflowf_value (float x)
+{
+ return with_errnof (x, ERANGE);
+}
+
attribute_hidden float
__math_divzerof (uint32_t sign)
{
diff --git a/sysdeps/ieee754/flt-32/w_lgammaf.c b/sysdeps/ieee754/flt-32/w_lgammaf.c
new file mode 100644
index 00000000000..5fc9b468660
--- /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 00000000000..1cc89317007
--- /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 2ea008c3fdb..716977af427 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1319,6 +1319,8 @@ GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl F
GLIBC_2.43 fmod F
GLIBC_2.43 fmodf 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 06c32cc2bdd..dd6c39e5194 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1285,6 +1285,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 777bdead893..81115ed627a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1444,6 +1444,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 27f6eec41c1..d0a72ba9948 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 27f6eec41c1..d0a72ba9948 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 7d4757990eb..ec84ea68de4 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 f2471abc7b9..2a92b2a4789 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1326,6 +1326,8 @@ GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl F
GLIBC_2.43 fmod F
GLIBC_2.43 fmodf 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 27f6eec41c1..d0a72ba9948 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 b81218aad75..40789290be4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -988,5 +988,7 @@ GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl F
GLIBC_2.43 fmod F
GLIBC_2.43 fmodf F
+GLIBC_2.43 lgammaf F
+GLIBC_2.43 lgammaf_r F
GLIBC_2.43 remainder F
GLIBC_2.43 remainderf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index f0e11715f8e..669c77a5a82 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 f0e11715f8e..669c77a5a82 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 4338f392b42..c05cc9a9954 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 21295d0738c..d13de7e1e38 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1285,6 +1285,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 0a1a68b1496..ea35afeca4d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1097,6 +1097,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 987fef327ff..19f32d109b9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1096,6 +1096,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 9cb132b5fb2..452ced2b519 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1090,6 +1090,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 539c6d2b699..bf969f43652 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1474,6 +1474,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 88887495418..25873e2766a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1388,6 +1388,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 1c98e6361d8..1592c6ee9ad 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1388,6 +1388,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 bb7f2f78f27..0d7c60eb49d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 bb7f2f78f27..0d7c60eb49d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -950,6 +950,8 @@ GLIBC_2.42 rsqrtf32 F
GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtl 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 b020c986732..96f47360bf6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1395,6 +1395,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 5426949358b..f138ce5c4b5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1285,6 +1285,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 34a4880b313..a6f79de53a5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1318,6 +1318,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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 169e6d2db11..e17bfc5822b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1318,6 +1318,8 @@ GLIBC_2.42 rsqrtf32x F
GLIBC_2.42 rsqrtf64 F
GLIBC_2.42 rsqrtf64x F
GLIBC_2.42 rsqrtl 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