[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