diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-09-29 23:54:33 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-09-29 23:54:33 +0000 |
commit | 1e2bffd05c36a9be30d7092d6593a9e9aa009ada (patch) | |
tree | 58c96efbf24f98615dee97efafe6528b3d47e8b5 /sysdeps/ieee754/ldbl-opt | |
parent | 8172aad937f52fe4ae891a206492150815791f2a (diff) | |
download | glibc-1e2bffd05c36a9be30d7092d6593a9e9aa009ada.tar.gz glibc-1e2bffd05c36a9be30d7092d6593a9e9aa009ada.tar.xz glibc-1e2bffd05c36a9be30d7092d6593a9e9aa009ada.zip |
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.
Diffstat (limited to 'sysdeps/ieee754/ldbl-opt')
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_asinh.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_cbrt.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_copysign.c | 6 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_erf.c | 6 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_expm1.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_fabs.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_llrint.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_lrint.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_sin.c | 15 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_sincos.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_tanh.c | 5 |
11 files changed, 1 insertions, 66 deletions
diff --git a/sysdeps/ieee754/ldbl-opt/s_asinh.c b/sysdeps/ieee754/ldbl-opt/s_asinh.c deleted file mode 100644 index e9bcfaea62..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_asinh.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_asinh.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __asinh, asinhl, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_cbrt.c b/sysdeps/ieee754/ldbl-opt/s_cbrt.c deleted file mode 100644 index cdc635771e..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_cbrt.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_cbrt.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __cbrt, cbrtl, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_copysign.c b/sysdeps/ieee754/ldbl-opt/s_copysign.c index f4303f5768..8d42a181df 100644 --- a/sysdeps/ieee754/ldbl-opt/s_copysign.c +++ b/sysdeps/ieee754/ldbl-opt/s_copysign.c @@ -1,9 +1,5 @@ #include <math_ldbl_opt.h> #include <sysdeps/ieee754/dbl-64/s_copysign.c> -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __copysign, copysignl, GLIBC_2_0); -# endif -#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); #endif diff --git a/sysdeps/ieee754/ldbl-opt/s_erf.c b/sysdeps/ieee754/ldbl-opt/s_erf.c deleted file mode 100644 index 76f1baa5ca..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_erf.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_erf.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __erf, erfl, GLIBC_2_0); -compat_symbol (libm, __erfc, erfcl, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_expm1.c b/sysdeps/ieee754/ldbl-opt/s_expm1.c deleted file mode 100644 index ef9b5956db..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_expm1.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_expm1.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __expm1, expm1l, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_fabs.c b/sysdeps/ieee754/ldbl-opt/s_fabs.c deleted file mode 100644 index e7c92187e9..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_fabs.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_fabs.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __fabs, fabsl, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_llrint.c b/sysdeps/ieee754/ldbl-opt/s_llrint.c deleted file mode 100644 index e6311972e1..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_llrint.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_llrint.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __llrint, llrintl, GLIBC_2_1); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_lrint.c b/sysdeps/ieee754/ldbl-opt/s_lrint.c deleted file mode 100644 index b7af812846..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_lrint.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_lrint.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __lrint, lrintl, GLIBC_2_1); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_sin.c b/sysdeps/ieee754/ldbl-opt/s_sin.c deleted file mode 100644 index 6932ccc080..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_sin.c +++ /dev/null @@ -1,15 +0,0 @@ -/* dbl-64/s_sin.c uses NAN and sincos identifiers internally. */ -#define sincos sincos_disable -/* These definitions needed for proper unfolding of __MATHDECL_VEC. */ -#define __DECL_SIMD_sincos_disable -#define __DECL_SIMD_sincos_disablef -#define __DECL_SIMD_sincos_disablel -#define __DECL_SIMD_sincos_disablef128 -#include <math_ldbl_opt.h> -#undef NAN -#undef sincos -#include <sysdeps/ieee754/dbl-64/s_sin.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __sin, sinl, GLIBC_2_0); -compat_symbol (libm, __cos, cosl, GLIBC_2_0); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_sincos.c b/sysdeps/ieee754/ldbl-opt/s_sincos.c deleted file mode 100644 index 6d2a48f25b..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_sincos.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_sincos.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __sincos, sincosl, GLIBC_2_1); -#endif diff --git a/sysdeps/ieee754/ldbl-opt/s_tanh.c b/sysdeps/ieee754/ldbl-opt/s_tanh.c deleted file mode 100644 index e763bbde77..0000000000 --- a/sysdeps/ieee754/ldbl-opt/s_tanh.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <math_ldbl_opt.h> -#include <sysdeps/ieee754/dbl-64/s_tanh.c> -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __tanh, tanhl, GLIBC_2_0); -#endif |