[PATCH 7/9] Remove the error handling wrapper from log
Szabolcs Nagy
szabolcs.nagy@arm.com
Fri Jun 29 12:55:00 GMT 2018
Introduce new log symbol version that doesn't do SVID compatible error
handling. The standard errno and fp exception based error handling is
inline in the new code and does not have significant overhead (only
affects uncommon special case code paths).
The w_log.c wrapper is disabled for sysdeps/ieee754/dbl-64 by using an
empty w_log.c and enabled for targets using their own log implementation.
The __log_finite symbol is just an alias to log now. For backward
compatibility the old log symbol versions still use a wrapper with
SVID error handling around the new code.
The ia64 asm is chaned so the compat and new symbol versions map to the
same address.
On x86_64 #include <math.h> was added before macro definitions that
may affect that header.
2018-06-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
* math/Versions (GLIBC_2.28): Add log.
* math/w_log_compat.c (__log_compat): Change to versioned compat
symbol.
* math/w_log.c: New file.
* sysdeps/i386/fpu/w_log.c: New file.
* sysdeps/ia64/fpu/e_log.S: Update.
* sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Rename to __log
and add necessary aliases.
* sysdeps/ieee754/dbl-64/w_log.c: New file.
* sysdeps/m68k/m680x0/fpu/w_log.c: New file.
* sysdeps/mach/hurd/i386/libm.abilist: Update.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
* sysdeps/x86_64/fpu/multiarch/e_log-avx.c (__ieee754_log): Rename to
__log.
* sysdeps/x86_64/fpu/multiarch/e_log-fma.c (__ieee754_log): Likewise.
* sysdeps/x86_64/fpu/multiarch/e_log-fma4.c (__ieee754_log): Likewise.
* sysdeps/x86_64/fpu/multiarch/e_log.c (__ieee754_log): Likewise.
* sysdeps/x86_64/fpu/multiarch/w_log.c: New file.
---
math/Versions | 2 +-
math/w_log.c | 8 ++++++++
math/w_log_compat.c | 6 +++---
sysdeps/i386/fpu/w_log.c | 1 +
sysdeps/ia64/fpu/e_log.S | 6 ++++++
sysdeps/ieee754/dbl-64/e_log.c | 11 ++++++++---
sysdeps/ieee754/dbl-64/w_log.c | 1 +
sysdeps/m68k/m680x0/fpu/w_log.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/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/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 +
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 1 +
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 1 +
sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist | 1 +
sysdeps/unix/sysv/linux/riscv/rv64/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/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 +
sysdeps/x86_64/fpu/multiarch/e_log-avx.c | 2 +-
sysdeps/x86_64/fpu/multiarch/e_log-fma.c | 2 +-
sysdeps/x86_64/fpu/multiarch/e_log-fma4.c | 2 +-
sysdeps/x86_64/fpu/multiarch/e_log.c | 4 +++-
sysdeps/x86_64/fpu/multiarch/w_log.c | 1 +
37 files changed, 60 insertions(+), 11 deletions(-)
create mode 100644 math/w_log.c
create mode 100644 sysdeps/i386/fpu/w_log.c
create mode 100644 sysdeps/ieee754/dbl-64/w_log.c
create mode 100644 sysdeps/m68k/m680x0/fpu/w_log.c
create mode 100644 sysdeps/x86_64/fpu/multiarch/w_log.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Remove-the-error-handling-wrapper-from-log.diff
Type: text/x-patch
Size: 15151 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20180629/53e8f668/attachment.bin>
More information about the Libc-alpha
mailing list