* [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions.
@ 2025-01-30 16:28 Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark Adhemerval Zanella
` (9 more replies)
0 siblings, 10 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:28 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
This is most mechanical changes and as from previous similar work,
it requires new symbol versions.
Changes from v1:
* Update symbol versions to 2.42.
Adhemerval Zanella (10):
benchtests: Add lgammaf_r benchmark
math: Remove the error handling wrapper from log10f
math: Remove the error handling wrapper from lgammaf/lgammaf_r
math: Remove the error handling wrapper from acosf
math: Remove the error handling wrapper from asinf
math: Remove the error handling wrapper from acoshf
math: Remove the error handling wrapper from atan2f
math: Remove the error handling wrapper from atanhf
math: Remove the error handling wrapper from coshf
math: Remove the error handling wrapper from sinhf
benchtests/Makefile | 1 +
benchtests/lgammaf_r-inputs | 1005 +++++++++++++++++
math/Versions | 12 +
math/lgamma-compat.h | 15 +-
math/w_acosf.c | 8 +
math/w_acosf_compat.c | 10 +-
math/w_acoshf.c | 8 +
math/w_acoshf_compat.c | 6 +-
math/w_asinf.c | 8 +
math/w_asinf_compat.c | 10 +-
math/w_atan2f.c | 8 +
math/w_atan2f_compat.c | 11 +-
math/w_atanhf.c | 8 +
math/w_atanhf_compat.c | 11 +-
math/w_coshf.c | 8 +
math/w_coshf_compat.c | 12 +-
math/w_lgammaf_compat2.c | 2 +-
math/w_lgammaf_main.c | 7 +-
math/w_log10f.c | 8 +
math/w_log10f_compat.c | 10 +-
math/w_sinhf.c | 8 +
math/w_sinhf_compat.c | 11 +-
sysdeps/ieee754/flt-32/e_acosf.c | 11 +-
sysdeps/ieee754/flt-32/e_acoshf.c | 11 +-
sysdeps/ieee754/flt-32/e_asinf.c | 11 +-
sysdeps/ieee754/flt-32/e_atan2f.c | 19 +-
sysdeps/ieee754/flt-32/e_atanhf.c | 11 +-
sysdeps/ieee754/flt-32/e_coshf.c | 11 +-
sysdeps/ieee754/flt-32/e_lgammaf_r.c | 12 +-
sysdeps/ieee754/flt-32/e_log10f.c | 11 +-
sysdeps/ieee754/flt-32/e_sinhf.c | 13 +-
sysdeps/ieee754/flt-32/w_acosf.c | 1 +
sysdeps/ieee754/flt-32/w_acoshf.c | 1 +
sysdeps/ieee754/flt-32/w_asinf.c | 1 +
sysdeps/ieee754/flt-32/w_atan2f.c | 1 +
sysdeps/ieee754/flt-32/w_atanhf.c | 1 +
sysdeps/ieee754/flt-32/w_coshf.c | 1 +
sysdeps/ieee754/flt-32/w_lgammaf.c | 17 +
sysdeps/ieee754/flt-32/w_log10f.c | 1 +
sysdeps/ieee754/flt-32/w_sinhf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_acosf_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_asinf_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_coshf_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_log10f_compat.c | 8 +
sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c | 8 +
sysdeps/mach/hurd/i386/libm.abilist | 10 +
sysdeps/unix/sysv/linux/aarch64/libm.abilist | 10 +
sysdeps/unix/sysv/linux/alpha/libm.abilist | 10 +
sysdeps/unix/sysv/linux/arm/be/libm.abilist | 10 +
sysdeps/unix/sysv/linux/arm/le/libm.abilist | 10 +
sysdeps/unix/sysv/linux/hppa/libm.abilist | 10 +
sysdeps/unix/sysv/linux/i386/libm.abilist | 10 +
.../sysv/linux/m68k/coldfire/libm.abilist | 10 +
.../unix/sysv/linux/m68k/m680x0/libm.abilist | 3 +
.../sysv/linux/microblaze/be/libm.abilist | 10 +
.../sysv/linux/microblaze/le/libm.abilist | 10 +
.../unix/sysv/linux/mips/mips32/libm.abilist | 10 +
.../unix/sysv/linux/mips/mips64/libm.abilist | 10 +
.../linux/powerpc/powerpc32/fpu/libm.abilist | 10 +
.../powerpc/powerpc32/nofpu/libm.abilist | 10 +
.../linux/powerpc/powerpc64/be/libm.abilist | 10 +
.../linux/powerpc/powerpc64/le/libm.abilist | 10 +
.../unix/sysv/linux/s390/s390-32/libm.abilist | 10 +
.../unix/sysv/linux/s390/s390-64/libm.abilist | 10 +
sysdeps/unix/sysv/linux/sh/be/libm.abilist | 10 +
sysdeps/unix/sysv/linux/sh/le/libm.abilist | 10 +
.../sysv/linux/sparc/sparc32/libm.abilist | 10 +
.../sysv/linux/sparc/sparc64/libm.abilist | 10 +
.../unix/sysv/linux/x86_64/64/libm.abilist | 10 +
.../unix/sysv/linux/x86_64/x32/libm.abilist | 10 +
72 files changed, 1575 insertions(+), 46 deletions(-)
create mode 100644 benchtests/lgammaf_r-inputs
create mode 100644 math/w_acosf.c
create mode 100644 math/w_acoshf.c
create mode 100644 math/w_asinf.c
create mode 100644 math/w_atan2f.c
create mode 100644 math/w_atanhf.c
create mode 100644 math/w_coshf.c
create mode 100644 math/w_log10f.c
create mode 100644 math/w_sinhf.c
create mode 100644 sysdeps/ieee754/flt-32/w_acosf.c
create mode 100644 sysdeps/ieee754/flt-32/w_acoshf.c
create mode 100644 sysdeps/ieee754/flt-32/w_asinf.c
create mode 100644 sysdeps/ieee754/flt-32/w_atan2f.c
create mode 100644 sysdeps/ieee754/flt-32/w_atanhf.c
create mode 100644 sysdeps/ieee754/flt-32/w_coshf.c
create mode 100644 sysdeps/ieee754/flt-32/w_lgammaf.c
create mode 100644 sysdeps/ieee754/flt-32/w_log10f.c
create mode 100644 sysdeps/ieee754/flt-32/w_sinhf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_acosf_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
@ 2025-01-30 16:28 ` Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 02/10] math: Remove the error handling wrapper from log10f Adhemerval Zanella
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:28 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
Random inputs in the range [-20.0,20.0].
---
benchtests/Makefile | 1 +
benchtests/lgammaf_r-inputs | 1005 +++++++++++++++++++++++++++++++++++
2 files changed, 1006 insertions(+)
create mode 100644 benchtests/lgammaf_r-inputs
diff --git a/benchtests/Makefile b/benchtests/Makefile
index b18a9505b7..cd4d2fb73c 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -79,6 +79,7 @@ bench-math := \
j1 \
lgamma \
lgammaf \
+ lgammaf_r \
llrint \
llrintf \
log \
diff --git a/benchtests/lgammaf_r-inputs b/benchtests/lgammaf_r-inputs
new file mode 100644
index 0000000000..fa4e10ee4d
--- /dev/null
+++ b/benchtests/lgammaf_r-inputs
@@ -0,0 +1,1005 @@
+## args: float:<int*>
+## ret: float
+## includes: math.h
+# Random inputs in the range [-20.0,20.0]
+## name: workload-random-m20-p20
+-0x1.7eb52p+1
+-0x1.69a06p+3
+-0x1.a042ccp+3
+0x1.7e9dc8p+3
+-0x1.5d8cap+1
+-0x1.1755b4p+4
+0x1.041908p+4
+0x1.075de4p+4
+0x1.4ab608p+3
+0x1.f4b4a8p+3
+0x1.3ff54p+4
+0x1.fdc038p+3
+0x1.56e1p+3
+0x1.9b90e8p+2
+0x1.1b6d8p+0
+0x1.ebe99p+2
+-0x1.32d9f6p+4
+-0x1.077c24p+3
+0x1.98f028p+3
+-0x1.20faf2p+4
+0x1.1363a8p+2
+-0x1.9636p-3
+-0x1.b2ea6ap+3
+0x1.c45a7p+3
+-0x1.f1bd7cp+3
+0x1.18877p+4
+-0x1.c9e64p+0
+0x1.1d1798p+4
+-0x1.0f91dcp+3
+0x1.9e1e5p+2
+-0x1.147684p+3
+-0x1.c2d68p+1
+0x1.6da84p+1
+0x1.90c538p+3
+0x1.83246p+3
+0x1.c7aa6p+3
+0x1.036b18p+2
+0x1.6ccf3p+2
+0x1.2961cp+1
+0x1.e7c7d8p+2
+0x1.f867ep+3
+0x1.b3a65p+1
+0x1.6b55p+1
+-0x1.99d596p+3
+-0x1.95a76cp+3
+-0x1.11793ep+4
+0x1.a2534p+3
+-0x1.f1a64cp+2
+-0x1.dc91b4p+2
+0x1.0f6d04p+3
+-0x1.07058p+1
+-0x1.fedfc6p+3
+-0x1.52c68p-1
+-0x1.6efcp-1
+-0x1.ad3c2p+2
+-0x1.182d2p+0
+0x1.72c268p+2
+0x1.39c078p+2
+-0x1.75d314p+2
+-0x1.3a54c8p+3
+-0x1.9401dp+3
+0x1.f9f848p+2
+-0x1.e4664p+2
+-0x1.f581c4p+2
+0x1.3950e8p+4
+-0x1.19358p+0
+0x1.1f4578p+4
+0x1.3b86p-1
+-0x1.4658bp+1
+-0x1.5a405cp+3
+-0x1.1ba79cp+4
+-0x1.901d4p+0
+0x1.728cep+3
+0x1.3f3e6p+4
+-0x1.cfbbep+3
+-0x1.bb97p+0
+-0x1.5b482p+1
+0x1.1e8bp-2
+-0x1.0ee5aap+4
+-0x1.f752p-2
+0x1.2f51d4p+4
+0x1.259674p+4
+-0x1.1bdf68p+2
+0x1.8c3e18p+3
+-0x1.8102e4p+2
+0x1.8da2a8p+3
+0x1.63d22p+2
+0x1.e1476p+0
+-0x1.74c5ep+1
+0x1.a6118p+3
+-0x1.cd828p+0
+-0x1.337bd6p+4
+0x1.e47aep+2
+-0x1.60d3eep+3
+0x1.065e1cp+3
+0x1.9ab6p-2
+-0x1.2fc746p+4
+0x1.3c28a8p+4
+-0x1.ded2eep+3
+-0x1.d44338p+2
+-0x1.44529cp+3
+0x1.3a3b9p+4
+0x1.c4e34p+0
+0x1.a46d2p+3
+0x1.f90bbp+3
+0x1.36ab2p+4
+0x1.1d5c4p+4
+-0x1.b46ap+2
+-0x1.9a49dp+2
+0x1.ce1468p+3
+0x1.9d6e28p+3
+-0x1.2afb96p+4
+0x1.14c484p+4
+0x1.c8b62p+2
+0x1.0b2fc4p+4
+-0x1.130e1ep+4
+-0x1.07ac9cp+3
+-0x1.a98544p+2
+0x1.c9e418p+3
+0x1.9e3978p+3
+-0x1.8ce2ap+0
+-0x1.070784p+4
+-0x1.fd5a52p+3
+-0x1.a6442p+0
+-0x1.60f7dp+1
+0x1.b47e88p+3
+0x1.de245p+3
+0x1.229394p+3
+0x1.0384c8p+4
+0x1.057fbp+3
+-0x1.fd2bfcp+3
+0x1.ad41fp+3
+0x1.c47a08p+3
+0x1.27e794p+3
+0x1.d44cap+3
+-0x1.92fa8p-2
+-0x1.c413e4p+3
+0x1.3a858p-2
+0x1.210fcp+1
+-0x1.373444p+2
+-0x1.48565p+2
+0x1.f29b5p+3
+-0x1.3af7cp+1
+0x1.a3c87p+1
+-0x1.0f344p-1
+0x1.16744p+4
+0x1.2a06ccp+4
+0x1.23efe4p+4
+-0x1.257758p+4
+0x1.83ff5p+3
+-0x1.089d74p+4
+-0x1.9545ep+0
+-0x1.c682dcp+2
+0x1.17fp+0
+0x1.28db38p+4
+-0x1.600dc6p+3
+0x1.d7f13p+3
+-0x1.c88334p+2
+-0x1.1e2494p+2
+0x1.0346fcp+4
+-0x1.5b582cp+2
+-0x1.fd051p+3
+0x1.a86548p+3
+-0x1.37805ep+4
+-0x1.994474p+3
+0x1.4585ep+2
+0x1.58541p+2
+-0x1.02a9dap+4
+0x1.45ce08p+3
+-0x1.33222p+0
+-0x1.028c1cp+2
+-0x1.0f0e5cp+4
+-0x1.deeacp+2
+-0x1.02de5cp+3
+-0x1.513c6p+1
+-0x1.4af08p-1
+0x1.086f8p+4
+0x1.a2261p+3
+0x1.391728p+4
+0x1.f0f88p+0
+-0x1.968096p+3
+0x1.1611a4p+4
+0x1.c0b57p+3
+-0x1.36ba5p+3
+-0x1.7bacp-5
+-0x1.2ef69ep+4
+-0x1.048fep+2
+0x1.bf8b98p+3
+0x1.325a54p+4
+0x1.206e5p+2
+-0x1.ea23b6p+3
+0x1.3150ecp+3
+-0x1.2063ep+1
+0x1.a0f8dp+3
+0x1.73abcp+0
+0x1.1049cp+0
+-0x1.d3586p+1
+-0x1.27cc18p+2
+0x1.ba6ap-1
+0x1.63ccfp+1
+-0x1.bc6f4p+0
+-0x1.22c0bp+4
+-0x1.18872cp+4
+0x1.6df3dp+1
+0x1.6944c4p+3
+-0x1.ddbf22p+3
+-0x1.7a82cp+0
+-0x1.439ee2p+3
+-0x1.73d2fep+3
+-0x1.211e98p+3
+-0x1.5f885ap+3
+0x1.0f4e08p+3
+0x1.cb8c8p+3
+0x1.d869p+1
+-0x1.4a25bp+3
+0x1.fd608p-2
+0x1.d74f8p-2
+0x1.f4d118p+3
+-0x1.9ae6p+0
+-0x1.072e24p+4
+-0x1.cc707cp+3
+0x1.133c18p+3
+-0x1.90414p+0
+0x1.27941p+1
+0x1.59fb3cp+3
+-0x1.06e858p+2
+-0x1.fcaeap+0
+0x1.eb5dep+1
+-0x1.416c8p+0
+0x1.1c7b6cp+4
+-0x1.2a6e2cp+3
+0x1.2c761cp+4
+0x1.fd71cp+3
+0x1.35e09p+3
+-0x1.acb3a4p+2
+0x1.2e9948p+4
+-0x1.2ee254p+4
+-0x1.a1ea8p-1
+0x1.68304p+0
+0x1.ce08c8p+2
+0x1.d1176p+3
+-0x1.53cd4cp+2
+0x1.342a5p+2
+0x1.c558ap+2
+0x1.9ebf9p+3
+-0x1.9a7f1cp+2
+-0x1.e29dp-3
+-0x1.2ebe4p-1
+-0x1.1ea6b8p+4
+0x1.591968p+3
+0x1.93038p+3
+-0x1.362f32p+3
+0x1.56d2bp+2
+-0x1.6ec0d6p+3
+0x1.ca1f9p+3
+0x1.decdc8p+3
+-0x1.9fdf2p+1
+-0x1.784008p+2
+-0x1.b4c4acp+2
+-0x1.3727bp+4
+-0x1.1d152p+3
+-0x1.55e51cp+3
+-0x1.34c1e8p+3
+-0x1.4cfa88p+2
+-0x1.aa19cp+1
+0x1.600a1cp+3
+0x1.1c161cp+4
+0x1.df4bep+3
+0x1.ef037p+3
+-0x1.34b5ccp+3
+0x1.3a8154p+4
+0x1.014658p+3
+0x1.616fbp+2
+0x1.f607a8p+3
+-0x1.1eb464p+2
+-0x1.6a8d44p+3
+-0x1.302918p+4
+0x1.2637e4p+4
+0x1.1f8b3p+4
+0x1.a98fbp+2
+-0x1.d38cp+1
+0x1.1d0cep+3
+-0x1.8f8cc4p+2
+-0x1.62a05cp+2
+-0x1.06cadcp+3
+0x1.07a42cp+4
+0x1.2b4fep+4
+0x1.11db8p+3
+-0x1.3d2af8p+2
+-0x1.677808p+3
+0x1.ab9cp-3
+-0x1.5ade42p+3
+0x1.253aecp+4
+0x1.3f8ad4p+4
+0x1.338edcp+4
+-0x1.2ed73ap+3
+-0x1.1a20cp+4
+0x1.1f377p+1
+-0x1.c7d718p+2
+0x1.82abbp+3
+0x1.a93ffp+2
+-0x1.5a62ep+2
+-0x1.1175d8p+2
+-0x1.a801eep+3
+-0x1.0b381cp+4
+-0x1.10e558p+4
+0x1.3ecc98p+4
+-0x1.5825p+0
+0x1.863f9p+2
+0x1.6f04ap+1
+-0x1.1a1926p+3
+-0x1.a3151p+1
+0x1.911b9p+3
+-0x1.57857p+3
+0x1.0321f4p+4
+0x1.507c5p+1
+-0x1.1e125ep+4
+0x1.384f44p+4
+-0x1.23e7ap+4
+0x1.888bdp+3
+0x1.93c38p+3
+-0x1.f7861cp+3
+0x1.3d4364p+4
+-0x1.d93914p+3
+0x1.cdba88p+3
+-0x1.6ddaap+3
+0x1.a7cb2p+2
+0x1.847aa8p+3
+-0x1.bea42p+1
+-0x1.8412p+2
+0x1.2376p+3
+0x1.8abccp-1
+-0x1.25496p+1
+0x1.430848p+3
+-0x1.152338p+4
+0x1.12cc7p+2
+0x1.2d03fp+2
+0x1.2e46cp+3
+0x1.39566p+0
+0x1.6a4798p+3
+-0x1.f574dp+1
+-0x1.c8adfp+1
+-0x1.0a2ed4p+2
+0x1.1df95cp+4
+-0x1.0fabbp+1
+0x1.0baa1cp+3
+-0x1.197b5ep+4
+0x1.b094p-1
+-0x1.01ffp-3
+0x1.60a48p+1
+-0x1.05de5ap+4
+0x1.b893dp+1
+0x1.3cad2p+3
+0x1.126c88p+2
+-0x1.b64328p+3
+0x1.067a64p+4
+-0x1.92c75p+1
+-0x1.ad879cp+2
+0x1.78746p+0
+-0x1.3781f4p+2
+-0x1.34ffp+2
+0x1.d6e738p+3
+0x1.ccae18p+2
+0x1.2e8ff4p+4
+-0x1.12c228p+4
+-0x1.08a8c4p+4
+-0x1.ff6becp+2
+0x1.fd0368p+3
+-0x1.0ac648p+4
+0x1.414194p+3
+0x1.3882e8p+3
+0x1.0d717cp+4
+-0x1.a9c8d8p+2
+-0x1.e02b7p+3
+0x1.792808p+2
+0x1.334c7p+2
+0x1.37e894p+4
+0x1.8e95p-2
+-0x1.20ff7ep+4
+-0x1.caf154p+3
+-0x1.53509cp+2
+0x1.979b58p+3
+0x1.607b2p+1
+0x1.33468p+1
+-0x1.aa1a48p+3
+0x1.70cc2p+1
+-0x1.e591a4p+3
+0x1.43325p+3
+-0x1.637f0cp+3
+0x1.ac3e08p+2
+-0x1.3889fp+4
+0x1.17e4cp+4
+0x1.5632f8p+3
+0x1.2c0678p+3
+0x1.2dffd8p+4
+-0x1.11832ep+3
+-0x1.baf878p+3
+-0x1.07326ep+4
+0x1.00b694p+3
+-0x1.2d915p+3
+0x1.612204p+3
+-0x1.ffd36cp+2
+-0x1.48e0dp+3
+-0x1.9f771p+3
+-0x1.41d732p+3
+0x1.a3162p+1
+-0x1.7fefeep+3
+-0x1.611836p+3
+-0x1.7ca304p+3
+0x1.364dep+1
+-0x1.f328b6p+3
+-0x1.eb5cc4p+2
+0x1.cfbc6p+1
+0x1.56555cp+3
+-0x1.cb04p-5
+0x1.247b24p+4
+-0x1.bb4c18p+2
+-0x1.c0cf6p+3
+-0x1.b8f24p+1
+-0x1.24d9c4p+4
+0x1.2b53acp+4
+-0x1.fca186p+3
+0x1.17dbc4p+4
+0x1.bb3d68p+3
+-0x1.10c93p+1
+-0x1.21131ep+4
+-0x1.dbd96ap+3
+-0x1.3d496p+2
+-0x1.385aap+1
+-0x1.b22a3p+3
+0x1.0ff4fp+3
+-0x1.9ac55p+1
+-0x1.01c6eap+4
+-0x1.2a31e8p+4
+0x1.3558ap+2
+-0x1.670b7p+1
+0x1.f82af8p+3
+-0x1.93662p+0
+-0x1.066bc4p+2
+0x1.735ce8p+2
+0x1.aeedap+1
+-0x1.11b38cp+4
+0x1.ba702p+3
+0x1.0bf764p+4
+0x1.e3d2ep+0
+0x1.0b582p+2
+0x1.c5c058p+2
+-0x1.47cfp-1
+-0x1.6a194p-1
+-0x1.950ba4p+2
+-0x1.17ac8p+3
+-0x1.3e390ap+3
+-0x1.09821p+4
+-0x1.39ca94p+4
+-0x1.22d36ap+4
+-0x1.cb313p+3
+-0x1.050ef8p+4
+0x1.cc263p+3
+-0x1.032e6p+0
+-0x1.fb1102p+3
+-0x1.9aa74p-1
+-0x1.625p-3
+0x1.89c418p+3
+0x1.a8d2fp+3
+0x1.62a768p+2
+0x1.ee6728p+3
+-0x1.4a986cp+3
+0x1.4613e8p+2
+-0x1.1d5034p+3
+-0x1.7ce626p+3
+-0x1.e9f462p+3
+-0x1.ab207ep+3
+-0x1.e23f28p+3
+-0x1.40b06cp+2
+-0x1.ff6638p+3
+0x1.bfdb6p+1
+0x1.6e60d8p+2
+0x1.cc529p+3
+0x1.4167ecp+3
+0x1.0e29b8p+3
+0x1.d4f888p+3
+-0x1.ec6cbp+2
+0x1.2c792p+2
+-0x1.9dde1ep+3
+-0x1.618d6p+3
+-0x1.88a0bep+3
+-0x1.f14488p+3
+-0x1.ca6bap+3
+-0x1.5f8814p+3
+0x1.215de4p+3
+-0x1.32241cp+4
+0x1.1f2508p+4
+-0x1.8f06dap+3
+-0x1.054538p+4
+-0x1.0680c4p+3
+0x1.10439p+3
+-0x1.e1b68p+0
+0x1.cd0e88p+3
+-0x1.1592a8p+2
+-0x1.a754acp+3
+0x1.2bec94p+4
+0x1.70f58p+3
+-0x1.fb1e7cp+3
+0x1.71723p+3
+-0x1.2a1p-7
+0x1.c878fp+2
+-0x1.83fde8p+2
+-0x1.490f72p+3
+0x1.6ac254p+3
+0x1.f78218p+2
+-0x1.c104ecp+3
+0x1.ab7718p+2
+0x1.061ac4p+4
+0x1.1dfcf8p+2
+-0x1.0d3aa4p+4
+-0x1.09ddc4p+3
+0x1.05722p+1
+0x1.22f90cp+3
+-0x1.f3350ap+3
+0x1.c1d95p+2
+0x1.d134ep+3
+0x1.e630ap+3
+-0x1.f2fe6p+1
+-0x1.8208p-3
+-0x1.feedc8p+2
+-0x1.d65438p+3
+0x1.cd12c8p+3
+0x1.19a36p+2
+0x1.a3624p-1
+0x1.b0132p+2
+-0x1.a3bc68p+3
+-0x1.a62c86p+3
+-0x1.b5257ep+3
+0x1.3db9cp+1
+-0x1.24a36p+0
+-0x1.8c41dcp+3
+-0x1.bf138p+0
+0x1.0ca8ep+3
+-0x1.dd6254p+3
+-0x1.629638p+3
+0x1.17703p+2
+-0x1.0e91f6p+4
+-0x1.10c2ecp+4
+0x1.3108ep+0
+-0x1.b7d99p+3
+-0x1.163694p+4
+-0x1.63cdecp+2
+0x1.3875fp+1
+-0x1.8e3642p+3
+0x1.73de0cp+3
+-0x1.092a1ap+3
+0x1.554678p+3
+0x1.0b42ep+2
+-0x1.d66b86p+3
+0x1.a5a9c8p+2
+0x1.97605p+3
+0x1.a0bb4p+0
+-0x1.2f90cp-1
+-0x1.37a454p+2
+-0x1.8b46p-4
+0x1.216b84p+4
+0x1.19930cp+4
+0x1.04d39p+4
+-0x1.223f04p+4
+-0x1.5d7258p+2
+-0x1.fdee9p+2
+0x1.c6796p+2
+-0x1.5a64dep+3
+-0x1.94751ep+3
+0x1.6b029p+3
+0x1.3ad82cp+4
+0x1.16669p+2
+-0x1.2c3398p+3
+0x1.109ea8p+3
+-0x1.dec63ap+3
+0x1.2c17f8p+4
+-0x1.4d17f8p+3
+0x1.9f8ac8p+3
+0x1.4f1f58p+3
+0x1.93467p+3
+0x1.ea16c8p+2
+-0x1.207d1ep+4
+0x1.3248p-1
+0x1.c1c75p+3
+-0x1.f8a2cp+2
+-0x1.0a216p+1
+0x1.fb09dp+3
+-0x1.bf1268p+3
+-0x1.51c9e4p+3
+-0x1.9d29ep+3
+-0x1.43c7ep+0
+-0x1.0fa932p+4
+-0x1.67b4cp+1
+0x1.1d3bb8p+3
+0x1.3bb1f8p+3
+0x1.20a6fcp+3
+0x1.65ef1p+2
+-0x1.9aeep+1
+0x1.807c8p+1
+0x1.38814p+2
+-0x1.a9c314p+3
+-0x1.2337a2p+4
+0x1.cd515p+3
+0x1.9655ap+3
+0x1.d09898p+3
+0x1.d25bcp+3
+-0x1.3d9a24p+4
+0x1.2d1bbcp+4
+0x1.f0b688p+3
+0x1.7f3d1p+1
+0x1.0183cp+0
+-0x1.b25e58p+3
+-0x1.27daeep+4
+-0x1.1635fap+4
+-0x1.8dc5cp+1
+0x1.532e04p+3
+-0x1.068a64p+4
+0x1.188c04p+4
+0x1.108a3cp+4
+0x1.8cb84p+2
+-0x1.1afcap+4
+-0x1.3f64dep+4
+0x1.09106cp+4
+-0x1.ab759cp+2
+-0x1.daebfcp+3
+0x1.1585ap+1
+-0x1.76fcp-5
+-0x1.2b101cp+3
+0x1.a32f88p+2
+0x1.09988p+1
+-0x1.813c4cp+2
+-0x1.9cf78cp+2
+-0x1.20294p+3
+0x1.8bcaap+3
+-0x1.72461p+1
+-0x1.2ab636p+4
+-0x1.209602p+4
+0x1.27d37cp+4
+-0x1.a514ap+3
+0x1.31e58p-1
+0x1.6132ap+0
+-0x1.77f09ep+3
+-0x1.55dca2p+3
+0x1.efb2ap+2
+0x1.dcd1b8p+3
+-0x1.673234p+2
+-0x1.081d3cp+3
+0x1.24818p+1
+0x1.d8fd08p+2
+0x1.660298p+3
+-0x1.990a3p+2
+-0x1.1aad98p+4
+-0x1.f62b5cp+3
+0x1.670728p+3
+0x1.05fc2p+3
+-0x1.3c13p-1
+-0x1.f02d6p+3
+-0x1.986acp+0
+-0x1.b0d24cp+3
+-0x1.7c816p+2
+-0x1.12493p+2
+0x1.3ecf18p+3
+0x1.1c684p+2
+0x1.ff133p+2
+0x1.a2749p+3
+-0x1.3672e2p+4
+0x1.9f4efp+3
+0x1.eca91p+2
+0x1.13a478p+4
+-0x1.da6926p+3
+-0x1.2d60dap+3
+-0x1.314c8ep+3
+0x1.67725cp+3
+-0x1.7aae38p+3
+-0x1.4423c4p+3
+-0x1.0fe384p+2
+-0x1.100ccp-1
+-0x1.4bb77p+3
+0x1.03f2c4p+4
+0x1.3711d8p+4
+-0x1.7abd8p-1
+0x1.da70b8p+2
+-0x1.e17ee8p+2
+-0x1.52951p+2
+0x1.47082p+2
+0x1.9618cp+0
+-0x1.2c7a4cp+4
+0x1.bb538p+2
+-0x1.26c558p+4
+0x1.a03cp+0
+0x1.b10d68p+2
+0x1.d0d09p+1
+-0x1.e9cedp+2
+0x1.7b275p+3
+0x1.28edc4p+4
+-0x1.dc2fe8p+3
+0x1.1954e8p+4
+0x1.5a0acp+0
+-0x1.8ed08p+0
+0x1.0e8cbp+4
+-0x1.25b558p+2
+-0x1.51f0cap+3
+-0x1.974f52p+3
+-0x1.b10c9p+2
+-0x1.5f5fap+1
+-0x1.101f38p+4
+-0x1.c684fp+2
+-0x1.04614p+0
+-0x1.d1d47ap+3
+0x1.15ae34p+4
+0x1.7ec268p+2
+-0x1.e69aap+1
+-0x1.ac4c9cp+3
+0x1.26cebp+3
+-0x1.aa02ap+0
+-0x1.11f894p+3
+-0x1.d6f856p+3
+-0x1.27908p+1
+-0x1.1fe5fep+3
+-0x1.34be68p+3
+0x1.f92e4p+0
+0x1.932fdp+2
+0x1.443acp-1
+0x1.9dffap+1
+-0x1.62f4p-4
+-0x1.079448p+4
+0x1.a025dp+2
+0x1.12bca8p+2
+-0x1.6ffdbep+3
+0x1.087c5p+2
+0x1.069cfcp+4
+0x1.2c7b5cp+4
+-0x1.4ad3cp+1
+0x1.b2f88p-1
+-0x1.91a6ap+0
+-0x1.2a78d2p+3
+-0x1.87579p+1
+0x1.defb68p+3
+0x1.4c5cacp+3
+0x1.5ee82p+1
+-0x1.13491cp+2
+-0x1.927588p+3
+-0x1.30f1ep+4
+-0x1.5d959p+2
+-0x1.06308p+2
+-0x1.ad78dap+3
+-0x1.b24a08p+2
+-0x1.0d525p+3
+-0x1.96b2f8p+3
+-0x1.7f9184p+2
+-0x1.14e308p+3
+0x1.bb2a68p+3
+-0x1.10984p+0
+-0x1.078992p+4
+0x1.4e4178p+3
+-0x1.4c45dp+1
+0x1.61408p+3
+0x1.d18388p+3
+0x1.09656cp+4
+-0x1.1f058ep+4
+-0x1.25af1cp+4
+-0x1.0b159p+4
+0x1.2dfefp+2
+-0x1.a15ee8p+3
+-0x1.5dd91ap+3
+0x1.a798f8p+3
+0x1.5f804p+0
+-0x1.93decp+1
+0x1.3e5b4cp+3
+0x1.b85d2p+2
+0x1.d40e7p+1
+0x1.201794p+4
+-0x1.13ccb6p+4
+0x1.366ab8p+3
+-0x1.9e2f6p+1
+0x1.f1389p+3
+-0x1.46d9e8p+3
+0x1.73d614p+3
+0x1.eb7028p+3
+-0x1.e1c8p+2
+-0x1.19638p-2
+-0x1.270366p+4
+-0x1.a02e28p+3
+0x1.c9cc4p+3
+0x1.019ee8p+2
+0x1.b39a8p+3
+-0x1.9af1f4p+3
+0x1.f5023p+1
+-0x1.e7746p+3
+0x1.3b5f3p+4
+-0x1.8e4e4p+0
+0x1.49833p+3
+-0x1.bb951ap+3
+-0x1.1cec7ap+4
+-0x1.d25b3cp+3
+-0x1.31c36ep+4
+0x1.d522d8p+3
+-0x1.d2938p-1
+0x1.05b9fp+2
+0x1.7967a4p+3
+-0x1.3e33e8p+4
+-0x1.83457cp+3
+-0x1.1c85dp+1
+0x1.af2e4p-1
+-0x1.7faf44p+2
+0x1.a646cp-1
+-0x1.24368ep+4
+0x1.0ce3f8p+3
+-0x1.b47778p+3
+-0x1.e0ff8p-2
+-0x1.d5411p+3
+0x1.2eaec8p+4
+-0x1.56345cp+3
+-0x1.87282p+3
+-0x1.6c332p+1
+0x1.2e1f38p+4
+0x1.dcd4p-3
+-0x1.b91f58p+2
+-0x1.720c9p+1
+0x1.5a877cp+3
+0x1.d5f14p+1
+-0x1.cc1fcp+3
+0x1.c73f38p+3
+-0x1.f815e4p+3
+0x1.34fec8p+2
+-0x1.de3758p+3
+-0x1.033fdp+3
+-0x1.4af37p+1
+-0x1.ed2a9cp+3
+0x1.3bce5p+4
+0x1.cc3f4p+3
+0x1.4c7f5p+3
+-0x1.8b48e8p+2
+-0x1.5fa2b8p+2
+0x1.13392cp+4
+-0x1.e33a52p+3
+-0x1.38818p-2
+-0x1.25d98ap+3
+-0x1.ecc21ep+3
+-0x1.7866f8p+2
+-0x1.af5af4p+2
+0x1.063d4p+1
+-0x1.ae60dcp+2
+0x1.29ade8p+4
+0x1.b04548p+3
+-0x1.aa017p+1
+-0x1.084576p+4
+-0x1.09808p-1
+0x1.247be8p+2
+0x1.217548p+3
+-0x1.64ae4cp+3
+-0x1.ef30c4p+3
+-0x1.a9874p+1
+0x1.8828d8p+2
+-0x1.e769eep+3
+0x1.236e4p+0
+0x1.a3f3ep+3
+0x1.bfcb8p+2
+-0x1.35ae4p+2
+-0x1.42cd18p+2
+-0x1.53172p+3
+-0x1.098abcp+4
+-0x1.e6abd8p+3
+-0x1.1bc3f4p+3
+0x1.134e4p+0
+-0x1.627188p+2
+-0x1.86fep-3
+-0x1.1669d4p+3
+0x1.8226p+3
+0x1.8c45a8p+3
+0x1.323f88p+3
+0x1.d33a58p+2
+0x1.2725ep+4
+-0x1.6389bcp+2
+-0x1.e7511cp+2
+-0x1.bf0a0cp+3
+0x1.a70278p+2
+0x1.9278bp+2
+0x1.98d768p+3
+0x1.65d758p+3
+-0x1.e2adfp+3
+0x1.edef4p+2
+-0x1.03cc3p+3
+-0x1.525952p+3
+0x1.9a09fp+3
+0x1.902p-6
+0x1.4e1718p+3
+-0x1.32735ep+3
+0x1.97a1e8p+2
+0x1.03c284p+3
+-0x1.27f718p+3
+-0x1.9d9188p+2
+-0x1.bd74f4p+2
+0x1.2d9ff4p+4
+-0x1.f8bdcp+0
+-0x1.170224p+4
+-0x1.ade7cp-1
+0x1.f64fb8p+2
+-0x1.09b0dcp+3
+0x1.c5cbe8p+3
+-0x1.192c62p+4
+0x1.3d8318p+2
+-0x1.25a1c8p+4
+-0x1.026eap+1
+-0x1.aadc4cp+3
+0x1.35d5bp+2
+0x1.604f6p+2
+-0x1.5b3cp-4
+0x1.e6e378p+3
+0x1.80d4fp+1
+0x1.47c13p+3
+-0x1.11d95cp+4
+0x1.2ad474p+4
+-0x1.1d75aep+4
+-0x1.1919eep+4
+0x1.4edacp-1
+-0x1.001a56p+3
+0x1.3eef54p+3
+-0x1.2d4bb6p+3
+-0x1.8aadc8p+2
+-0x1.961b08p+2
+-0x1.c8d7a8p+2
+-0x1.6324d4p+3
+-0x1.06fe24p+3
+-0x1.17101ep+3
+-0x1.234c7p+3
+0x1.207d68p+2
+0x1.f7d2p-4
+-0x1.96bbc8p+3
+0x1.fda688p+3
+-0x1.fd476p+0
+0x1.2a1978p+2
+0x1.df8a8p+1
+0x1.7def58p+2
+0x1.3b10dp+4
+-0x1.97de6p+1
+0x1.3b2ff8p+2
+0x1.65326p+3
+0x1.9c97e8p+2
+-0x1.23246p+3
+0x1.adfe68p+2
+0x1.9cf08p-2
+0x1.19ca1p+4
+0x1.035f7p+1
+0x1.0de5d8p+4
+-0x1.272888p+3
+0x1.154c9p+4
+0x1.5614cp+2
+-0x1.94256p+2
+-0x1.909406p+3
+0x1.19d714p+3
+-0x1.88d0fp+3
+0x1.65c05p+2
+-0x1.668106p+3
+-0x1.a0a92cp+3
+0x1.ed168p+0
+0x1.8b63f8p+3
+-0x1.ae89f6p+3
+-0x1.c6cc5cp+2
+0x1.6cf43p+2
+0x1.35178p-2
+-0x1.b627bp+2
+0x1.05f95cp+4
+-0x1.93d994p+3
+0x1.4e417p+3
+-0x1.59c6dp+1
+-0x1.0b8dbp+1
+-0x1.6065ep+3
+-0x1.810ea8p+2
+0x1.6f65p-2
+-0x1.3d9a44p+3
+-0x1.5b5588p+3
+0x1.b3e9e8p+3
+-0x1.3eab1ap+3
+-0x1.52f9c4p+3
+0x1.d090dp+1
+-0x1.7047p-2
+-0x1.245bc4p+2
+-0x1.0155ap+4
+0x1.8df128p+2
+-0x1.0b3b0cp+4
+0x1.5d2f98p+3
+-0x1.024fap+0
+0x1.41ef2p+0
+0x1.f762d8p+3
+-0x1.85876ap+3
+0x1.82df2p+3
+-0x1.f241c4p+2
+-0x1.bb4bfp+2
+-0x1.bb70c6p+3
+0x1.0b9ac4p+4
+-0x1.22003cp+4
+0x1.855608p+3
+0x1.a8a17p+2
+-0x1.00c3b4p+3
+-0x1.1831e8p+4
+-0x1.d1621p+2
+-0x1.be78a2p+3
+-0x1.e1bf4ap+3
+0x1.153b24p+4
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 02/10] math: Remove the error handling wrapper from log10f
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark Adhemerval Zanella
@ 2025-01-30 16:28 ` Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r Adhemerval Zanella
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:28 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 3-10% and throughput for about 5-10%.
---
math/Versions | 4 ++++
math/w_log10f.c | 8 ++++++++
math/w_log10f_compat.c | 10 +++++++---
sysdeps/ieee754/flt-32/e_log10f.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_log10f.c | 1 +
sysdeps/m68k/m680x0/fpu/w_log10f_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 62 insertions(+), 4 deletions(-)
create mode 100644 math/w_log10f.c
create mode 100644 sysdeps/ieee754/flt-32/w_log10f.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
diff --git a/math/Versions b/math/Versions
index e4fbef3f6d..78dac9d165 100644
--- a/math/Versions
+++ b/math/Versions
@@ -671,4 +671,8 @@ libm {
sinpif64x; sinpif128;
tanpif64x; tanpif128;
}
+ GLIBC_2.42 {
+ # No SVID compatible error handling.
+ log10f;
+ }
}
diff --git a/math/w_log10f.c b/math/w_log10f.c
new file mode 100644
index 0000000000..e0f592b80c
--- /dev/null
+++ b/math/w_log10f.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_log10_template.c>
+versioned_symbol (libm, __log10f, log10f, GLIBC_2_42);
+libm_alias_float_other (__log10f, log10f)
diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c
index a1f2327520..95e0a4d3cd 100644
--- a/math/w_log10f_compat.c
+++ b/math/w_log10f_compat.c
@@ -22,10 +22,10 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
/* wrapper log10f(x) */
float
-__log10f (float x)
+__log10_compatf (float x)
{
if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
{
@@ -43,5 +43,9 @@ __log10f (float x)
return __ieee754_log10f (x);
}
-libm_alias_float (__log10, log10)
+# ifdef NO_COMPAT_NEEDED
+libm_alias_float (__log10_compat, log10)
+# else
+compat_symbol (libm, __log10_compatf, log10f, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c
index 03d9e281f3..242731005b 100644
--- a/sysdeps/ieee754/flt-32/e_log10f.c
+++ b/sysdeps/ieee754/flt-32/e_log10f.c
@@ -27,6 +27,8 @@ SOFTWARE.
#include <math.h>
#include <stdint.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static __attribute__ ((noinline)) float
@@ -45,7 +47,7 @@ as_special (float x)
}
float
-__ieee754_log10f (float x)
+__log10f (float x)
{
static const double tr[] =
{
@@ -158,4 +160,11 @@ __ieee754_log10f (float x)
}
return ub;
}
+strong_alias (__log10f, __ieee754_log10f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __log10f, log10f, GLIBC_2_42);
+libm_alias_float_other (__log10, log10)
+#else
+libm_alias_float (__log10, log10)
+#endif
libm_alias_finite (__ieee754_log10f, __log10f)
diff --git a/sysdeps/ieee754/flt-32/w_log10f.c b/sysdeps/ieee754/flt-32/w_log10f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_log10f.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c b/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
new file mode 100644
index 0000000000..a0d6036fcc
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_log10f_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_log10f. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_log10f_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_log10_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index a248abb642..d7bb4cfa16 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1277,3 +1277,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 88a81da2fe..f4c1c78ef0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 007fd86f9e..787599b70d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1404,3 +1404,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 4699d529a4..8a5c1c5b86 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index d1ce0f7283..c4d074dfdc 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1284,3 +1284,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index d1531f79c9..eb1b81eccf 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 2f6a2e7d21..2b768e5376 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 2f6a2e7d21..2b768e5376 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 85173a7471..52f526d732 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 880f8c4c16..af762481aa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 43d578d09d..deeba94b9c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1067,3 +1067,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 64a9ea10b2..d13d81cc13 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1066,3 +1066,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index d45783a1d3..abc30421a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1060,3 +1060,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 44ca2f20d9..ea38df2a87 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1429,3 +1429,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index bc621c2923..1ed2a31928 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1348,3 +1348,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 8de3065e45..acd20230a2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1348,3 +1348,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 6df6a8d7b0..7b228e449a 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 6df6a8d7b0..7b228e449a 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -920,3 +920,4 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 991d96b3d4..1e7f7309c6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1355,3 +1355,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 8600571387..ae1f040772 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1245,3 +1245,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 8113fb41f0..c5b759ad37 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1278,3 +1278,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index ac96d62ed2..3f4be241db 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1278,3 +1278,4 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 02/10] math: Remove the error handling wrapper from log10f Adhemerval Zanella
@ 2025-01-30 16:28 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 04/10] math: Remove the error handling wrapper from acosf Adhemerval Zanella
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:28 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency throughput for about 2%.
---
math/Versions | 1 +
math/lgamma-compat.h | 15 ++++++++++++---
math/w_lgammaf_compat2.c | 2 +-
math/w_lgammaf_main.c | 7 +------
sysdeps/ieee754/flt-32/e_lgammaf_r.c | 12 ++++++++++--
sysdeps/ieee754/flt-32/w_lgammaf.c | 17 +++++++++++++++++
sysdeps/mach/hurd/i386/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/aarch64/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/be/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/hppa/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/libm.abilist | 2 ++
.../unix/sysv/linux/m68k/coldfire/libm.abilist | 2 ++
.../unix/sysv/linux/m68k/m680x0/libm.abilist | 2 ++
.../unix/sysv/linux/microblaze/be/libm.abilist | 2 ++
.../unix/sysv/linux/microblaze/le/libm.abilist | 2 ++
.../unix/sysv/linux/mips/mips32/libm.abilist | 2 ++
.../unix/sysv/linux/mips/mips64/libm.abilist | 2 ++
.../linux/powerpc/powerpc32/fpu/libm.abilist | 2 ++
.../linux/powerpc/powerpc32/nofpu/libm.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libm.abilist | 2 ++
.../linux/powerpc/powerpc64/le/libm.abilist | 2 ++
.../unix/sysv/linux/s390/s390-32/libm.abilist | 2 ++
.../unix/sysv/linux/s390/s390-64/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/be/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/sh/le/libm.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc32/libm.abilist | 2 ++
.../unix/sysv/linux/sparc/sparc64/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 2 ++
31 files changed, 92 insertions(+), 12 deletions(-)
create mode 100644 sysdeps/ieee754/flt-32/w_lgammaf.c
diff --git a/math/Versions b/math/Versions
index 78dac9d165..2611a6872f 100644
--- a/math/Versions
+++ b/math/Versions
@@ -674,5 +674,6 @@ libm {
GLIBC_2.42 {
# No SVID compatible error handling.
log10f;
+ lgammaf; lgammaf_r;
}
}
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index bf4acef559..f50bacce8f 100644
--- a/math/lgamma-compat.h
+++ b/math/lgamma-compat.h
@@ -34,10 +34,17 @@
old glibc.
Users of this file define USE_AS_COMPAT to 0 when building the main
- version of lgamma, 1 when building the compatibility version. */
+ version of lgamma, 1 when building the compatibility version that
+ handles signgam visibility, and 2 when building the compatibility
+ that handles SVID support). */
+#if USE_AS_COMPAT <= 1
#define LGAMMA_OLD_VER GLIBC_2_0
#define LGAMMA_NEW_VER GLIBC_2_23
+#elif USE_AS_COMPAT == 2
+#define LGAMMA_OLD_VER GLIBC_2_23
+#define LGAMMA_NEW_VER GLIBC_2_42
+#endif
#define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER)
/* Whether to build this version at all. */
@@ -45,8 +52,10 @@
(LIBM_SVID_COMPAT && (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT))
/* The name to use for this version. */
-#if USE_AS_COMPAT
+#if USE_AS_COMPAT == 1
# define LGFUNC(FUNC) FUNC ## _compat
+#elif USE_AS_COMPAT == 2
+# define LGFUNC(FUNC) FUNC ## _compat2
#else
# define LGFUNC(FUNC) FUNC
#endif
@@ -54,7 +63,7 @@
/* If there is a compatibility version, gamma (not an ISO C function,
so never a problem for it to set signgam) points directly to it
rather than having separate versions. */
-#define GAMMA_ALIAS (USE_AS_COMPAT ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
+#define GAMMA_ALIAS (USE_AS_COMPAT == 1 ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT)
/* How to call the underlying lgamma_r function. */
#define CALL_LGAMMA(TYPE, FUNC, ARG) \
diff --git a/math/w_lgammaf_compat2.c b/math/w_lgammaf_compat2.c
index 5fc402260c..3a942dbe04 100644
--- a/math/w_lgammaf_compat2.c
+++ b/math/w_lgammaf_compat2.c
@@ -1,2 +1,2 @@
-#define USE_AS_COMPAT 0
+#define USE_AS_COMPAT 2
#include <w_lgammaf_main.c>
diff --git a/math/w_lgammaf_main.c b/math/w_lgammaf_main.c
index 22b7f8fc53..8d475d3a6c 100644
--- a/math/w_lgammaf_main.c
+++ b/math/w_lgammaf_main.c
@@ -33,12 +33,7 @@ LGFUNC (__lgammaf) (float x)
return y;
}
-# if USE_AS_COMPAT
-compat_symbol (libm, __lgammaf_compat, lgammaf, LGAMMA_OLD_VER);
-# else
-versioned_symbol (libm, __lgammaf, lgammaf, LGAMMA_NEW_VER);
-libm_alias_float_other (__lgamma, lgamma)
-# endif
+compat_symbol (libm, LGFUNC (__lgammaf), lgammaf, LGAMMA_OLD_VER);
# if GAMMA_ALIAS
strong_alias (LGFUNC (__lgammaf), __gammaf)
weak_alias (__gammaf, gammaf)
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 75ec25fb9e..378ada14dd 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -36,6 +36,8 @@ SOFTWARE.
#include <math.h>
#include <libm-alias-finite.h>
#include <limits.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include <math-narrow-eval.h>
#include "math_config.h"
@@ -108,7 +110,7 @@ as_ln (double x)
}
float
-__ieee754_lgammaf_r (float x, int *signgamp)
+__lgamma_rf (float x, int *signgamp)
{
static const struct
{
@@ -363,4 +365,10 @@ __ieee754_lgammaf_r (float x, int *signgamp)
}
return r;
}
-libm_alias_finite (__ieee754_lgammaf_r, __lgammaf_r)
+strong_alias (__lgamma_rf, __ieee754_lgammaf_r)
+libm_alias_finite (__lgamma_rf, __lgammaf_r)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgamma_rf, lgammaf_r, GLIBC_2_42);
+#else
+libm_alias_float (__lgamma_r, lgamma_r)
+#endif
diff --git a/sysdeps/ieee754/flt-32/w_lgammaf.c b/sysdeps/ieee754/flt-32/w_lgammaf.c
new file mode 100644
index 0000000000..01ea82546a
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_lgammaf.c
@@ -0,0 +1,17 @@
+#include <math-svid-compat.h>
+#include <math.h>
+#include <libm-alias-float.h>
+
+float
+__lgammaf (float x)
+{
+ return __lgammaf_r (x, &__signgam);
+}
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __lgammaf, lgammaf, GLIBC_2_42);
+libm_alias_float_other (__lgamma, lgamma)
+#else
+libm_alias_float (__lgamma, lgamma)
+strong_alias (__lgammaf, __gammaf)
+weak_alias (__gammaf, gammaf)
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index d7bb4cfa16..050722cb73 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1277,4 +1277,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index f4c1c78ef0..41bd47abeb 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1245,4 +1245,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 787599b70d..02a85f4998 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1404,4 +1404,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index eb1b81eccf..5b0eabbc7c 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index eb1b81eccf..5b0eabbc7c 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 8a5c1c5b86..6efb2e5e83 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index c4d074dfdc..4b277fa849 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1284,4 +1284,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index eb1b81eccf..5b0eabbc7c 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index c3c23fd02d..197e85b7bb 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -956,3 +956,5 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 2b768e5376..dad4910e3b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 2b768e5376..dad4910e3b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 52f526d732..2435460eef 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index af762481aa..d1fe3c91ea 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1245,4 +1245,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index deeba94b9c..d46ae7cef1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1067,4 +1067,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index d13d81cc13..e90314df44 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1066,4 +1066,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index abc30421a5..9e84016a29 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1060,4 +1060,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index ea38df2a87..685cad8e2c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1429,4 +1429,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 1ed2a31928..0c5b2d0aaf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1348,4 +1348,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index acd20230a2..be929adce1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1348,4 +1348,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 7b228e449a..bb3dcaebf7 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 7b228e449a..bb3dcaebf7 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -920,4 +920,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 1e7f7309c6..ff5f932ddf 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1355,4 +1355,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index ae1f040772..052a0012fe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1245,4 +1245,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index c5b759ad37..0794c4ad52 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1278,4 +1278,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 3f4be241db..19ffca6af2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1278,4 +1278,6 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 lgammaf F
+GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 04/10] math: Remove the error handling wrapper from acosf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (2 preceding siblings ...)
2025-01-30 16:28 ` [PATCH v2 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 05/10] math: Remove the error handling wrapper from asinf Adhemerval Zanella
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 2-10% and throughput for about 5-10%.
---
math/Versions | 1 +
math/w_acosf.c | 8 ++++++++
math/w_acosf_compat.c | 10 +++++++---
sysdeps/ieee754/flt-32/e_acosf.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_acosf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_acosf_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 59 insertions(+), 4 deletions(-)
create mode 100644 math/w_acosf.c
create mode 100644 sysdeps/ieee754/flt-32/w_acosf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_acosf_compat.c
diff --git a/math/Versions b/math/Versions
index 2611a6872f..e619f950f7 100644
--- a/math/Versions
+++ b/math/Versions
@@ -675,5 +675,6 @@ libm {
# No SVID compatible error handling.
log10f;
lgammaf; lgammaf_r;
+ acosf;
}
}
diff --git a/math/w_acosf.c b/math/w_acosf.c
new file mode 100644
index 0000000000..aa59a35264
--- /dev/null
+++ b/math/w_acosf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_acos_template.c>
+versioned_symbol (libm, __acosf, acosf, GLIBC_2_42);
+libm_alias_float_other (__acosf, acosf)
diff --git a/math/w_acosf_compat.c b/math/w_acosf_compat.c
index e7037989f0..28754af265 100644
--- a/math/w_acosf_compat.c
+++ b/math/w_acosf_compat.c
@@ -22,10 +22,10 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
/* wrapper acosf */
float
-__acosf (float x)
+__acos_compatf (float x)
{
if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
&& _LIB_VERSION != _IEEE_)
@@ -37,5 +37,9 @@ __acosf (float x)
return __ieee754_acosf (x);
}
-libm_alias_float (__acos, acos)
+# ifdef NO_COMPAT_NEEDED
+libm_alias_float (__acos_compat, acos)
+# else
+compat_symbol (libm, __acos_compatf, acosf, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_acosf.c b/sysdeps/ieee754/flt-32/e_acosf.c
index a5a4de4fc2..96e49f0c63 100644
--- a/sysdeps/ieee754/flt-32/e_acosf.c
+++ b/sysdeps/ieee754/flt-32/e_acosf.c
@@ -29,6 +29,8 @@ SOFTWARE.
#include <math_private.h>
#include <libm-alias-finite.h>
#include <math-barriers.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static __attribute__ ((noinline)) float
@@ -65,7 +67,7 @@ poly12 (double z, const double *c)
}
float
-__ieee754_acosf (float x)
+__acosf (float x)
{
double pi2 = 0x1.921fb54442d18p+0;
static const double o[] = { 0, 0x1.921fb54442d18p+1 };
@@ -140,4 +142,11 @@ __ieee754_acosf (float x)
}
return r;
}
+strong_alias (__acosf, __ieee754_acosf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __acosf, acosf, GLIBC_2_42);
+libm_alias_float_other (__acos, acos)
+#else
+libm_alias_float (__acos, acos)
+#endif
libm_alias_finite (__ieee754_acosf, __acosf)
diff --git a/sysdeps/ieee754/flt-32/w_acosf.c b/sysdeps/ieee754/flt-32/w_acosf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_acosf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_acosf_compat.c b/sysdeps/m68k/m680x0/fpu/w_acosf_compat.c
new file mode 100644
index 0000000000..c49aeb2e06
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_acosf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_acosf. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_acosf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_acos_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 050722cb73..069f6839af 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1277,6 +1277,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 41bd47abeb..608dc3af3a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1245,6 +1245,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 02a85f4998..9640285af3 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1404,6 +1404,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 5b0eabbc7c..2d2927bfa3 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 5b0eabbc7c..2d2927bfa3 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 6efb2e5e83..0fc179462f 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 4b277fa849..f226ddf60d 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1284,6 +1284,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 5b0eabbc7c..2d2927bfa3 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index dad4910e3b..254d54c946 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index dad4910e3b..254d54c946 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 2435460eef..67e5314104 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index d1fe3c91ea..515a9446ea 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1245,6 +1245,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index d46ae7cef1..f6bc97d98b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1067,6 +1067,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index e90314df44..7a6854f8e2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1066,6 +1066,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 9e84016a29..923e079978 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1060,6 +1060,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 685cad8e2c..8ec0f6dd8b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1429,6 +1429,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 0c5b2d0aaf..400aac290c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1348,6 +1348,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index be929adce1..2c3f38d54b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1348,6 +1348,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index bb3dcaebf7..848ddfd475 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index bb3dcaebf7..848ddfd475 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -920,6 +920,7 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index ff5f932ddf..d47b24a0da 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1355,6 +1355,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 052a0012fe..4d0ce6d826 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1245,6 +1245,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 0794c4ad52..887ee28cda 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1278,6 +1278,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 19ffca6af2..69aa9901f7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1278,6 +1278,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acosf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 05/10] math: Remove the error handling wrapper from asinf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (3 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 04/10] math: Remove the error handling wrapper from acosf Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 06/10] math: Remove the error handling wrapper from acoshf Adhemerval Zanella
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 2% and throughput for about 5%.
---
math/Versions | 1 +
math/w_asinf.c | 8 ++++++++
math/w_asinf_compat.c | 10 +++++++---
sysdeps/ieee754/flt-32/e_asinf.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_asinf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_asinf_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 59 insertions(+), 4 deletions(-)
create mode 100644 math/w_asinf.c
create mode 100644 sysdeps/ieee754/flt-32/w_asinf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
diff --git a/math/Versions b/math/Versions
index e619f950f7..565be955b0 100644
--- a/math/Versions
+++ b/math/Versions
@@ -676,5 +676,6 @@ libm {
log10f;
lgammaf; lgammaf_r;
acosf;
+ asinf;
}
}
diff --git a/math/w_asinf.c b/math/w_asinf.c
new file mode 100644
index 0000000000..b91cc49446
--- /dev/null
+++ b/math/w_asinf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_asin_template.c>
+versioned_symbol (libm, __asinf, asinf, GLIBC_2_42);
+libm_alias_float_other (__asinf, asinf)
diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c
index e4927426f7..9f492f7504 100644
--- a/math/w_asinf_compat.c
+++ b/math/w_asinf_compat.c
@@ -22,10 +22,10 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
/* wrapper asinf */
float
-__asinf (float x)
+__asin_compatf (float x)
{
if (__builtin_expect (isgreater (fabsf (x), 1.0f), 0)
&& _LIB_VERSION != _IEEE_)
@@ -37,5 +37,9 @@ __asinf (float x)
return __ieee754_asinf (x);
}
-libm_alias_float (__asin, asin)
+# ifdef NO_COMPAT_NEEDED
+libm_alias_float (__asin_compat, asin)
+# else
+compat_symbol (libm, __asin_compatf, asinf, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c
index 944bf6f5ce..ad896b656b 100644
--- a/sysdeps/ieee754/flt-32/e_asinf.c
+++ b/sysdeps/ieee754/flt-32/e_asinf.c
@@ -27,6 +27,8 @@ SOFTWARE.
#include <stdint.h>
#include <errno.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static __attribute__ ((noinline)) float
@@ -57,7 +59,7 @@ poly12 (double z, const double *c)
}
float
-__ieee754_asinf (float x)
+__asinf (float x)
{
const double pi2 = 0x1.921fb54442d18p+0;
double xs = x;
@@ -128,4 +130,11 @@ __ieee754_asinf (float x)
}
return r;
}
+strong_alias (__asinf, __ieee754_asinf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __asinf, asinf, GLIBC_2_42);
+libm_alias_float_other (__asin, asin)
+#else
+libm_alias_float (__asin, asin)
+#endif
libm_alias_finite (__ieee754_asinf, __asinf)
diff --git a/sysdeps/ieee754/flt-32/w_asinf.c b/sysdeps/ieee754/flt-32/w_asinf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_asinf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c b/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
new file mode 100644
index 0000000000..d419736eb3
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_asinf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_asinf. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_asinf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_asin_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 069f6839af..3063ff1980 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1278,6 +1278,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 608dc3af3a..4f3e67b163 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 9640285af3..6ee87e7ca8 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 2d2927bfa3..1a8843e044 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 2d2927bfa3..1a8843e044 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 0fc179462f..fd14c2106a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index f226ddf60d..d8e64a9096 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1285,6 +1285,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 2d2927bfa3..1a8843e044 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 254d54c946..fa421fe3d7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 254d54c946..fa421fe3d7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 67e5314104..bf398cac63 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 515a9446ea..35c239ebb9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index f6bc97d98b..6c0390ed0a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1068,6 +1068,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 7a6854f8e2..98a0aef13a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1067,6 +1067,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 923e079978..e2604bce61 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1061,6 +1061,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 8ec0f6dd8b..f00ae13045 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1430,6 +1430,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 400aac290c..bd81a6f4b7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1349,6 +1349,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 2c3f38d54b..29a7da583b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1349,6 +1349,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 848ddfd475..14f765b302 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 848ddfd475..14f765b302 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index d47b24a0da..bcaf43a7b8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1356,6 +1356,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 4d0ce6d826..39174aca28 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 887ee28cda..babc57384c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1279,6 +1279,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 69aa9901f7..bd871170d6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1279,6 +1279,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 06/10] math: Remove the error handling wrapper from acoshf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (4 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 05/10] math: Remove the error handling wrapper from asinf Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 07/10] math: Remove the error handling wrapper from atan2f Adhemerval Zanella
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 3-7% and throughput for about 5-10%.
---
math/Versions | 1 +
math/w_acoshf.c | 8 ++++++++
math/w_acoshf_compat.c | 6 +++---
sysdeps/ieee754/flt-32/e_acoshf.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_acoshf.c | 1 +
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 48 insertions(+), 4 deletions(-)
create mode 100644 math/w_acoshf.c
create mode 100644 sysdeps/ieee754/flt-32/w_acoshf.c
diff --git a/math/Versions b/math/Versions
index 565be955b0..a576097c50 100644
--- a/math/Versions
+++ b/math/Versions
@@ -677,5 +677,6 @@ libm {
lgammaf; lgammaf_r;
acosf;
asinf;
+ acoshf;
}
}
diff --git a/math/w_acoshf.c b/math/w_acoshf.c
new file mode 100644
index 0000000000..1e5b4a75ac
--- /dev/null
+++ b/math/w_acoshf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_acosh_template.c>
+versioned_symbol (libm, __acoshf, acoshf, GLIBC_2_42);
+libm_alias_float_other (__acoshf, acoshf)
diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c
index aa5da5c436..77f97cb767 100644
--- a/math/w_acoshf_compat.c
+++ b/math/w_acoshf_compat.c
@@ -21,10 +21,10 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
/* wrapper acoshf */
float
-__acoshf (float x)
+__acosh_compatf (float x)
{
if (__builtin_expect (isless (x, 1.0f), 0) && _LIB_VERSION != _IEEE_)
/* acosh(x<1) */
@@ -32,5 +32,5 @@ __acoshf (float x)
return __ieee754_acoshf (x);
}
-libm_alias_float (__acosh, acosh)
+compat_symbol (libm, __acosh_compatf, acoshf, GLIBC_2_0);
#endif
diff --git a/sysdeps/ieee754/flt-32/e_acoshf.c b/sysdeps/ieee754/flt-32/e_acoshf.c
index a0a0abc2dd..56d36b5679 100644
--- a/sysdeps/ieee754/flt-32/e_acoshf.c
+++ b/sysdeps/ieee754/flt-32/e_acoshf.c
@@ -27,6 +27,8 @@ SOFTWARE.
#include <math.h>
#include <stdint.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static __attribute__ ((noinline)) float
@@ -43,7 +45,7 @@ as_special (float x)
}
float
-__ieee754_acoshf (float x)
+__acoshf (float x)
{
static const double ix[] =
{
@@ -198,4 +200,11 @@ __ieee754_acoshf (float x)
else
return as_special (x);
}
+strong_alias (__acoshf, __ieee754_acoshf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __acoshf, acoshf, GLIBC_2_42);
+libm_alias_float_other (__acosh, acosh)
+#else
+libm_alias_float (__acosh, acosh)
+#endif
libm_alias_finite (__ieee754_acoshf, __acoshf)
diff --git a/sysdeps/ieee754/flt-32/w_acoshf.c b/sysdeps/ieee754/flt-32/w_acoshf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_acoshf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 3063ff1980..b6f55e1e85 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1278,6 +1278,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 4f3e67b163..c939ada587 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 6ee87e7ca8..7e1d0cef30 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1405,6 +1405,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 1a8843e044..c6ef147356 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 1a8843e044..c6ef147356 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index fd14c2106a..40050fbb6a 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index d8e64a9096..7b63fa103c 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1285,6 +1285,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 1a8843e044..c6ef147356 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 197e85b7bb..ad1f9b20dc 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -956,5 +956,6 @@ GLIBC_2.41 tanpif32 F
GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
+GLIBC_2.42 acoshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index fa421fe3d7..a5f5762406 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index fa421fe3d7..a5f5762406 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index bf398cac63..ce75033ac7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 35c239ebb9..b10a87aa26 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 6c0390ed0a..36ce6efc66 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1068,6 +1068,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 98a0aef13a..b9dc71ae16 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1067,6 +1067,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index e2604bce61..ae997f0052 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1061,6 +1061,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index f00ae13045..68a2bad6df 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1430,6 +1430,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index bd81a6f4b7..0331713c1a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1349,6 +1349,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 29a7da583b..da49e189f5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1349,6 +1349,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 14f765b302..a3fc39e3cb 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 14f765b302..a3fc39e3cb 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -921,6 +921,7 @@ GLIBC_2.41 tanpif32x F
GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index bcaf43a7b8..42bce13b21 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1356,6 +1356,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 39174aca28..2f2a699b6c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1246,6 +1246,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index babc57384c..4291327fce 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1279,6 +1279,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index bd871170d6..9a3c7fb596 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1279,6 +1279,7 @@ GLIBC_2.41 tanpif64 F
GLIBC_2.41 tanpif64x F
GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
+GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 07/10] math: Remove the error handling wrapper from atan2f
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (5 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 06/10] math: Remove the error handling wrapper from acoshf Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 08/10] math: Remove the error handling wrapper from atanhf Adhemerval Zanella
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 3-6% and throughput for about 5-12%.
---
math/Versions | 1 +
math/w_atan2f.c | 8 ++++++++
math/w_atan2f_compat.c | 11 ++++++++---
sysdeps/ieee754/flt-32/e_atan2f.c | 19 ++++++++++++++++---
sysdeps/ieee754/flt-32/w_atan2f.c | 1 +
sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c | 8 ++++++++
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 +
.../sysv/linux/m68k/coldfire/libm.abilist | 1 +
.../sysv/linux/microblaze/be/libm.abilist | 1 +
.../sysv/linux/microblaze/le/libm.abilist | 1 +
.../unix/sysv/linux/mips/mips32/libm.abilist | 1 +
.../unix/sysv/linux/mips/mips64/libm.abilist | 1 +
.../linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../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 +
.../sysv/linux/sparc/sparc32/libm.abilist | 1 +
.../sysv/linux/sparc/sparc64/libm.abilist | 1 +
.../unix/sysv/linux/x86_64/64/libm.abilist | 1 +
.../unix/sysv/linux/x86_64/x32/libm.abilist | 1 +
30 files changed, 66 insertions(+), 6 deletions(-)
create mode 100644 math/w_atan2f.c
create mode 100644 sysdeps/ieee754/flt-32/w_atan2f.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c
diff --git a/math/Versions b/math/Versions
index a576097c50..27d4e94613 100644
--- a/math/Versions
+++ b/math/Versions
@@ -678,5 +678,6 @@ libm {
acosf;
asinf;
acoshf;
+ atan2f;
}
}
diff --git a/math/w_atan2f.c b/math/w_atan2f.c
new file mode 100644
index 0000000000..9b3d6c4bbf
--- /dev/null
+++ b/math/w_atan2f.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_atan2_template.c>
+versioned_symbol (libm, __atan2f, atan2f, GLIBC_2_42);
+libm_alias_float_other (__atan2f, atan2f)
diff --git a/math/w_atan2f_compat.c b/math/w_atan2f_compat.c
index 047f853f2c..28589a7c35 100644
--- a/math/w_atan2f_compat.c
+++ b/math/w_atan2f_compat.c
@@ -26,9 +26,9 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
float
-__atan2f (float y, float x)
+__atan2_compatf (float y, float x)
{
float z;
@@ -40,5 +40,10 @@ __atan2f (float y, float x)
__set_errno (ERANGE);
return z;
}
-libm_alias_float (__atan2, atan2)
+# ifdef NO_COMPAT_NEEDED
+strong_alias (__atan2_compatf, __atan2f)
+libm_alias_float (__atan2_compat, atan2)
+# else
+compat_symbol (libm, __atan2_compatf, atan2f, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_atan2f.c b/sysdeps/ieee754/flt-32/e_atan2f.c
index 82a0151293..19906b68dd 100644
--- a/sysdeps/ieee754/flt-32/e_atan2f.c
+++ b/sysdeps/ieee754/flt-32/e_atan2f.c
@@ -3,7 +3,7 @@
Copyright (c) 2022-2024 Alexei Sibidanov and Paul Zimmermann.
The original version of this file was copied from the CORE-MATH
-project (file src/binary32/atan2/atan2f.c, revision 7835c5d).
+project (file src/binary32/atan2/atan2f.c, revision 9b28a4a).
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -25,9 +25,12 @@ SOFTWARE.
*/
+#include <errno.h>
#include <math.h>
#include <stdint.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static inline double
@@ -89,7 +92,7 @@ cr_atan2f_tiny (float y, float x)
}
float
-__ieee754_atan2f (float y, float x)
+__atan2f (float y, float x)
{
static const double cn[] =
{
@@ -269,6 +272,16 @@ __ieee754_atan2f (float y, float x)
}
r = th + tm;
}
- return r;
+ float rf = r;
+ if (__glibc_unlikely (rf == 0 && y != 0))
+ __set_errno (ERANGE);
+ return rf;
}
+strong_alias (__atan2f, __ieee754_atan2f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __atan2f, atan2f, GLIBC_2_42);
+libm_alias_float_other (__atan2, atan2)
+#else
+libm_alias_float (__atan2, atan2)
+#endif
libm_alias_finite (__ieee754_atan2f, __atan2f)
diff --git a/sysdeps/ieee754/flt-32/w_atan2f.c b/sysdeps/ieee754/flt-32/w_atan2f.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_atan2f.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c b/sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c
new file mode 100644
index 0000000000..ebc8035961
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_atan2f_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_atan2f. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_atan2f_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_atan2_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index b6f55e1e85..8eceffc54c 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1280,6 +1280,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index c939ada587..bd9687e60c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1248,6 +1248,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 7e1d0cef30..b2a66c4ede 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1407,6 +1407,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index c6ef147356..92b172b839 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index c6ef147356..92b172b839 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 40050fbb6a..ce8a833cfc 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 7b63fa103c..37f8c436a3 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1287,6 +1287,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index c6ef147356..92b172b839 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index a5f5762406..efd11d19cf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index a5f5762406..efd11d19cf 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index ce75033ac7..743a4d0637 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index b10a87aa26..b9c859570e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1248,6 +1248,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 36ce6efc66..52136c4528 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1070,6 +1070,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index b9dc71ae16..c9c82a80c5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1069,6 +1069,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index ae997f0052..a88fb21bed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1063,6 +1063,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 68a2bad6df..35bd7e7773 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1432,6 +1432,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 0331713c1a..f6d0d69ec6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1351,6 +1351,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index da49e189f5..917db48912 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1351,6 +1351,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index a3fc39e3cb..6cf910173b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index a3fc39e3cb..6cf910173b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -923,6 +923,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 42bce13b21..1ec1808524 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1358,6 +1358,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 2f2a699b6c..3de2c3d660 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1248,6 +1248,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 4291327fce..cbc17fcd2a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1281,6 +1281,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 9a3c7fb596..d6ddaf0c7a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1281,6 +1281,7 @@ GLIBC_2.41 tanpil F
GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
+GLIBC_2.42 atan2f F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 08/10] math: Remove the error handling wrapper from atanhf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (6 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 07/10] math: Remove the error handling wrapper from atan2f Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 09/10] math: Remove the error handling wrapper from coshf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 10/10] math: Remove the error handling wrapper from sinhf Adhemerval Zanella
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 1-10% and throughput for about 5-10%.
---
math/Versions | 1 +
math/w_atanhf.c | 8 ++++++++
math/w_atanhf_compat.c | 11 ++++++++---
sysdeps/ieee754/flt-32/e_atanhf.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_atanhf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 60 insertions(+), 4 deletions(-)
create mode 100644 math/w_atanhf.c
create mode 100644 sysdeps/ieee754/flt-32/w_atanhf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
diff --git a/math/Versions b/math/Versions
index 27d4e94613..7f84a72b32 100644
--- a/math/Versions
+++ b/math/Versions
@@ -679,5 +679,6 @@ libm {
asinf;
acoshf;
atan2f;
+ atanhf;
}
}
diff --git a/math/w_atanhf.c b/math/w_atanhf.c
new file mode 100644
index 0000000000..7b3b671f3c
--- /dev/null
+++ b/math/w_atanhf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_atanh_template.c>
+versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_42);
+libm_alias_float_other (__atanhf, atanhf)
diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c
index b86686cd76..2a8270e295 100644
--- a/math/w_atanhf_compat.c
+++ b/math/w_atanhf_compat.c
@@ -21,10 +21,10 @@
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
/* wrapper atanhf */
float
-__atanhf (float x)
+__atanh_compatf (float x)
{
if (__builtin_expect (isgreaterequal (fabsf (x), 1.0f), 0)
&& _LIB_VERSION != _IEEE_)
@@ -35,5 +35,10 @@ __atanhf (float x)
return __ieee754_atanhf (x);
}
-libm_alias_float (__atanh, atanh)
+# ifdef NO_COMPAT_NEEDED
+strong_alias (__atanh_compatf, __atanhf)
+libm_alias_float (__atanh_compat, atanh)
+# else
+compat_symbol (libm, __atanh_compatf, atanhf, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
index 5138408324..5412835cec 100644
--- a/sysdeps/ieee754/flt-32/e_atanhf.c
+++ b/sysdeps/ieee754/flt-32/e_atanhf.c
@@ -27,6 +27,8 @@ SOFTWARE.
#include <math.h>
#include <stdint.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
static __attribute__((noinline)) float
@@ -42,7 +44,7 @@ as_special (float x)
}
float
-__ieee754_atanhf (float x)
+__atanhf (float x)
{
/* Calculate atanh(x) using the difference of two logarithms -- atanh(x) =
(ln(1+x) - ln(1-x))/2 */
@@ -175,4 +177,11 @@ __ieee754_atanhf (float x)
}
return ub;
}
+strong_alias (__atanhf, __ieee754_atanhf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __atanhf, atanhf, GLIBC_2_42);
+libm_alias_float_other (__atanh, atanh)
+#else
+libm_alias_float (__atanh, atanh)
+#endif
libm_alias_finite (__ieee754_atanhf, __atanhf)
diff --git a/sysdeps/ieee754/flt-32/w_atanhf.c b/sysdeps/ieee754/flt-32/w_atanhf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_atanhf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
new file mode 100644
index 0000000000..1ec8434684
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_atanhf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_atanhf. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_atanhf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_atanh_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index 8eceffc54c..dfc07786eb 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1281,6 +1281,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index bd9687e60c..586d40d5c6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1249,6 +1249,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index b2a66c4ede..fb641db738 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1408,6 +1408,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 92b172b839..1b5d476450 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 92b172b839..1b5d476450 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index ce8a833cfc..16885c419f 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 37f8c436a3..157b976b1a 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1288,6 +1288,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 92b172b839..1b5d476450 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index efd11d19cf..b4d452e44f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index efd11d19cf..b4d452e44f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 743a4d0637..6163837b48 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index b9c859570e..11dcf4254a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1249,6 +1249,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 52136c4528..13e06021e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1071,6 +1071,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index c9c82a80c5..cd6e743a64 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1070,6 +1070,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index a88fb21bed..60df9c03c8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1064,6 +1064,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 35bd7e7773..550c36ecb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1433,6 +1433,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index f6d0d69ec6..ec9a35b914 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1352,6 +1352,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 917db48912..6b5f81265a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1352,6 +1352,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 6cf910173b..04714bf403 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 6cf910173b..04714bf403 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -924,6 +924,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 1ec1808524..3256cc91a0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1359,6 +1359,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 3de2c3d660..980cd89d2f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1249,6 +1249,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index cbc17fcd2a..d9c7b785b3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1282,6 +1282,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index d6ddaf0c7a..d235c026cf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1282,6 +1282,7 @@ GLIBC_2.42 acosf F
GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
+GLIBC_2.42 atanhf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 09/10] math: Remove the error handling wrapper from coshf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (7 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 08/10] math: Remove the error handling wrapper from atanhf Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 10/10] math: Remove the error handling wrapper from sinhf Adhemerval Zanella
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 3-10% and throughput for about 5-15%.
---
math/Versions | 1 +
math/w_coshf.c | 8 ++++++++
math/w_coshf_compat.c | 12 +++++++++---
sysdeps/ieee754/flt-32/e_coshf.c | 11 ++++++++++-
sysdeps/ieee754/flt-32/w_coshf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_coshf_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 61 insertions(+), 4 deletions(-)
create mode 100644 math/w_coshf.c
create mode 100644 sysdeps/ieee754/flt-32/w_coshf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
diff --git a/math/Versions b/math/Versions
index 7f84a72b32..f37b7d8efd 100644
--- a/math/Versions
+++ b/math/Versions
@@ -680,5 +680,6 @@ libm {
acoshf;
atan2f;
atanhf;
+ coshf;
}
}
diff --git a/math/w_coshf.c b/math/w_coshf.c
new file mode 100644
index 0000000000..a786f7c50a
--- /dev/null
+++ b/math/w_coshf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_cosh_template.c>
+versioned_symbol (libm, __coshf, coshf, GLIBC_2_42);
+libm_alias_float_other (__coshf, coshf)
diff --git a/math/w_coshf_compat.c b/math/w_coshf_compat.c
index ce5e196c07..39b56da101 100644
--- a/math/w_coshf_compat.c
+++ b/math/w_coshf_compat.c
@@ -20,10 +20,11 @@
#include <math_private.h>
#include <math-svid-compat.h>
#include <libm-alias-float.h>
+#include <shlib-compat.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
float
-__coshf (float x)
+__cosh_compatf (float x)
{
float z = __ieee754_coshf (x);
if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
@@ -32,5 +33,10 @@ __coshf (float x)
return z;
}
-libm_alias_float (__cosh, cosh)
+# ifdef NO_COMPAT_NEEDED
+strong_alias (__cosh_compatf, __coshf)
+libm_alias_float (__cosh_compat, cosh)
+# else
+compat_symbol (libm, __cosh_compatf, coshf, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_coshf.c b/sysdeps/ieee754/flt-32/e_coshf.c
index 602d2b413f..7dea283e7a 100644
--- a/sysdeps/ieee754/flt-32/e_coshf.c
+++ b/sysdeps/ieee754/flt-32/e_coshf.c
@@ -27,10 +27,12 @@ SOFTWARE.
#include <stdint.h>
#include <math.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include "math_config.h"
float
-__ieee754_coshf (float x)
+__coshf (float x)
{
static const double c[] =
{
@@ -114,4 +116,11 @@ __ieee754_coshf (float x)
}
return ub;
}
+strong_alias (__coshf, __ieee754_coshf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __coshf, coshf, GLIBC_2_42);
+libm_alias_float_other (__cosh, cosh)
+#else
+libm_alias_float (__cosh, cosh)
+#endif
libm_alias_finite (__ieee754_coshf, __coshf)
diff --git a/sysdeps/ieee754/flt-32/w_coshf.c b/sysdeps/ieee754/flt-32/w_coshf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_coshf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c b/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
new file mode 100644
index 0000000000..14444a9f0c
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_coshhf. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_coshf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_cosh_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index dfc07786eb..d844987004 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1282,6 +1282,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 586d40d5c6..e6be5f808b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index fb641db738..807c0556aa 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1409,6 +1409,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 1b5d476450..9dcbfa267b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 1b5d476450..9dcbfa267b 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 16885c419f..995f56f2be 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 157b976b1a..b144dfbe0d 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1289,6 +1289,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 1b5d476450..9dcbfa267b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index b4d452e44f..2cfcc419c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index b4d452e44f..2cfcc419c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 6163837b48..db69c56c5a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 11dcf4254a..39486d894e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 13e06021e0..53c03becb6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1072,6 +1072,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index cd6e743a64..4849a96fd6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1071,6 +1071,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 60df9c03c8..1848e326b0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1065,6 +1065,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 550c36ecb9..6dd5f82933 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1434,6 +1434,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index ec9a35b914..ffacf4ae91 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1353,6 +1353,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 6b5f81265a..0f8fca59b3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1353,6 +1353,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 04714bf403..77b3e3160f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 04714bf403..77b3e3160f 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -925,6 +925,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 3256cc91a0..5cecff58d3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 980cd89d2f..e74513e436 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1250,6 +1250,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index d9c7b785b3..d8443b79ca 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1283,6 +1283,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index d235c026cf..f7d6dab97f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1283,6 +1283,7 @@ GLIBC_2.42 acoshf F
GLIBC_2.42 asinf F
GLIBC_2.42 atan2f F
GLIBC_2.42 atanhf F
+GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 10/10] math: Remove the error handling wrapper from sinhf
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
` (8 preceding siblings ...)
2025-01-30 16:29 ` [PATCH v2 09/10] math: Remove the error handling wrapper from coshf Adhemerval Zanella
@ 2025-01-30 16:29 ` Adhemerval Zanella
9 siblings, 0 replies; 11+ messages in thread
From: Adhemerval Zanella @ 2025-01-30 16:29 UTC (permalink / raw)
To: libc-alpha; +Cc: Joseph Myers, DJ Delorie, Paul Zimmermann
It improves latency for about 3-10% and throughput for about 5-15%.
---
math/Versions | 1 +
math/w_sinhf.c | 8 ++++++++
math/w_sinhf_compat.c | 11 ++++++++---
sysdeps/ieee754/flt-32/e_sinhf.c | 13 ++++++++++++-
sysdeps/ieee754/flt-32/w_sinhf.c | 1 +
sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c | 8 ++++++++
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/m68k/coldfire/libm.abilist | 1 +
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 1 +
sysdeps/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 +
.../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc64/be/libm.abilist | 1 +
.../sysv/linux/powerpc/powerpc64/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 1 +
sysdeps/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 +
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 1 +
sysdeps/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 +
30 files changed, 62 insertions(+), 4 deletions(-)
create mode 100644 math/w_sinhf.c
create mode 100644 sysdeps/ieee754/flt-32/w_sinhf.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c
diff --git a/math/Versions b/math/Versions
index f37b7d8efd..38733c38df 100644
--- a/math/Versions
+++ b/math/Versions
@@ -681,5 +681,6 @@ libm {
atan2f;
atanhf;
coshf;
+ sinhf;
}
}
diff --git a/math/w_sinhf.c b/math/w_sinhf.c
new file mode 100644
index 0000000000..1256de139c
--- /dev/null
+++ b/math/w_sinhf.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-float.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_sinh_template.c>
+versioned_symbol (libm, __sinhf, sinhf, GLIBC_2_42);
+libm_alias_float_other (__sinhf, sinhf)
diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c
index e8de6675af..f26bcfbacc 100644
--- a/math/w_sinhf_compat.c
+++ b/math/w_sinhf_compat.c
@@ -21,9 +21,9 @@
#include <math-svid-compat.h>
#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_42)
float
-__sinhf (float x)
+__sinh_compatf (float x)
{
float z = __ieee754_sinhf (x);
if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
@@ -32,5 +32,10 @@ __sinhf (float x)
return z;
}
-libm_alias_float (__sinh, sinh)
+# ifdef NO_COMPAT_NEEDED
+strong_alias (__sinh_compatf, __sinhf)
+libm_alias_float (__sinh_compat, sinh)
+# else
+compat_symbol (libm, __sinh_compatf, sinhf, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/ieee754/flt-32/e_sinhf.c b/sysdeps/ieee754/flt-32/e_sinhf.c
index c007c7d174..d413949bc4 100644
--- a/sysdeps/ieee754/flt-32/e_sinhf.c
+++ b/sysdeps/ieee754/flt-32/e_sinhf.c
@@ -24,14 +24,17 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
+#include <errno.h>
#include <math.h>
#include <stdint.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include <math-narrow-eval.h>
#include "math_config.h"
float
-__ieee754_sinhf (float x)
+__sinhf (float x)
{
static const double c[] =
{
@@ -75,6 +78,7 @@ __ieee754_sinhf (float x)
return copysignf (INFINITY, x); /* +-inf */
}
float r = math_narrow_eval (sgn * 0x1.fffffep127f);
+ __set_errno (ERANGE);
return r;
}
if (__glibc_unlikely (ux < 0x7c000000u))
@@ -128,4 +132,11 @@ __ieee754_sinhf (float x)
}
return ub;
}
+strong_alias (__sinhf, __ieee754_sinhf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __sinhf, sinhf, GLIBC_2_42);
+libm_alias_float_other (__sinh, sinh)
+#else
+libm_alias_float (__sinh, sinh)
+#endif
libm_alias_finite (__ieee754_sinhf, __sinhf)
diff --git a/sysdeps/ieee754/flt-32/w_sinhf.c b/sysdeps/ieee754/flt-32/w_sinhf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/w_sinhf.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c b/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c
new file mode 100644
index 0000000000..e8e4bc9326
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_sinhf_compat.c
@@ -0,0 +1,8 @@
+/* m68k provides an optimized __ieee754_sinhhf. */
+#ifdef SHARED
+# define NO_COMPAT_NEEDED 1
+# include <math/w_sinhf_compat.c>
+#else
+# include <math-type-macros-float.h>
+# include <w_sinh_template.c>
+#endif
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index d844987004..6d50c9b9ce 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1286,3 +1286,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index e6be5f808b..7b76073c62 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 807c0556aa..d08bdd0f95 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1413,3 +1413,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 9dcbfa267b..83fbff1566 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 9dcbfa267b..83fbff1566 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 995f56f2be..1693844375 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index b144dfbe0d..3085068ca2 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1293,3 +1293,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 9dcbfa267b..83fbff1566 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 2cfcc419c2..c062862c9b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 2cfcc419c2..c062862c9b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index db69c56c5a..08e47ee7f8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 39486d894e..2e7098e915 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 53c03becb6..1b696512b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1076,3 +1076,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index 4849a96fd6..d212b7ed4f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1075,3 +1075,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 1848e326b0..c9d121b6c6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1069,3 +1069,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 6dd5f82933..1a0fd6fe02 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1438,3 +1438,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index ffacf4ae91..8d0803dd9e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1357,3 +1357,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 0f8fca59b3..844759b73c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1357,3 +1357,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index 77b3e3160f..b0601d88ac 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index 77b3e3160f..b0601d88ac 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -929,3 +929,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 5cecff58d3..87489eef19 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1364,3 +1364,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index e74513e436..04635f1df0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1254,3 +1254,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index d8443b79ca..262e14cafe 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1287,3 +1287,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index f7d6dab97f..9177a0f88c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1287,3 +1287,4 @@ GLIBC_2.42 coshf F
GLIBC_2.42 lgammaf F
GLIBC_2.42 lgammaf_r F
GLIBC_2.42 log10f F
+GLIBC_2.42 sinhf F
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-01-30 16:31 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-30 16:28 [PATCH v2 00/10] Remove the SVID wrapper from CORE-MATH functions Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 01/10] benchtests: Add lgammaf_r benchmark Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 02/10] math: Remove the error handling wrapper from log10f Adhemerval Zanella
2025-01-30 16:28 ` [PATCH v2 03/10] math: Remove the error handling wrapper from lgammaf/lgammaf_r Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 04/10] math: Remove the error handling wrapper from acosf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 05/10] math: Remove the error handling wrapper from asinf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 06/10] math: Remove the error handling wrapper from acoshf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 07/10] math: Remove the error handling wrapper from atan2f Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 08/10] math: Remove the error handling wrapper from atanhf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 09/10] math: Remove the error handling wrapper from coshf Adhemerval Zanella
2025-01-30 16:29 ` [PATCH v2 10/10] math: Remove the error handling wrapper from sinhf Adhemerval Zanella
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).