Message ID | 20200409195945.10393-4-adhemerval.zanella@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/5] benchtests: Add exp10f benchmark | expand |
Ping. On 09/04/2020 16:59, Adhemerval Zanella wrote: > This patch changes the exp10f error handling semantics to only set > errno according to POSIX rules. New symbol version is introduced at > GLIBC_2.32. The old wrappers are kept for compat symbols. > > There are some outliers that need special handling: > > - ia64 provides an optimized implementation of exp10f that uses ia64 > specific routines to set SVID compatibility. The new symbol version > is aliased to the exp10f one. > > - m68k also provides an optimized implementation, and the new version > uses it instead of the sysdeps/ieee754/flt32 one. > > - riscv and csky uses the generic template implementation that > does not provide SVID support. For both cases a new exp10f > version is not added, but rather the symbols version of the > generic sysdeps/ieee754/flt32 is adjusted instead. > > Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, > powerpc64le-linux-gnu. > --- > math/Versions | 3 +++ > math/w_exp10f.c | 1 + > math/w_exp10f_compat.c | 8 ++++---- > sysdeps/ia64/fpu/e_exp10f.S | 12 +++++++++--- > sysdeps/ieee754/flt-32/e_exp10f.c | 16 +++++++++++++++- > sysdeps/m68k/m680x0/fpu/e_exp10f.c | 5 +++++ > 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 + > sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 + > .../unix/sysv/linux/m68k/coldfire/libm.abilist | 1 + > sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 1 + > .../unix/sysv/linux/microblaze/be/libm.abilist | 1 + > .../unix/sysv/linux/microblaze/le/libm.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 1 + > sysdeps/unix/sysv/linux/nios2/libm.abilist | 1 + > .../linux/powerpc/powerpc32/fpu/libm.abilist | 1 + > .../sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 + > .../sysv/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 + > .../unix/sysv/linux/sparc/sparc32/libm.abilist | 1 + > .../unix/sysv/linux/sparc/sparc64/libm.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 + > 32 files changed, 63 insertions(+), 8 deletions(-) > create mode 100644 math/w_exp10f.c > > diff --git a/math/Versions b/math/Versions > index d892c5f911..5b3c321490 100644 > --- a/math/Versions > +++ b/math/Versions > @@ -590,4 +590,7 @@ libm { > totalorderf128; > totalordermagf128; > } > + GLIBC_2.32 { > + exp10f; > + } > } > diff --git a/math/w_exp10f.c b/math/w_exp10f.c > new file mode 100644 > index 0000000000..6e25b021ab > --- /dev/null > +++ b/math/w_exp10f.c > @@ -0,0 +1 @@ > +/* Empty. */ > diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c > index 2ab0940601..ea8f947193 100644 > --- a/math/w_exp10f_compat.c > +++ b/math/w_exp10f_compat.c > @@ -28,9 +28,9 @@ > > #if LIBM_SVID_COMPAT > float > -__exp10f (float x) > +__exp10f_compat (float x) > { > - float z = __ieee754_exp10f (x); > + float z = __exp10f (x); > if (__builtin_expect (!isfinite (z) || z == 0, 0) > && isfinite (x) && _LIB_VERSION != _IEEE_) > /* exp10f overflow (146) if x > 0, underflow (147) if x < 0. */ > @@ -38,9 +38,9 @@ __exp10f (float x) > > return z; > } > -libm_alias_float (__exp10, exp10) > +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1); > # if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) > -strong_alias (__exp10f, __pow10f) > +strong_alias (__exp10f_compat, __pow10f) > compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1); > # endif > #endif > diff --git a/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S > index 67218c737f..e82394b725 100644 > --- a/sysdeps/ia64/fpu/e_exp10f.S > +++ b/sysdeps/ia64/fpu/e_exp10f.S > @@ -218,7 +218,7 @@ LOCAL_OBJECT_END(T_table) > > > .section .text > -GLOBAL_IEEE754_ENTRY(exp10f) > +GLOBAL_IEEE754_ENTRY(__exp10f) > > > {.mfi > @@ -487,11 +487,17 @@ OUT_RANGE_exp10: > } > ;; > > -GLOBAL_IEEE754_END(exp10f) > +GLOBAL_IEEE754_END(__exp10f) > libm_alias_float_other (__exp10, exp10) > #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) > -compat_symbol (libm, exp10f, pow10f, GLIBC_2_2) > +strong_alias (__exp10f, __pow10f_compat) > +compat_symbol (libm, __pow10f_compat, pow10f, GLIBC_2_2) > #endif > +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_32) > +strong_alias (__exp10f, __exp10f_compat) > +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1) > +#endif > +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32) > > > LOCAL_LIBM_ENTRY(__libm_error_region) > diff --git a/sysdeps/ieee754/flt-32/e_exp10f.c b/sysdeps/ieee754/flt-32/e_exp10f.c > index 034a9e364a..f51c499b83 100644 > --- a/sysdeps/ieee754/flt-32/e_exp10f.c > +++ b/sysdeps/ieee754/flt-32/e_exp10f.c > @@ -21,6 +21,8 @@ > #include <stdint.h> > #include <libm-alias-finite.h> > #include <libm-alias-float.h> > +#include <shlib-compat.h> > +#include <math-svid-compat.h> > #include "math_config.h" > > /* > @@ -139,7 +141,7 @@ top13 (float x) > } > > float > -__ieee754_exp10f (float x) > +__exp10f (float x) > { > uint32_t abstop; > uint64_t ki, t; > @@ -195,4 +197,16 @@ __ieee754_exp10f (float x) > y = y * s; > return (float) y; > } > +#ifndef __exp10f > +strong_alias (__exp10f, __ieee754_exp10f) > libm_alias_finite (__ieee754_exp10f, __exp10f) > +/* For architectures that already provided exp10f without SVID support, there > + is no need to add a new version. */ > +#if !LIBM_SVID_COMPAT > +# define EXP10F_VERSION GLIBC_2_26 > +#else > +# define EXP10F_VERSION GLIBC_2_32 > +#endif > +versioned_symbol (libm, __exp10f, exp10f, EXP10F_VERSION); > +libm_alias_float_other (__exp10, exp10) > +#endif > diff --git a/sysdeps/m68k/m680x0/fpu/e_exp10f.c b/sysdeps/m68k/m680x0/fpu/e_exp10f.c > index f58fddd8a6..0d03f00e06 100644 > --- a/sysdeps/m68k/m680x0/fpu/e_exp10f.c > +++ b/sysdeps/m68k/m680x0/fpu/e_exp10f.c > @@ -1,3 +1,8 @@ > +#include <libm-alias-float.h> > #define FUNC __ieee754_exp10f > #define FUNC_FINITE __exp10f > #include <e_acosf.c> > +strong_alias (__ieee754_exp10f, __exp10f) > +libm_alias_finite (__ieee754_exp10f, __exp10f) > +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32); > +libm_alias_float_other (__ieee754_exp10, exp10) > diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist > index 1a41ae589f..a19a69ce6a 100644 > --- a/sysdeps/mach/hurd/i386/libm.abilist > +++ b/sysdeps/mach/hurd/i386/libm.abilist > @@ -1089,3 +1089,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist > index 62e1fee467..5362c24e4c 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist > @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist > index 08ac3905a0..650d10ec8e 100644 > --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist > @@ -1110,6 +1110,7 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist > index dd5931f288..6914b58d76 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist > @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 _LIB_VERSION D 0x4 > GLIBC_2.4 __clog10 F > GLIBC_2.4 __clog10f F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist > index dd5931f288..6914b58d76 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist > @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 _LIB_VERSION D 0x4 > GLIBC_2.4 __clog10 F > GLIBC_2.4 __clog10f F > diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist > index e7686d71cf..6ac2295b05 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist > @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 exp2l F > diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist > index e67f9d7d27..0ab740dd97 100644 > --- a/sysdeps/unix/sysv/linux/i386/libm.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist > @@ -1096,3 +1096,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist > index 0cf637f248..c8e8fd7142 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist > @@ -1026,3 +1026,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist > index dd5931f288..6914b58d76 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist > @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 _LIB_VERSION D 0x4 > GLIBC_2.4 __clog10 F > GLIBC_2.4 __clog10f F > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist > index f0b17ae485..c60fdc6298 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist > @@ -821,3 +821,4 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist > index 8dedc9a8a6..adea0fe4c0 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist > @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist > index 8dedc9a8a6..adea0fe4c0 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist > @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist > index a221d7be09..272969a26f 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist > @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 exp2l F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist > index 823f87277e..dd0dc6689c 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist > @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist > index 64ac932c6a..4941deefa6 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist > @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist > index 3fab31ff9c..fc2d142bd5 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist > @@ -827,6 +827,7 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist > index 1369ab510c..972c9bc597 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist > @@ -820,6 +820,7 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > index d479a64fca..1ce52ea277 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist > @@ -1097,3 +1097,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist > index cd6be8e584..321810d5a4 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist > @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist > index 5291424feb..451a860a83 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist > @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist > index de0f1c57c3..a5fb514eae 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist > @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 exp2l F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist > index de0f1c57c3..a5fb514eae 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist > @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F > GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 exp2l F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist > index fc52ebf64e..d81e8a726b 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist > @@ -1061,6 +1061,7 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > GLIBC_2.4 __clog10l F > GLIBC_2.4 __finitel F > GLIBC_2.4 __fpclassifyl F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist > index 5288a28533..3d12376d33 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist > @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > index d620e465d2..89c4ac484d 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist > @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > index 44b0eddc50..d3c9cec71a 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist > @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F > GLIBC_2.31 totalordermagf64 F > GLIBC_2.31 totalordermagf64x F > GLIBC_2.31 totalordermagl F > +GLIBC_2.32 exp10f F >
Ping (x2). On 29/04/2020 14:11, Adhemerval Zanella wrote: > Ping. > > On 09/04/2020 16:59, Adhemerval Zanella wrote: >> This patch changes the exp10f error handling semantics to only set >> errno according to POSIX rules. New symbol version is introduced at >> GLIBC_2.32. The old wrappers are kept for compat symbols. >> >> There are some outliers that need special handling: >> >> - ia64 provides an optimized implementation of exp10f that uses ia64 >> specific routines to set SVID compatibility. The new symbol version >> is aliased to the exp10f one. >> >> - m68k also provides an optimized implementation, and the new version >> uses it instead of the sysdeps/ieee754/flt32 one. >> >> - riscv and csky uses the generic template implementation that >> does not provide SVID support. For both cases a new exp10f >> version is not added, but rather the symbols version of the >> generic sysdeps/ieee754/flt32 is adjusted instead. >> >> Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, >> powerpc64le-linux-gnu. >> --- >> math/Versions | 3 +++ >> math/w_exp10f.c | 1 + >> math/w_exp10f_compat.c | 8 ++++---- >> sysdeps/ia64/fpu/e_exp10f.S | 12 +++++++++--- >> sysdeps/ieee754/flt-32/e_exp10f.c | 16 +++++++++++++++- >> sysdeps/m68k/m680x0/fpu/e_exp10f.c | 5 +++++ >> 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 + >> sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 + >> .../unix/sysv/linux/m68k/coldfire/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 1 + >> .../unix/sysv/linux/microblaze/be/libm.abilist | 1 + >> .../unix/sysv/linux/microblaze/le/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/nios2/libm.abilist | 1 + >> .../linux/powerpc/powerpc32/fpu/libm.abilist | 1 + >> .../sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 + >> .../sysv/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 + >> .../unix/sysv/linux/sparc/sparc32/libm.abilist | 1 + >> .../unix/sysv/linux/sparc/sparc64/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 1 + >> sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 1 + >> 32 files changed, 63 insertions(+), 8 deletions(-) >> create mode 100644 math/w_exp10f.c >> >> diff --git a/math/Versions b/math/Versions >> index d892c5f911..5b3c321490 100644 >> --- a/math/Versions >> +++ b/math/Versions >> @@ -590,4 +590,7 @@ libm { >> totalorderf128; >> totalordermagf128; >> } >> + GLIBC_2.32 { >> + exp10f; >> + } >> } >> diff --git a/math/w_exp10f.c b/math/w_exp10f.c >> new file mode 100644 >> index 0000000000..6e25b021ab >> --- /dev/null >> +++ b/math/w_exp10f.c >> @@ -0,0 +1 @@ >> +/* Empty. */ >> diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c >> index 2ab0940601..ea8f947193 100644 >> --- a/math/w_exp10f_compat.c >> +++ b/math/w_exp10f_compat.c >> @@ -28,9 +28,9 @@ >> >> #if LIBM_SVID_COMPAT >> float >> -__exp10f (float x) >> +__exp10f_compat (float x) >> { >> - float z = __ieee754_exp10f (x); >> + float z = __exp10f (x); >> if (__builtin_expect (!isfinite (z) || z == 0, 0) >> && isfinite (x) && _LIB_VERSION != _IEEE_) >> /* exp10f overflow (146) if x > 0, underflow (147) if x < 0. */ >> @@ -38,9 +38,9 @@ __exp10f (float x) >> >> return z; >> } >> -libm_alias_float (__exp10, exp10) >> +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1); >> # if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) >> -strong_alias (__exp10f, __pow10f) >> +strong_alias (__exp10f_compat, __pow10f) >> compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1); >> # endif >> #endif >> diff --git a/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S >> index 67218c737f..e82394b725 100644 >> --- a/sysdeps/ia64/fpu/e_exp10f.S >> +++ b/sysdeps/ia64/fpu/e_exp10f.S >> @@ -218,7 +218,7 @@ LOCAL_OBJECT_END(T_table) >> >> >> .section .text >> -GLOBAL_IEEE754_ENTRY(exp10f) >> +GLOBAL_IEEE754_ENTRY(__exp10f) >> >> >> {.mfi >> @@ -487,11 +487,17 @@ OUT_RANGE_exp10: >> } >> ;; >> >> -GLOBAL_IEEE754_END(exp10f) >> +GLOBAL_IEEE754_END(__exp10f) >> libm_alias_float_other (__exp10, exp10) >> #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) >> -compat_symbol (libm, exp10f, pow10f, GLIBC_2_2) >> +strong_alias (__exp10f, __pow10f_compat) >> +compat_symbol (libm, __pow10f_compat, pow10f, GLIBC_2_2) >> #endif >> +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_32) >> +strong_alias (__exp10f, __exp10f_compat) >> +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1) >> +#endif >> +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32) >> >> >> LOCAL_LIBM_ENTRY(__libm_error_region) >> diff --git a/sysdeps/ieee754/flt-32/e_exp10f.c b/sysdeps/ieee754/flt-32/e_exp10f.c >> index 034a9e364a..f51c499b83 100644 >> --- a/sysdeps/ieee754/flt-32/e_exp10f.c >> +++ b/sysdeps/ieee754/flt-32/e_exp10f.c >> @@ -21,6 +21,8 @@ >> #include <stdint.h> >> #include <libm-alias-finite.h> >> #include <libm-alias-float.h> >> +#include <shlib-compat.h> >> +#include <math-svid-compat.h> >> #include "math_config.h" >> >> /* >> @@ -139,7 +141,7 @@ top13 (float x) >> } >> >> float >> -__ieee754_exp10f (float x) >> +__exp10f (float x) >> { >> uint32_t abstop; >> uint64_t ki, t; >> @@ -195,4 +197,16 @@ __ieee754_exp10f (float x) >> y = y * s; >> return (float) y; >> } >> +#ifndef __exp10f >> +strong_alias (__exp10f, __ieee754_exp10f) >> libm_alias_finite (__ieee754_exp10f, __exp10f) >> +/* For architectures that already provided exp10f without SVID support, there >> + is no need to add a new version. */ >> +#if !LIBM_SVID_COMPAT >> +# define EXP10F_VERSION GLIBC_2_26 >> +#else >> +# define EXP10F_VERSION GLIBC_2_32 >> +#endif >> +versioned_symbol (libm, __exp10f, exp10f, EXP10F_VERSION); >> +libm_alias_float_other (__exp10, exp10) >> +#endif >> diff --git a/sysdeps/m68k/m680x0/fpu/e_exp10f.c b/sysdeps/m68k/m680x0/fpu/e_exp10f.c >> index f58fddd8a6..0d03f00e06 100644 >> --- a/sysdeps/m68k/m680x0/fpu/e_exp10f.c >> +++ b/sysdeps/m68k/m680x0/fpu/e_exp10f.c >> @@ -1,3 +1,8 @@ >> +#include <libm-alias-float.h> >> #define FUNC __ieee754_exp10f >> #define FUNC_FINITE __exp10f >> #include <e_acosf.c> >> +strong_alias (__ieee754_exp10f, __exp10f) >> +libm_alias_finite (__ieee754_exp10f, __exp10f) >> +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32); >> +libm_alias_float_other (__ieee754_exp10, exp10) >> diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist >> index 1a41ae589f..a19a69ce6a 100644 >> --- a/sysdeps/mach/hurd/i386/libm.abilist >> +++ b/sysdeps/mach/hurd/i386/libm.abilist >> @@ -1089,3 +1089,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist >> index 62e1fee467..5362c24e4c 100644 >> --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist >> @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist >> index 08ac3905a0..650d10ec8e 100644 >> --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist >> @@ -1110,6 +1110,7 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist >> index dd5931f288..6914b58d76 100644 >> --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist >> @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 _LIB_VERSION D 0x4 >> GLIBC_2.4 __clog10 F >> GLIBC_2.4 __clog10f F >> diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist >> index dd5931f288..6914b58d76 100644 >> --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist >> @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 _LIB_VERSION D 0x4 >> GLIBC_2.4 __clog10 F >> GLIBC_2.4 __clog10f F >> diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist >> index e7686d71cf..6ac2295b05 100644 >> --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist >> @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 exp2l F >> diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist >> index e67f9d7d27..0ab740dd97 100644 >> --- a/sysdeps/unix/sysv/linux/i386/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist >> @@ -1096,3 +1096,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist >> index 0cf637f248..c8e8fd7142 100644 >> --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist >> @@ -1026,3 +1026,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist >> index dd5931f288..6914b58d76 100644 >> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist >> @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 _LIB_VERSION D 0x4 >> GLIBC_2.4 __clog10 F >> GLIBC_2.4 __clog10f F >> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist >> index f0b17ae485..c60fdc6298 100644 >> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist >> @@ -821,3 +821,4 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist >> index 8dedc9a8a6..adea0fe4c0 100644 >> --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist >> @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist >> index 8dedc9a8a6..adea0fe4c0 100644 >> --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist >> @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist >> index a221d7be09..272969a26f 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist >> @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 exp2l F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist >> index 823f87277e..dd0dc6689c 100644 >> --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist >> @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist >> index 64ac932c6a..4941deefa6 100644 >> --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist >> @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist >> index 3fab31ff9c..fc2d142bd5 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist >> @@ -827,6 +827,7 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist >> index 1369ab510c..972c9bc597 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist >> @@ -820,6 +820,7 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist >> index d479a64fca..1ce52ea277 100644 >> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist >> @@ -1097,3 +1097,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist >> index cd6be8e584..321810d5a4 100644 >> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist >> @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist >> index 5291424feb..451a860a83 100644 >> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist >> @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist >> index de0f1c57c3..a5fb514eae 100644 >> --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist >> @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 exp2l F >> diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist >> index de0f1c57c3..a5fb514eae 100644 >> --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist >> @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F >> GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 exp2l F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist >> index fc52ebf64e..d81e8a726b 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist >> @@ -1061,6 +1061,7 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> GLIBC_2.4 __clog10l F >> GLIBC_2.4 __finitel F >> GLIBC_2.4 __fpclassifyl F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist >> index 5288a28533..3d12376d33 100644 >> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist >> @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist >> index d620e465d2..89c4ac484d 100644 >> --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist >> @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist >> index 44b0eddc50..d3c9cec71a 100644 >> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist >> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist >> @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F >> GLIBC_2.31 totalordermagf64 F >> GLIBC_2.31 totalordermagf64x F >> GLIBC_2.31 totalordermagl F >> +GLIBC_2.32 exp10f F >>
diff --git a/math/Versions b/math/Versions index d892c5f911..5b3c321490 100644 --- a/math/Versions +++ b/math/Versions @@ -590,4 +590,7 @@ libm { totalorderf128; totalordermagf128; } + GLIBC_2.32 { + exp10f; + } } diff --git a/math/w_exp10f.c b/math/w_exp10f.c new file mode 100644 index 0000000000..6e25b021ab --- /dev/null +++ b/math/w_exp10f.c @@ -0,0 +1 @@ +/* Empty. */ diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c index 2ab0940601..ea8f947193 100644 --- a/math/w_exp10f_compat.c +++ b/math/w_exp10f_compat.c @@ -28,9 +28,9 @@ #if LIBM_SVID_COMPAT float -__exp10f (float x) +__exp10f_compat (float x) { - float z = __ieee754_exp10f (x); + float z = __exp10f (x); if (__builtin_expect (!isfinite (z) || z == 0, 0) && isfinite (x) && _LIB_VERSION != _IEEE_) /* exp10f overflow (146) if x > 0, underflow (147) if x < 0. */ @@ -38,9 +38,9 @@ __exp10f (float x) return z; } -libm_alias_float (__exp10, exp10) +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1); # if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) -strong_alias (__exp10f, __pow10f) +strong_alias (__exp10f_compat, __pow10f) compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1); # endif #endif diff --git a/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S index 67218c737f..e82394b725 100644 --- a/sysdeps/ia64/fpu/e_exp10f.S +++ b/sysdeps/ia64/fpu/e_exp10f.S @@ -218,7 +218,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_IEEE754_ENTRY(exp10f) +GLOBAL_IEEE754_ENTRY(__exp10f) {.mfi @@ -487,11 +487,17 @@ OUT_RANGE_exp10: } ;; -GLOBAL_IEEE754_END(exp10f) +GLOBAL_IEEE754_END(__exp10f) libm_alias_float_other (__exp10, exp10) #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) -compat_symbol (libm, exp10f, pow10f, GLIBC_2_2) +strong_alias (__exp10f, __pow10f_compat) +compat_symbol (libm, __pow10f_compat, pow10f, GLIBC_2_2) #endif +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_32) +strong_alias (__exp10f, __exp10f_compat) +compat_symbol (libm, __exp10f_compat, exp10f, GLIBC_2_1) +#endif +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32) LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ieee754/flt-32/e_exp10f.c b/sysdeps/ieee754/flt-32/e_exp10f.c index 034a9e364a..f51c499b83 100644 --- a/sysdeps/ieee754/flt-32/e_exp10f.c +++ b/sysdeps/ieee754/flt-32/e_exp10f.c @@ -21,6 +21,8 @@ #include <stdint.h> #include <libm-alias-finite.h> #include <libm-alias-float.h> +#include <shlib-compat.h> +#include <math-svid-compat.h> #include "math_config.h" /* @@ -139,7 +141,7 @@ top13 (float x) } float -__ieee754_exp10f (float x) +__exp10f (float x) { uint32_t abstop; uint64_t ki, t; @@ -195,4 +197,16 @@ __ieee754_exp10f (float x) y = y * s; return (float) y; } +#ifndef __exp10f +strong_alias (__exp10f, __ieee754_exp10f) libm_alias_finite (__ieee754_exp10f, __exp10f) +/* For architectures that already provided exp10f without SVID support, there + is no need to add a new version. */ +#if !LIBM_SVID_COMPAT +# define EXP10F_VERSION GLIBC_2_26 +#else +# define EXP10F_VERSION GLIBC_2_32 +#endif +versioned_symbol (libm, __exp10f, exp10f, EXP10F_VERSION); +libm_alias_float_other (__exp10, exp10) +#endif diff --git a/sysdeps/m68k/m680x0/fpu/e_exp10f.c b/sysdeps/m68k/m680x0/fpu/e_exp10f.c index f58fddd8a6..0d03f00e06 100644 --- a/sysdeps/m68k/m680x0/fpu/e_exp10f.c +++ b/sysdeps/m68k/m680x0/fpu/e_exp10f.c @@ -1,3 +1,8 @@ +#include <libm-alias-float.h> #define FUNC __ieee754_exp10f #define FUNC_FINITE __exp10f #include <e_acosf.c> +strong_alias (__ieee754_exp10f, __exp10f) +libm_alias_finite (__ieee754_exp10f, __exp10f) +versioned_symbol (libm, __exp10f, exp10f, GLIBC_2_32); +libm_alias_float_other (__ieee754_exp10, exp10) diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 1a41ae589f..a19a69ce6a 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1089,3 +1089,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 62e1fee467..5362c24e4c 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 08ac3905a0..650d10ec8e 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1110,6 +1110,7 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index dd5931f288..6914b58d76 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index dd5931f288..6914b58d76 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index e7686d71cf..6ac2295b05 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index e67f9d7d27..0ab740dd97 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1096,3 +1096,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 0cf637f248..c8e8fd7142 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1026,3 +1026,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index dd5931f288..6914b58d76 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -470,6 +470,7 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index f0b17ae485..c60fdc6298 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -821,3 +821,4 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index 8dedc9a8a6..adea0fe4c0 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index 8dedc9a8a6..adea0fe4c0 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index a221d7be09..272969a26f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 823f87277e..dd0dc6689c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 64ac932c6a..4941deefa6 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -782,3 +782,4 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 3fab31ff9c..fc2d142bd5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -827,6 +827,7 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 1369ab510c..972c9bc597 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -820,6 +820,7 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index d479a64fca..1ce52ea277 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1097,3 +1097,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index cd6be8e584..321810d5a4 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 5291424feb..451a860a83 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1054,6 +1054,7 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index de0f1c57c3..a5fb514eae 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index de0f1c57c3..a5fb514eae 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -781,4 +781,5 @@ GLIBC_2.31 totalordermagf32 F GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index fc52ebf64e..d81e8a726b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1061,6 +1061,7 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 5288a28533..3d12376d33 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1053,3 +1053,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index d620e465d2..89c4ac484d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 44b0eddc50..d3c9cec71a 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1087,3 +1087,4 @@ GLIBC_2.31 totalordermagf32x F GLIBC_2.31 totalordermagf64 F GLIBC_2.31 totalordermagf64x F GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F