diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-09-15 23:10:02 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-09-15 23:10:02 +0000 |
commit | 9ac44708881c086f27f86b36c20749052d079c8f (patch) | |
tree | 70e2273135838595d52f2d367a777ab8a770380f /ChangeLog | |
parent | c67a2328c88fec0e91c646ad4a9d9edfb7140f0a (diff) | |
download | glibc-9ac44708881c086f27f86b36c20749052d079c8f.zip glibc-9ac44708881c086f27f86b36c20749052d079c8f.tar.gz glibc-9ac44708881c086f27f86b36c20749052d079c8f.tar.bz2 |
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 77 |
1 files changed, 77 insertions, 0 deletions
@@ -1,5 +1,82 @@ 2017-09-15 Joseph Myers <joseph@codesourcery.com> + * 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. + * math/e_acoshl.c: Remove. * math/e_acosl.c: Likewise. * math/e_asinl.c: Likewise. |