Use libm_alias_double for some dbl-64 functions.
commit1e2bffd05c36a9be30d7092d6593a9e9aa009ada
authorJoseph Myers <joseph@codesourcery.com>
Fri, 29 Sep 2017 23:54:33 +0000 (29 23:54 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 29 Sep 2017 23:54:33 +0000 (29 23:54 +0000)
tree58c96efbf24f98615dee97efafe6528b3d47e8b5
parent8172aad937f52fe4ae891a206492150815791f2a
Use libm_alias_double for some dbl-64 functions.

Continuing the move of libm aliases to common macros that can create
_FloatN / _FloatNx aliases in future, this patch converts some dbl-64
functions to using libm_alias_double, thereby eliminating the need for
some ldbl-opt wrappers.

This patch deliberately limits what functions are converted so that it
can be verified by comparison of stipped binaries.  Specifically, atan
and tan are excluded because they first need converting to being weak
aliases; fma is omitted as it has additional complications with
versions in other directories (removing the ldbl-opt version can
e.g. cause the ldbl-128 version to be used instead of dbl-64); and
functions that have both dbl-64/wordsize-64 and ldbl-opt versions are
excluded because ldbl-opt currently always wraps dbl-64 function
versions, so changing those will result in platforms using both
ldbl-opt and dbl-64/wordsize-64 (i.e. alpha) starting to use the
dbl-64/wordsize-64 versions of those functions (which is good, as an
optimization, but still best separated from the present patch to get
better validation).

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by the patch.

* sysdeps/ieee754/dbl-64/s_asinh.c: Include <libm-alias-double.h>.
(asinh): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_cbrt.c: Include <libm-alias-double.h>.
(cbrt): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_copysign.c: Include
<libm-alias-double.h>.
(copysign): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_erf.c: Include <libm-alias-double.h>.
(erf): Define using libm_alias_double.
(erfc): Likewise.
* sysdeps/ieee754/dbl-64/s_expm1.c: Include <libm-alias-double.h>.
(expm1): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_fabs.c: Include <libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_fromfp.c (fromfp): Define using
libm_alias_double.
* sysdeps/ieee754/dbl-64/s_fromfp_main.c: Include
<libm-alias-double.h>.
* sysdeps/ieee754/dbl-64/s_fromfpx.c (fromfpx): Define using
libm_alias_double.
* sysdeps/ieee754/dbl-64/s_getpayload.c: Include
<libm-alias-double.h>.
(getpayload): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_llrint.c: Include
<libm-alias-double.h>.
(llrint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_lrint.c: Include <libm-alias-double.h>.
(lrint): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_nextup.c: Include
<libm-alias-double.h>.
(nextup): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_roundeven.c: Include
<libm-alias-double.h>.
(roundeven): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_setpayload.c (setpayload): Define using
libm_alias_double.
* sysdeps/ieee754/dbl-64/s_setpayload_main.c: Include
<libm-alias-double.h>.
* sysdeps/ieee754/dbl-64/s_setpayloadsig.c (setpayloadsig): Define
using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_sin.c: Include <libm-alias-double.h>.
(cos): Define using libm_alias_double.
(sin): Likewise.
* sysdeps/ieee754/dbl-64/s_sincos.c: Include
<libm-alias-double.h>.
(sincos): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_tanh.c: Include <libm-alias-double.h>.
(tanh): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_totalorder.c: Include
<libm-alias-double.h>.
(totalorder): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
<libm-alias-double.h>.
(totalordermag): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/s_ufromfp.c (ufromfp): Define using
libm_alias_double.
* sysdeps/ieee754/dbl-64/s_ufromfpx.c (ufromfpx): Define using
libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Include
<libm-alias-double.h>.
(getpayload): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Include
<libm-alias-double.h>.
(roundeven): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Include
<libm-alias-double.h>.
* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
<libm-alias-double.h>.
(totalorder): Define using libm_alias_double.
* sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
<libm-alias-double.h>.
(totalordermag): Define using libm_alias_double.
* sysdeps/ieee754/ldbl-opt/s_copysign.c (copysignl): Only define
libc compat symbol here.
* sysdeps/ieee754/ldbl-opt/s_asinh.c: Remove file.
* sysdeps/ieee754/ldbl-opt/s_cbrt.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_erf.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_expm1.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_fabs.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_llrint.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_lrint.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_sin.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_sincos.c: Likewise.
* sysdeps/ieee754/ldbl-opt/s_tanh.c: Likewise.
41 files changed:
ChangeLog
sysdeps/ieee754/dbl-64/s_asinh.c
sysdeps/ieee754/dbl-64/s_cbrt.c
sysdeps/ieee754/dbl-64/s_copysign.c
sysdeps/ieee754/dbl-64/s_erf.c
sysdeps/ieee754/dbl-64/s_expm1.c
sysdeps/ieee754/dbl-64/s_fabs.c
sysdeps/ieee754/dbl-64/s_fromfp.c
sysdeps/ieee754/dbl-64/s_fromfp_main.c
sysdeps/ieee754/dbl-64/s_fromfpx.c
sysdeps/ieee754/dbl-64/s_getpayload.c
sysdeps/ieee754/dbl-64/s_llrint.c
sysdeps/ieee754/dbl-64/s_lrint.c
sysdeps/ieee754/dbl-64/s_nextup.c
sysdeps/ieee754/dbl-64/s_roundeven.c
sysdeps/ieee754/dbl-64/s_setpayload.c
sysdeps/ieee754/dbl-64/s_setpayload_main.c
sysdeps/ieee754/dbl-64/s_setpayloadsig.c
sysdeps/ieee754/dbl-64/s_sin.c
sysdeps/ieee754/dbl-64/s_sincos.c
sysdeps/ieee754/dbl-64/s_tanh.c
sysdeps/ieee754/dbl-64/s_totalorder.c
sysdeps/ieee754/dbl-64/s_totalordermag.c
sysdeps/ieee754/dbl-64/s_ufromfp.c
sysdeps/ieee754/dbl-64/s_ufromfpx.c
sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
sysdeps/ieee754/ldbl-opt/s_asinh.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_cbrt.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_copysign.c
sysdeps/ieee754/ldbl-opt/s_erf.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_expm1.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_fabs.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_llrint.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_lrint.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_sin.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_sincos.c [deleted file]
sysdeps/ieee754/ldbl-opt/s_tanh.c [deleted file]