From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by sourceware.org (Postfix) with ESMTPS id B228838930CB for ; Wed, 29 Apr 2020 17:11:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B228838930CB Received: by mail-qt1-x842.google.com with SMTP id w29so2509049qtv.3 for ; Wed, 29 Apr 2020 10:11:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:references:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=qkmIYv64ihBjnA+3xGqe8TaYI6WJe0SPY0T1Of6x8sE=; b=YN8C8/TKXkRtJzZaRPF5K5OOaiF7+qZjT6qgsUCw3AMkDBqn0jbdlWBHNvw55gxn0T KOtGZZGr1bQeqgT04wl/M7AIWgPQf0zcwMFQXxT0P2jae8KHiDUk3PIiWUvo78A65lsH SBx6M+L6ta6ca/eyio82Cb5p+Zb6ZZbD82sYibzqA2CcCZx2wlFz+3jV3Sd9MJPruF5A G80hdJ0AEPfV3mbhmfutfx0kb6guvCTB3G7tmZUfeRkLQhU7+NvltGbaOTi2TGZjjNrV dr4lx3d89wj4GHyRuZ7vhGnUyKIPcQunGuz4QxJvcgD8jpsVV4ETJ0qFxqEyXImO+MgI nhiQ== X-Gm-Message-State: AGi0PuaIfWQ18OUsyCGKF3LcgqP8MKC2Z+4mbsmLbdwwy20TyOFV5gMk s8Kam5KUm+Y3p60GYpScoRMeyWbqw+s1BA== X-Google-Smtp-Source: APiQypK2AJkgDLD6ZIGMf1d1RXDdgIYs8OWXErY7nxwfyr7mp0L99IznryhJUm6qvdLY4Cv2u1wT5w== X-Received: by 2002:ac8:690c:: with SMTP id e12mr35482140qtr.357.1588180294896; Wed, 29 Apr 2020 10:11:34 -0700 (PDT) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id y72sm16003963qkb.86.2020.04.29.10.11.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Apr 2020 10:11:34 -0700 (PDT) Subject: Re: [PATCH 4/5] New exp10f version without SVID compat wrapper From: Adhemerval Zanella To: libc-alpha@sourceware.org References: <20200409195945.10393-1-adhemerval.zanella@linaro.org> <20200409195945.10393-4-adhemerval.zanella@linaro.org> Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Wed, 29 Apr 2020 14:11:32 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200409195945.10393-4-adhemerval.zanella@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-24.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Apr 2020 17:11:38 -0000 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 > #include > #include > +#include > +#include > #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 > #define FUNC __ieee754_exp10f > #define FUNC_FINITE __exp10f > #include > +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 >