New exp10f version without SVID compat wrapper

System Internals / glibc - Adhemerval Zanella [linaro.org] - 19 June 2020 15:08 EDT

This patch changes the exp10f error handling semantics to only set errno according to POSIX rules. New symbol version is introduced at GLIBC_2.32. The old wrappers are kept for compat symbols.

There are some outliers that need special handling:

- ia64 provides an optimized implementation of exp10f that uses ia64 specific routines to set SVID compatibility. The new symbol version is aliased to the exp10f one.

- m68k also provides an optimized implementation, and the new version uses it instead of the sysdeps/ieee754/flt32 one.

- riscv and csky uses the generic template implementation that does not provide SVID support. For both cases a new exp10f
version is not added, but rather the symbols version of the generic sysdeps/ieee754/flt32 is adjusted instead.

Checked on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu.

be668a8d78 New exp10f version without SVID compat wrapper
math/Versions | 3 +++
math/w_exp10f.c | 1 +
math/w_exp10f_compat.c | 8 ++++----
sysdeps/ia64/fpu/e_exp10f.S | 12 +++++++++---
sysdeps/ieee754/flt-32/e_exp10f.c | 16 +++++++++++++++-
sysdeps/m68k/m680x0/fpu/e_exp10f.c | 5 +++++
sysdeps/mach/hurd/i386/libm.abilist | 1 +
sysdeps/unix/sysv/linux/aarch64/libm.abilist | 1 +
sysdeps/unix/sysv/linux/alpha/libm.abilist | 1 +
sysdeps/unix/sysv/linux/arm/be/libm.abilist | 1 +
sysdeps/unix/sysv/linux/arm/le/libm.abilist | 1 +
sysdeps/unix/sysv/linux/hppa/libm.abilist | 1 +
sysdeps/unix/sysv/linux/i386/libm.abilist | 1 +
sysdeps/unix/sysv/linux/ia64/libm.abilist | 1 +
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 +
sysdeps/unix/sysv/linux/nios2/libm.abilist | 1 +
.../unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
.../unix/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 +
33 files changed, 64 insertions(+), 8 deletions(-)

Upstream: sourceware.org


  • Share