From 309a2d3d3543b89bc9fb1b86b02cb84e8b961780 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Wed, 13 Sep 2017 17:19:51 +0100 Subject: [PATCH] New symbol version for logf, log2f and powf without SVID compat This patch changes the logf, log2f and powf error handling semantics to only set errno accoring to POSIX rules. New symbol version is introduced at GLIBC_2.27. The old wrappers are kept for compat symbols. ia64 needed assembly change to have the new and compat versioned symbol map to the same function. All linux libm abilists are updated. 2017-09-19 Szabolcs Nagy * math/Versions (logf): New libm symbol at GLIBC_2.27. (log2f): Likewise. (powf): Likewise. * math/w_log2f.c: New file. * math/w_logf.c: New file. * math/w_powf.c: New file. * math/w_log2f_compat.c (__log2f_compat): For compat symbol only. * math/w_logf_compat.c (__logf_compat): Likewise. * math/w_powf_compat.c (__powf_compat): Likewise. * sysdeps/ia64/fpu/e_log2f.S: Add versioned symbols. * sysdeps/ia64/fpu/e_logf.S: Likewise. * sysdeps/ia64/fpu/e_powf.S: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. --- math/Versions | 2 +- math/w_log2f.c | 7 +++++++ math/w_log2f_compat.c | 6 +++--- math/w_logf.c | 7 +++++++ math/w_logf_compat.c | 6 +++--- math/w_powf.c | 7 +++++++ math/w_powf_compat.c | 6 +++--- sysdeps/ia64/fpu/e_log2f.S | 10 ++++++++-- sysdeps/ia64/fpu/e_logf.S | 6 ++++++ sysdeps/ia64/fpu/e_powf.S | 10 ++++++++-- sysdeps/unix/sysv/linux/aarch64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/alpha/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/arm/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/hppa/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/i386/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/ia64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/microblaze/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/nios2/libm.abilist | 3 +++ .../unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 3 +++ .../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 3 +++ .../unix/sysv/linux/powerpc/powerpc64/libm-le.abilist | 3 +++ sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/sh/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 3 +++ .../unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist | 3 +++ .../unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 3 +++ sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 3 +++ 36 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 math/w_log2f.c create mode 100644 math/w_logf.c create mode 100644 math/w_powf.c diff --git a/math/Versions b/math/Versions index 380f6a2a1a6..2fbdb2f266c 100644 --- a/math/Versions +++ b/math/Versions @@ -230,6 +230,6 @@ libm { fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl; } GLIBC_2.27 { - expf; exp2f; + expf; exp2f; logf; log2f; powf; } } diff --git a/math/w_log2f.c b/math/w_log2f.c new file mode 100644 index 00000000000..cda0c3a644b --- /dev/null +++ b/math/w_log2f.c @@ -0,0 +1,7 @@ +#include +#undef __USE_WRAPPER_TEMPLATE +#define __USE_WRAPPER_TEMPLATE 1 +#undef declare_mgen_alias +#define declare_mgen_alias(a, b) +#include +versioned_symbol (libm, __log2f, log2f, GLIBC_2_27); diff --git a/math/w_log2f_compat.c b/math/w_log2f_compat.c index 295c1620f7d..3caa310c51f 100644 --- a/math/w_log2f_compat.c +++ b/math/w_log2f_compat.c @@ -23,10 +23,10 @@ #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) /* wrapper log2f(x) */ float -__log2f (float x) +__log2f_compat (float x) { if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) { @@ -44,5 +44,5 @@ __log2f (float x) return __ieee754_log2f (x); } -libm_alias_float (__log2, log2) +compat_symbol (libm, __log2f_compat, log2f, GLIBC_2_1); #endif diff --git a/math/w_logf.c b/math/w_logf.c new file mode 100644 index 00000000000..d960e016d72 --- /dev/null +++ b/math/w_logf.c @@ -0,0 +1,7 @@ +#include +#undef __USE_WRAPPER_TEMPLATE +#define __USE_WRAPPER_TEMPLATE 1 +#undef declare_mgen_alias +#define declare_mgen_alias(a, b) +#include +versioned_symbol (libm, __logf, logf, GLIBC_2_27); diff --git a/math/w_logf_compat.c b/math/w_logf_compat.c index 7cdacdf9214..936b3a6e675 100644 --- a/math/w_logf_compat.c +++ b/math/w_logf_compat.c @@ -23,10 +23,10 @@ #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_27) /* wrapper logf(x) */ float -__logf (float x) +__logf_compat (float x) { if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_) { @@ -44,5 +44,5 @@ __logf (float x) return __ieee754_logf (x); } -libm_alias_float (__log, log) +compat_symbol (libm, __logf_compat, logf, GLIBC_2_0); #endif diff --git a/math/w_powf.c b/math/w_powf.c new file mode 100644 index 00000000000..a18348329e8 --- /dev/null +++ b/math/w_powf.c @@ -0,0 +1,7 @@ +#include +#undef __USE_WRAPPER_TEMPLATE +#define __USE_WRAPPER_TEMPLATE 1 +#undef declare_mgen_alias +#define declare_mgen_alias(a, b) +#include +versioned_symbol (libm, __powf, powf, GLIBC_2_27); diff --git a/math/w_powf_compat.c b/math/w_powf_compat.c index 39e818af7e9..7745639efe7 100644 --- a/math/w_powf_compat.c +++ b/math/w_powf_compat.c @@ -22,10 +22,10 @@ #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_27) /* wrapper powf */ float -__powf (float x, float y) +__powf_compat (float x, float y) { float z = __ieee754_powf (x, y); if (__glibc_unlikely (!isfinite (z))) @@ -60,5 +60,5 @@ __powf (float x, float y) return z; } -libm_alias_float (__pow, pow) +compat_symbol (libm, __powf_compat, powf, GLIBC_2_0); #endif diff --git a/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S index 2c3f18f3607..9b754d10432 100644 --- a/sysdeps/ia64/fpu/e_log2f.S +++ b/sysdeps/ia64/fpu/e_log2f.S @@ -252,7 +252,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_LIBM_ENTRY(log2f) +GLOBAL_LIBM_ENTRY(__log2f) { .mfi alloc r32=ar.pfs,1,4,4,0 @@ -491,7 +491,13 @@ SPECIAL_log2f: br.ret.sptk b0;; } -GLOBAL_LIBM_END(log2f) +GLOBAL_LIBM_END(__log2f) +#ifdef SHARED +.symver __log2f,log2f@@GLIBC_2.27 +.weak __log2f_compat +.set __log2f_compat,__log2f +.symver __log2f_compat,log2f@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ia64/fpu/e_logf.S b/sysdeps/ia64/fpu/e_logf.S index 2dda2186d0f..d5f54377933 100644 --- a/sysdeps/ia64/fpu/e_logf.S +++ b/sysdeps/ia64/fpu/e_logf.S @@ -1088,6 +1088,12 @@ logf_libm_err: nop.i 0 };; GLOBAL_IEEE754_END(logf) +#ifdef SHARED +.symver logf,logf@@GLIBC_2.27 +.weak __logf_compat +.set __logf_compat,__logf +.symver __logf_compat,logf@GLIBC_2.2 +#endif // Stack operations when calling error support. diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S index d61bc79e5e4..388391624ff 100644 --- a/sysdeps/ia64/fpu/e_powf.S +++ b/sysdeps/ia64/fpu/e_powf.S @@ -868,7 +868,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF LOCAL_OBJECT_END(pow_tbl2) .section .text -GLOBAL_LIBM_ENTRY(powf) +GLOBAL_LIBM_ENTRY(__powf) // Get exponent of x. Will be used to calculate K. { .mfi @@ -2002,7 +2002,13 @@ POW_OVER_UNDER_ERROR: } ;; -GLOBAL_LIBM_END(powf) +GLOBAL_LIBM_END(__powf) +#ifdef SHARED +.symver __powf,powf@@GLIBC_2.27 +.weak __powf_compat +.set __powf_compat,__powf +.symver __powf_compat,powf@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 10102eeaffe..3f0190ae030 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -463,3 +463,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index e09a115aa9b..78edc5e3d91 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -473,6 +473,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index 8095876449f..b3fd4a27b20 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -120,6 +120,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 19d40ef50d1..ffa61bf1b12 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -432,5 +432,8 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 791fba28e5c..1a7e6bf449e 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -614,4 +614,7 @@ GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 65a0fbe56a8..7e15735eae5 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -543,4 +543,7 @@ GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 8095876449f..b3fd4a27b20 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -120,6 +120,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 5e692dda7b5..aae61169f9f 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -474,4 +474,7 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 65f1d5b4516..0d3b4b1e908 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -431,3 +431,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index c32ea5b96a4..d32d58d4e42 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -433,6 +433,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F _gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 18b2aa2404b..f33ba0576b0 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -465,4 +465,7 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index e492a68e9d1..0fe34e98fa2 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -431,3 +431,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index ad8f0372f47..ed013deefda 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -476,6 +476,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 9c26b5b809c..6f2873dc80e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -475,6 +475,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 8e36699f288..723be46c20b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -608,3 +608,6 @@ GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index 9ca0c3ccfc9..f3aeac2e1ec 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -151,6 +151,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 8a79f0137fe..2b758e80fd0 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -463,6 +463,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index df81853618e..62c9bb57a85 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -461,6 +461,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index 6b6a42dc9c6..a57fbc0eac7 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -432,5 +432,8 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A 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 24d67d22e16..f8f10e59521 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -467,6 +467,9 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 2fdccc0de31..b5412c9b48b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -464,4 +464,7 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist index 98bc348f916..b711e87026d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist @@ -432,3 +432,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist index 98bc348f916..b711e87026d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist @@ -432,3 +432,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist index 98bc348f916..b711e87026d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist @@ -432,3 +432,6 @@ GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index e6fd3fe3dfa..201c2ab1b13 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -603,4 +603,7 @@ GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index afa7b986976..10e389a96aa 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -602,3 +602,6 @@ GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 exp2f F GLIBC_2.27 expf F +GLIBC_2.27 log2f F +GLIBC_2.27 logf F +GLIBC_2.27 powf F -- 2.47.2