Add libm_alias_finite for _finite symbols
authorWilco Dijkstra <Wilco.Dijkstra@arm.com>
Tue, 16 Jul 2019 15:17:22 +0000 (12:17 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 3 Jan 2020 13:02:04 +0000 (10:02 -0300)
commit220622dde5704c95a100c2792a280f18f3deba73
treefbf0df37c2671a9bc21a200bd2f587fc5e4cbe2b
parentcf4dfd461725b6dbe6f27fbd16913f2c6c5cf7c5
Add libm_alias_finite for _finite symbols

This patch adds a new macro, libm_alias_finite, to define all _finite
symbol.  It sets all _finite symbol as compat symbol based on its first
version (obtained from the definition at built generated first-versions.h).

The <fn>f128_finite symbols were introduced in GLIBC 2.26 and so need
special treatment in code that is shared between long double and float128.
It is done by adding a list, similar to internal symbol redifinition,
on sysdeps/ieee754/float128/float128_private.h.

Alpha also needs some tricky changes to ensure we still emit 2 compat
symbols for sqrt(f).

Passes buildmanyglibc.

Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
263 files changed:
math/e_exp10.c
math/e_exp10f.c
math/e_exp10l.c
math/e_scalb.c
math/e_scalbf.c
math/e_scalbl.c
sysdeps/aarch64/e_sqrtl.c
sysdeps/aarch64/fpu/e_sqrt.c
sysdeps/aarch64/fpu/e_sqrtf.c
sysdeps/alpha/alphaev6/fpu/e_sqrt.S
sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
sysdeps/alpha/e_sqrtl.c
sysdeps/alpha/fpu/e_sqrt.c
sysdeps/alpha/fpu/e_sqrtf.c
sysdeps/arm/e_sqrt.c
sysdeps/arm/e_sqrtf.c
sysdeps/generic/math-type-macros.h
sysdeps/i386/fpu/e_acos.S
sysdeps/i386/fpu/e_acosf.S
sysdeps/i386/fpu/e_acosh.S
sysdeps/i386/fpu/e_acoshf.S
sysdeps/i386/fpu/e_acoshl.S
sysdeps/i386/fpu/e_acosl.c
sysdeps/i386/fpu/e_asin.S
sysdeps/i386/fpu/e_asinf.S
sysdeps/i386/fpu/e_atan2.S
sysdeps/i386/fpu/e_atan2f.S
sysdeps/i386/fpu/e_atan2l.c
sysdeps/i386/fpu/e_atanh.S
sysdeps/i386/fpu/e_atanhf.S
sysdeps/i386/fpu/e_atanhl.S
sysdeps/i386/fpu/e_exp.S
sysdeps/i386/fpu/e_exp10.S
sysdeps/i386/fpu/e_exp10f.S
sysdeps/i386/fpu/e_exp2.S
sysdeps/i386/fpu/e_exp2l.S
sysdeps/i386/fpu/e_expl.S
sysdeps/i386/fpu/e_fmod.S
sysdeps/i386/fpu/e_fmodf.S
sysdeps/i386/fpu/e_fmodl.c
sysdeps/i386/fpu/e_hypot.S
sysdeps/i386/fpu/e_hypotf.S
sysdeps/i386/fpu/e_log.S
sysdeps/i386/fpu/e_log10.S
sysdeps/i386/fpu/e_log10f.S
sysdeps/i386/fpu/e_log10l.S
sysdeps/i386/fpu/e_log2.S
sysdeps/i386/fpu/e_log2l.S
sysdeps/i386/fpu/e_logl.S
sysdeps/i386/fpu/e_pow.S
sysdeps/i386/fpu/e_powl.S
sysdeps/i386/fpu/e_remainder.S
sysdeps/i386/fpu/e_remainderf.S
sysdeps/i386/fpu/e_remainderl.S
sysdeps/i386/fpu/e_scalb.S
sysdeps/i386/fpu/e_scalbf.S
sysdeps/i386/fpu/e_scalbl.S
sysdeps/i386/fpu/e_sqrt.S
sysdeps/i386/fpu/e_sqrtf.S
sysdeps/i386/fpu/e_sqrtl.c
sysdeps/i386/i686/fpu/e_log.S
sysdeps/i386/i686/fpu/e_logl.S
sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
sysdeps/i386/i686/fpu/multiarch/e_expf.c
sysdeps/i386/i686/fpu/multiarch/e_log2f.c
sysdeps/i386/i686/fpu/multiarch/e_logf.c
sysdeps/i386/i686/fpu/multiarch/e_powf.c
sysdeps/ieee754/dbl-64/e_acosh.c
sysdeps/ieee754/dbl-64/e_asin.c
sysdeps/ieee754/dbl-64/e_atan2.c
sysdeps/ieee754/dbl-64/e_atanh.c
sysdeps/ieee754/dbl-64/e_cosh.c
sysdeps/ieee754/dbl-64/e_exp.c
sysdeps/ieee754/dbl-64/e_exp10.c
sysdeps/ieee754/dbl-64/e_exp2.c
sysdeps/ieee754/dbl-64/e_fmod.c
sysdeps/ieee754/dbl-64/e_gamma_r.c
sysdeps/ieee754/dbl-64/e_hypot.c
sysdeps/ieee754/dbl-64/e_j0.c
sysdeps/ieee754/dbl-64/e_j1.c
sysdeps/ieee754/dbl-64/e_jn.c
sysdeps/ieee754/dbl-64/e_lgamma_r.c
sysdeps/ieee754/dbl-64/e_log.c
sysdeps/ieee754/dbl-64/e_log10.c
sysdeps/ieee754/dbl-64/e_log2.c
sysdeps/ieee754/dbl-64/e_pow.c
sysdeps/ieee754/dbl-64/e_remainder.c
sysdeps/ieee754/dbl-64/e_sinh.c
sysdeps/ieee754/dbl-64/e_sqrt.c
sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c
sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
sysdeps/ieee754/float128/float128_private.h
sysdeps/ieee754/flt-32/e_acosf.c
sysdeps/ieee754/flt-32/e_acoshf.c
sysdeps/ieee754/flt-32/e_asinf.c
sysdeps/ieee754/flt-32/e_atan2f.c
sysdeps/ieee754/flt-32/e_atanhf.c
sysdeps/ieee754/flt-32/e_coshf.c
sysdeps/ieee754/flt-32/e_exp2f.c
sysdeps/ieee754/flt-32/e_expf.c
sysdeps/ieee754/flt-32/e_fmodf.c
sysdeps/ieee754/flt-32/e_gammaf_r.c
sysdeps/ieee754/flt-32/e_hypotf.c
sysdeps/ieee754/flt-32/e_j0f.c
sysdeps/ieee754/flt-32/e_j1f.c
sysdeps/ieee754/flt-32/e_jnf.c
sysdeps/ieee754/flt-32/e_lgammaf_r.c
sysdeps/ieee754/flt-32/e_log10f.c
sysdeps/ieee754/flt-32/e_log2f.c
sysdeps/ieee754/flt-32/e_logf.c
sysdeps/ieee754/flt-32/e_powf.c
sysdeps/ieee754/flt-32/e_remainderf.c
sysdeps/ieee754/flt-32/e_sinhf.c
sysdeps/ieee754/flt-32/e_sqrtf.c
sysdeps/ieee754/ldbl-128/e_acoshl.c
sysdeps/ieee754/ldbl-128/e_acosl.c
sysdeps/ieee754/ldbl-128/e_asinl.c
sysdeps/ieee754/ldbl-128/e_atan2l.c
sysdeps/ieee754/ldbl-128/e_atanhl.c
sysdeps/ieee754/ldbl-128/e_coshl.c
sysdeps/ieee754/ldbl-128/e_exp10l.c
sysdeps/ieee754/ldbl-128/e_expl.c
sysdeps/ieee754/ldbl-128/e_fmodl.c
sysdeps/ieee754/ldbl-128/e_gammal_r.c
sysdeps/ieee754/ldbl-128/e_hypotl.c
sysdeps/ieee754/ldbl-128/e_j0l.c
sysdeps/ieee754/ldbl-128/e_j1l.c
sysdeps/ieee754/ldbl-128/e_jnl.c
sysdeps/ieee754/ldbl-128/e_lgammal_r.c
sysdeps/ieee754/ldbl-128/e_log10l.c
sysdeps/ieee754/ldbl-128/e_log2l.c
sysdeps/ieee754/ldbl-128/e_logl.c
sysdeps/ieee754/ldbl-128/e_powl.c
sysdeps/ieee754/ldbl-128/e_remainderl.c
sysdeps/ieee754/ldbl-128/e_sinhl.c
sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
sysdeps/ieee754/ldbl-128ibm/e_acosl.c
sysdeps/ieee754/ldbl-128ibm/e_asinl.c
sysdeps/ieee754/ldbl-128ibm/e_atan2l.c
sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
sysdeps/ieee754/ldbl-128ibm/e_coshl.c
sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
sysdeps/ieee754/ldbl-128ibm/e_expl.c
sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
sysdeps/ieee754/ldbl-128ibm/e_j0l.c
sysdeps/ieee754/ldbl-128ibm/e_j1l.c
sysdeps/ieee754/ldbl-128ibm/e_jnl.c
sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
sysdeps/ieee754/ldbl-128ibm/e_log10l.c
sysdeps/ieee754/ldbl-128ibm/e_log2l.c
sysdeps/ieee754/ldbl-128ibm/e_logl.c
sysdeps/ieee754/ldbl-128ibm/e_powl.c
sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
sysdeps/ieee754/ldbl-96/e_acoshl.c
sysdeps/ieee754/ldbl-96/e_asinl.c
sysdeps/ieee754/ldbl-96/e_atanhl.c
sysdeps/ieee754/ldbl-96/e_coshl.c
sysdeps/ieee754/ldbl-96/e_gammal_r.c
sysdeps/ieee754/ldbl-96/e_hypotl.c
sysdeps/ieee754/ldbl-96/e_j0l.c
sysdeps/ieee754/ldbl-96/e_j1l.c
sysdeps/ieee754/ldbl-96/e_jnl.c
sysdeps/ieee754/ldbl-96/e_lgammal_r.c
sysdeps/ieee754/ldbl-96/e_sinhl.c
sysdeps/ieee754/libm-alias-finite.h [new file with mode: 0644]
sysdeps/m68k/coldfire/fpu/e_sqrt.c
sysdeps/m68k/coldfire/fpu/e_sqrtf.c
sysdeps/m68k/m680x0/fpu/e_acos.c
sysdeps/m68k/m680x0/fpu/e_acosf.c
sysdeps/m68k/m680x0/fpu/e_acosl.c
sysdeps/m68k/m680x0/fpu/e_asin.c
sysdeps/m68k/m680x0/fpu/e_asinf.c
sysdeps/m68k/m680x0/fpu/e_asinl.c
sysdeps/m68k/m680x0/fpu/e_atan2.c
sysdeps/m68k/m680x0/fpu/e_atanh.c
sysdeps/m68k/m680x0/fpu/e_atanhf.c
sysdeps/m68k/m680x0/fpu/e_atanhl.c
sysdeps/m68k/m680x0/fpu/e_cosh.c
sysdeps/m68k/m680x0/fpu/e_coshf.c
sysdeps/m68k/m680x0/fpu/e_coshl.c
sysdeps/m68k/m680x0/fpu/e_exp.c
sysdeps/m68k/m680x0/fpu/e_exp10.c
sysdeps/m68k/m680x0/fpu/e_exp10f.c
sysdeps/m68k/m680x0/fpu/e_exp10l.c
sysdeps/m68k/m680x0/fpu/e_exp2.c
sysdeps/m68k/m680x0/fpu/e_exp2f.c
sysdeps/m68k/m680x0/fpu/e_exp2l.c
sysdeps/m68k/m680x0/fpu/e_expf.c
sysdeps/m68k/m680x0/fpu/e_expl.c
sysdeps/m68k/m680x0/fpu/e_fmod.c
sysdeps/m68k/m680x0/fpu/e_fmodf.c
sysdeps/m68k/m680x0/fpu/e_fmodl.c
sysdeps/m68k/m680x0/fpu/e_log.c
sysdeps/m68k/m680x0/fpu/e_log10.c
sysdeps/m68k/m680x0/fpu/e_log10f.c
sysdeps/m68k/m680x0/fpu/e_log10l.c
sysdeps/m68k/m680x0/fpu/e_log2.c
sysdeps/m68k/m680x0/fpu/e_log2f.c
sysdeps/m68k/m680x0/fpu/e_log2l.c
sysdeps/m68k/m680x0/fpu/e_logf.c
sysdeps/m68k/m680x0/fpu/e_logl.c
sysdeps/m68k/m680x0/fpu/e_pow.c
sysdeps/m68k/m680x0/fpu/e_remainder.c
sysdeps/m68k/m680x0/fpu/e_remainderf.c
sysdeps/m68k/m680x0/fpu/e_remainderl.c
sysdeps/m68k/m680x0/fpu/e_scalb.c
sysdeps/m68k/m680x0/fpu/e_sinh.c
sysdeps/m68k/m680x0/fpu/e_sinhf.c
sysdeps/m68k/m680x0/fpu/e_sinhl.c
sysdeps/m68k/m680x0/fpu/e_sqrt.c
sysdeps/m68k/m680x0/fpu/e_sqrtf.c
sysdeps/m68k/m680x0/fpu/e_sqrtl.c
sysdeps/mips/fpu/e_sqrt.c
sysdeps/mips/fpu/e_sqrtf.c
sysdeps/mips/mips64/e_sqrtl.c
sysdeps/powerpc/fpu/e_hypot.c
sysdeps/powerpc/fpu/e_hypotf.c
sysdeps/powerpc/fpu/e_sqrt.c
sysdeps/powerpc/fpu/e_sqrtf.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c
sysdeps/riscv/e_sqrtl.c
sysdeps/riscv/rvd/e_sqrt.c
sysdeps/riscv/rvf/e_sqrtf.c
sysdeps/s390/fpu/e_sqrt.c
sysdeps/s390/fpu/e_sqrtf.c
sysdeps/s390/fpu/e_sqrtl.c
sysdeps/sparc/sparc32/e_sqrt.c
sysdeps/sparc/sparc64/fpu/e_sqrtl.c
sysdeps/x86/fpu/e_sqrtf128.c
sysdeps/x86_64/fpu/e_exp2l.S
sysdeps/x86_64/fpu/e_expl.S
sysdeps/x86_64/fpu/e_fmodl.S
sysdeps/x86_64/fpu/e_log10l.S
sysdeps/x86_64/fpu/e_log2l.S
sysdeps/x86_64/fpu/e_logl.S
sysdeps/x86_64/fpu/e_powl.S
sysdeps/x86_64/fpu/e_remainderl.S
sysdeps/x86_64/fpu/e_scalbl.S
sysdeps/x86_64/fpu/e_sqrt.c
sysdeps/x86_64/fpu/e_sqrtf.c
sysdeps/x86_64/fpu/multiarch/e_asin.c
sysdeps/x86_64/fpu/multiarch/e_atan2.c
sysdeps/x86_64/fpu/multiarch/e_exp.c
sysdeps/x86_64/fpu/multiarch/e_exp2f.c
sysdeps/x86_64/fpu/multiarch/e_expf.c
sysdeps/x86_64/fpu/multiarch/e_log.c
sysdeps/x86_64/fpu/multiarch/e_log2f.c
sysdeps/x86_64/fpu/multiarch/e_logf.c
sysdeps/x86_64/fpu/multiarch/e_pow.c
sysdeps/x86_64/fpu/multiarch/e_powf.c