Use libm_alias_double in math/.
commit9ac44708881c086f27f86b36c20749052d079c8f
authorJoseph Myers <joseph@codesourcery.com>
Fri, 15 Sep 2017 23:10:02 +0000 (15 23:10 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 15 Sep 2017 23:10:02 +0000 (15 23:10 +0000)
tree70e2273135838595d52f2d367a777ab8a770380f
parentc67a2328c88fec0e91c646ad4a9d9edfb7140f0a
Use libm_alias_double in math/.

This patch converts libm function implementations in math/ from using
weak_alias to using libm_alias_double to define public function names,
in cases where it would be appropriate to define _Float64 / _Float32x
aliases for those functions as well.  This eliminates many
NO_LONG_DOUBLE conditionals and ldbl-opt wrappers round these function
implementations.

Tested for x86_64.  Also tested with build-many-glibcs.py.  Binary
differences seen are that the different order in which remainder and
drem symbols get defined as a result of this patch (the same source
file defines the same aliases, but in a different order of definition)
changes the order of symbols in the final libm.so when long double =
double, and for ldbl-opt configurations, the compat symbols for Bessel
functions were previously defined by e.g. "compat_symbol (libm, j0,
j0l, GLIBC_2_0)", which declares j0l as a compat symbol based on j0
and so makes j0l weak because j0 is weak, and are now defined
(indirectly via the relevant macros) based on e.g. __j0, so are no
longer weak because __j0 isn't weak.

* math/s_fma.c: Include <libm-alias-double.h>.
(fma): Define using libm_alias_double.
* math/s_nextafter.c: Include <libm-alias-double.h>.
(nextafter): Define using libm_alias_double.
* math/w_acos_compat.c: Include <libm-alias-double.h>.
(acos): Define using libm_alias_double.
* math/w_acosh_compat.c: Include <libm-alias-double.h>.
(aocsh): Define using libm_alias_double.
* math/w_asin_compat.c: Include <libm-alias-double.h>.
(asin): Define using libm_alias_double.
* math/w_atan2_compat.c: Include <libm-alias-double.h>.
(atan2): Define using libm_alias_double.
* math/w_atanh_compat.c: Include <libm-alias-double.h>.
(atanh): Define using libm_alias_double.
* math/w_cosh_compat.c: Include <libm-alias-double.h>.
(cosh): Define using libm_alias_double.
* math/w_exp10_compat.c: Include <libm-alias-double.h>.
(exp10): Define using libm_alias_double.
* math/w_exp2_compat.c: Include <libm-alias-double.h>.
(exp2): Define using libm_alias_double.
* math/w_exp_compat.c: Include <libm-alias-double.h>.
(exp): Define using libm_alias_double.
* math/w_fmod_compat.c: Include <libm-alias-double.h>.
(fmod): Define using libm_alias_double.
* math/w_hypot_compat.c: Include <libm-alias-double.h>.
(hypot): Define using libm_alias_double.
* math/w_j0_compat.c: Include <libm-alias-double.h>.
(j0): Define using libm_alias_double.
(y0): Likewise.
* math/w_j1_compat.c: Include <libm-alias-double.h>.
(j1): Define using libm_alias_double.
(y1): Likewise.
* math/w_jn_compat.c: Include <libm-alias-double.h>.
(jn): Define using libm_alias_double.
(yn): Likewise.
* math/w_log10_compat.c: Include <libm-alias-double.h>.
(log10): Define using libm_alias_double.
* math/w_log2_compat.c: Include <libm-alias-double.h>.
(log2): Define using libm_alias_double.
* math/w_log_compat.c: Include <libm-alias-double.h>.
(log): Define using libm_alias_double.
* math/w_pow_compat.c: Include <libm-alias-double.h>.
(pow): Define using libm_alias_double.
* math/w_remainder_compat.c: Include <libm-alias-double.h>.
(remainder): Define using libm_alias_double.
* math/w_sinh_compat.c: Include <libm-alias-double.h>.
(sinh): Define using libm_alias_double.
* math/w_sqrt_compat.c: Include <libm-alias-double.h>.
(sqrt): Define using libm_alias_double.
* math/w_tgamma_compat.c: Include <libm-alias-double.h>.
(tgamma): Define using libm_alias_double.
* sysdeps/ieee754/ldbl-opt/s_nextafter.c [LONG_DOUBLE_COMPAT(libm,
GLIBC_2_0)] (nextafterl): Do not define compat symbol here.
* sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
[LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (exp10l): Likewise.
* sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
[LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (remainderl): Likewise.
* sysdeps/ieee754/ldbl-opt/w_acos_compat.c: Remove.
* sysdeps/ieee754/ldbl-opt/w_acosh_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_asin_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atan2_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atanh_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_cosh_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_fmod_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_hypot_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j0_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j1_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_jn_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log10_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log2_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_pow_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sinh_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c: Likewise.
47 files changed:
ChangeLog
math/s_fma.c
math/s_nextafter.c
math/w_acos_compat.c
math/w_acosh_compat.c
math/w_asin_compat.c
math/w_atan2_compat.c
math/w_atanh_compat.c
math/w_cosh_compat.c
math/w_exp10_compat.c
math/w_exp2_compat.c
math/w_exp_compat.c
math/w_fmod_compat.c
math/w_hypot_compat.c
math/w_j0_compat.c
math/w_j1_compat.c
math/w_jn_compat.c
math/w_log10_compat.c
math/w_log2_compat.c
math/w_log_compat.c
math/w_pow_compat.c
math/w_remainder_compat.c
math/w_sinh_compat.c
math/w_sqrt_compat.c
math/w_tgamma_compat.c
sysdeps/ieee754/ldbl-opt/s_nextafter.c
sysdeps/ieee754/ldbl-opt/w_acos_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_acosh_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_asin_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_atan2_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_atanh_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_cosh_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
sysdeps/ieee754/ldbl-opt/w_exp_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_fmod_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_hypot_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_j0_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_j1_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_jn_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_log10_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_log2_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_log_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_pow_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
sysdeps/ieee754/ldbl-opt/w_sinh_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c [deleted file]
sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c [deleted file]