diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-09-18 17:51:33 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-09-18 17:51:33 +0000 |
commit | 92892fdbfa5e4d9f3cc25601767da064d0a8818a (patch) | |
tree | 7c41dfb788970d510b1537454ec52ce21f850772 /math | |
parent | 6cd380dd366d728da9f579eeb9f7f4c47f48e474 (diff) | |
download | glibc-92892fdbfa5e4d9f3cc25601767da064d0a8818a.tar glibc-92892fdbfa5e4d9f3cc25601767da064d0a8818a.tar.gz glibc-92892fdbfa5e4d9f3cc25601767da064d0a8818a.tar.bz2 glibc-92892fdbfa5e4d9f3cc25601767da064d0a8818a.zip |
Use libm_alias_ldouble in math/.
This patch converts libm function implementations in math/ from using
weak_alias to using libm_alias_ldouble to define public function
names, in cases where it would be appropriate to define _Float128 /
_Float64x aliases for those functions as well (in cases where either
or both of those types exist and have the same ABI as long double).
This eliminates many ldbl-opt wrappers round these function
implementations.
Tested for x86_64, and with build-many-glibcs.py. All installed
stripped shared libraries are unchanged except for libm.so on
powerpc64le. As noted for a previous patch, powerpc64le's use of
ldbl-opt means various long double functions get defined using
long_double_symbol which gives them an explicit symbol version in the
object files, and this patch results in some such functions using
weak_alias instead (because powerpc64le never had a previous version
of these functions for long double = double); both produce a valid
libm.so with the same public symbols at the same versions, but macros
expanding to call weak_alias is cleaner in this case.
* math/s_fmal.c: Include <libm-alias-ldouble.h>.
(fmal): Define using libm_alias_ldouble.
* math/w_acoshl_compat.c: Include <libm-alias-ldouble.h>.
(acoshl): Define using libm_alias_ldouble.
* math/w_acosl_compat.c: Include <libm-alias-ldouble.h>.
(acosl): Define using libm_alias_ldouble.
* math/w_asinl_compat.c: Include <libm-alias-ldouble.h>.
(asinl): Define using libm_alias_ldouble.
* math/w_atan2l_compat.c: Include <libm-alias-ldouble.h>.
(atan2l): Define using libm_alias_ldouble.
* math/w_atanhl_compat.c: Include <libm-alias-ldouble.h>.
(atanhl): Define using libm_alias_ldouble.
* math/w_coshl_compat.c: Include <libm-alias-ldouble.h>.
(coshl): Define using libm_alias_ldouble.
* math/w_exp10l_compat.c: Include <libm-alias-ldouble.h>.
(exp10l): Define using libm_alias_ldouble.
* math/w_exp2l_compat.c: Include <libm-alias-ldouble.h>.
(exp2l): Define using libm_alias_ldouble.
* math/w_expl_compat.c: Include <libm-alias-ldouble.h>.
(expl): Define using libm_alias_ldouble.
* math/w_fmodl_compat.c: Include <libm-alias-ldouble.h>.
(fmodl): Define using libm_alias_ldouble.
* math/w_hypotl_compat.c: Include <libm-alias-ldouble.h>.
(hypotl): Define using libm_alias_ldouble.
* math/w_j0l_compat.c: Include <libm-alias-ldouble.h>.
(j0l): Define using libm_alias_ldouble.
(y0l): Likewise.
* math/w_j1l_compat.c: Include <libm-alias-ldouble.h>.
(j1l): Define using libm_alias_ldouble.
(y1l): Likewise.
* math/w_jnl_compat.c: Include <libm-alias-ldouble.h>.
(jnl): Define using libm_alias_ldouble.
(ynl): Likewise.
* math/w_log10l_compat.c: Include <libm-alias-ldouble.h>.
(log10l): Define using libm_alias_ldouble.
* math/w_log2l_compat.c: Include <libm-alias-ldouble.h>.
(log2l): Define using libm_alias_ldouble.
* math/w_logl_compat.c: Include <libm-alias-ldouble.h>.
(logl): Define using libm_alias_ldouble.
* math/w_powl_compat.c: Include <libm-alias-ldouble.h>.
(powl): Define using libm_alias_ldouble.
* math/w_remainderl_compat.c: Include <libm-alias-ldouble.h>.
(remainderl): Define using libm_alias_ldouble.
* math/w_sinhl_compat.c: Include <libm-alias-ldouble.h>.
(sinhl): Define using libm_alias_ldouble.
* math/w_sqrtl_compat.c: Include <libm-alias-ldouble.h>.
(sqrtl): Define using libm_alias_ldouble.
* math/w_tgammal_compat.c: Include <libm-alias-ldouble.h>.
(tgammal): Define using libm_alias_ldouble.
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT]
(exp10l): Do not use long_double_symbol here.
* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
[LIBM_SVID_COMPAT] (remainderl): Likewise.
* sysdeps/ieee754/ldbl-opt/s_fmal.c: Remove.
* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
Diffstat (limited to 'math')
-rw-r--r-- | math/s_fmal.c | 3 | ||||
-rw-r--r-- | math/w_acoshl_compat.c | 3 | ||||
-rw-r--r-- | math/w_acosl_compat.c | 3 | ||||
-rw-r--r-- | math/w_asinl_compat.c | 3 | ||||
-rw-r--r-- | math/w_atan2l_compat.c | 3 | ||||
-rw-r--r-- | math/w_atanhl_compat.c | 3 | ||||
-rw-r--r-- | math/w_coshl_compat.c | 3 | ||||
-rw-r--r-- | math/w_exp10l_compat.c | 3 | ||||
-rw-r--r-- | math/w_exp2l_compat.c | 3 | ||||
-rw-r--r-- | math/w_expl_compat.c | 3 | ||||
-rw-r--r-- | math/w_fmodl_compat.c | 3 | ||||
-rw-r--r-- | math/w_hypotl_compat.c | 3 | ||||
-rw-r--r-- | math/w_j0l_compat.c | 5 | ||||
-rw-r--r-- | math/w_j1l_compat.c | 5 | ||||
-rw-r--r-- | math/w_jnl_compat.c | 5 | ||||
-rw-r--r-- | math/w_log10l_compat.c | 3 | ||||
-rw-r--r-- | math/w_log2l_compat.c | 3 | ||||
-rw-r--r-- | math/w_logl_compat.c | 3 | ||||
-rw-r--r-- | math/w_powl_compat.c | 3 | ||||
-rw-r--r-- | math/w_remainderl_compat.c | 3 | ||||
-rw-r--r-- | math/w_sinhl_compat.c | 3 | ||||
-rw-r--r-- | math/w_sqrtl_compat.c | 3 | ||||
-rw-r--r-- | math/w_tgammal_compat.c | 3 |
23 files changed, 49 insertions, 26 deletions
diff --git a/math/s_fmal.c b/math/s_fmal.c index ba15c6a26b..73d42e21e9 100644 --- a/math/s_fmal.c +++ b/math/s_fmal.c @@ -18,10 +18,11 @@ <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <libm-alias-ldouble.h> long double __fmal (long double x, long double y, long double z) { return (x * y) + z; } -weak_alias (__fmal, fmal) +libm_alias_ldouble (__fma, fma) diff --git a/math/w_acoshl_compat.c b/math/w_acoshl_compat.c index 79d0370eb3..1b82597e66 100644 --- a/math/w_acoshl_compat.c +++ b/math/w_acoshl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -32,5 +33,5 @@ __acoshl (long double x) return __ieee754_acoshl (x); } -weak_alias (__acoshl, acoshl) +libm_alias_ldouble (__acosh, acosh) #endif diff --git a/math/w_acosl_compat.c b/math/w_acosl_compat.c index 7d2f1835ae..d20c58b093 100644 --- a/math/w_acosl_compat.c +++ b/math/w_acosl_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -37,5 +38,5 @@ __acosl (long double x) return __ieee754_acosl (x); } -weak_alias (__acosl, acosl) +libm_alias_ldouble (__acos, acos) #endif diff --git a/math/w_asinl_compat.c b/math/w_asinl_compat.c index c9e1a340cc..5f7396d464 100644 --- a/math/w_asinl_compat.c +++ b/math/w_asinl_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -37,5 +38,5 @@ __asinl (long double x) return __ieee754_asinl (x); } -weak_alias (__asinl, asinl) +libm_alias_ldouble (__asin, asin) #endif diff --git a/math/w_atan2l_compat.c b/math/w_atan2l_compat.c index 9dc2b144ea..e7e9581b83 100644 --- a/math/w_atan2l_compat.c +++ b/math/w_atan2l_compat.c @@ -24,6 +24,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -40,5 +41,5 @@ __atan2l (long double y, long double x) __set_errno (ERANGE); return z; } -weak_alias (__atan2l, atan2l) +libm_alias_ldouble (__atan2, atan2) #endif diff --git a/math/w_atanhl_compat.c b/math/w_atanhl_compat.c index 837a6652b8..8ae9564e79 100644 --- a/math/w_atanhl_compat.c +++ b/math/w_atanhl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -35,5 +36,5 @@ __atanhl (long double x) return __ieee754_atanhl (x); } -weak_alias (__atanhl, atanhl) +libm_alias_ldouble (__atanh, atanh) #endif diff --git a/math/w_coshl_compat.c b/math/w_coshl_compat.c index 4dab6eff67..a97105020e 100644 --- a/math/w_coshl_compat.c +++ b/math/w_coshl_compat.c @@ -22,6 +22,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double @@ -34,5 +35,5 @@ __coshl (long double x) return z; } -weak_alias (__coshl, coshl) +libm_alias_ldouble (__cosh, cosh) #endif diff --git a/math/w_exp10l_compat.c b/math/w_exp10l_compat.c index 3d7d66d5af..64d8d79cf4 100644 --- a/math/w_exp10l_compat.c +++ b/math/w_exp10l_compat.c @@ -24,6 +24,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double @@ -37,7 +38,7 @@ __exp10l (long double x) return z; } -weak_alias (__exp10l, exp10l) +libm_alias_ldouble (__exp10, exp10) # if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) strong_alias (__exp10l, __pow10l) compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1); diff --git a/math/w_exp2l_compat.c b/math/w_exp2l_compat.c index 96d4b96c11..a132015866 100644 --- a/math/w_exp2l_compat.c +++ b/math/w_exp2l_compat.c @@ -5,6 +5,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double @@ -18,5 +19,5 @@ __exp2l (long double x) return z; } -weak_alias (__exp2l, exp2l) +libm_alias_ldouble (__exp2, exp2) #endif diff --git a/math/w_expl_compat.c b/math/w_expl_compat.c index ec076deaad..dda930405e 100644 --- a/math/w_expl_compat.c +++ b/math/w_expl_compat.c @@ -25,6 +25,7 @@ static char rcsid[] = "$NetBSD: $"; #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double __expl(long double x) /* wrapper exp */ @@ -41,5 +42,5 @@ long double __expl(long double x) /* wrapper exp */ # endif } hidden_def (__expl) -weak_alias (__expl, expl) +libm_alias_ldouble (__exp, exp) #endif diff --git a/math/w_fmodl_compat.c b/math/w_fmodl_compat.c index 3136e82d65..1db57671fd 100644 --- a/math/w_fmodl_compat.c +++ b/math/w_fmodl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT /* wrapper fmodl */ @@ -32,5 +33,5 @@ __fmodl (long double x, long double y) return __ieee754_fmodl (x, y); } -weak_alias (__fmodl, fmodl) +libm_alias_ldouble (__fmod, fmod) #endif diff --git a/math/w_hypotl_compat.c b/math/w_hypotl_compat.c index bc56d29a04..db5495103d 100644 --- a/math/w_hypotl_compat.c +++ b/math/w_hypotl_compat.c @@ -21,6 +21,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -35,5 +36,5 @@ __hypotl(long double x, long double y) return z; } -weak_alias (__hypotl, hypotl) +libm_alias_ldouble (__hypot, hypot) #endif diff --git a/math/w_j0l_compat.c b/math/w_j0l_compat.c index 76ec812729..aa6ce0dbbc 100644 --- a/math/w_j0l_compat.c +++ b/math/w_j0l_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -34,7 +35,7 @@ __j0l (long double x) return __ieee754_j0l (x); } -weak_alias (__j0l, j0l) +libm_alias_ldouble (__j0, j0) /* wrapper y0l */ @@ -63,5 +64,5 @@ __y0l (long double x) return __ieee754_y0l (x); } -weak_alias (__y0l, y0l) +libm_alias_ldouble (__y0, y0) #endif diff --git a/math/w_j1l_compat.c b/math/w_j1l_compat.c index c3acfdfe76..d3e9681ba4 100644 --- a/math/w_j1l_compat.c +++ b/math/w_j1l_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -34,7 +35,7 @@ __j1l (long double x) return __ieee754_j1l (x); } -weak_alias (__j1l, j1l) +libm_alias_ldouble (__j1, j1) /* wrapper y1l */ @@ -63,5 +64,5 @@ __y1l (long double x) return __ieee754_y1l (x); } -weak_alias (__y1l, y1l) +libm_alias_ldouble (__y1, y1) #endif diff --git a/math/w_jnl_compat.c b/math/w_jnl_compat.c index 7298c73a3b..e5c1d92cd4 100644 --- a/math/w_jnl_compat.c +++ b/math/w_jnl_compat.c @@ -47,6 +47,7 @@ static char rcsid[] = "$NetBSD: $"; #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double __jnl(int n, long double x) /* wrapper jnl */ @@ -66,7 +67,7 @@ long double __jnl(int n, long double x) /* wrapper jnl */ return z; # endif } -weak_alias (__jnl, jnl) +libm_alias_ldouble (__jn, jn) long double __ynl(int n, long double x) /* wrapper ynl */ { @@ -90,5 +91,5 @@ long double __ynl(int n, long double x) /* wrapper ynl */ return z; # endif } -weak_alias (__ynl, ynl) +libm_alias_ldouble (__yn, yn) #endif diff --git a/math/w_log10l_compat.c b/math/w_log10l_compat.c index 88d9c40354..2841570e8d 100644 --- a/math/w_log10l_compat.c +++ b/math/w_log10l_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __log10l (long double x) return __ieee754_log10l (x); } -weak_alias (__log10l, log10l) +libm_alias_ldouble (__log10, log10) #endif diff --git a/math/w_log2l_compat.c b/math/w_log2l_compat.c index cd367f2f51..87b58d8e16 100644 --- a/math/w_log2l_compat.c +++ b/math/w_log2l_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __log2l (long double x) return __ieee754_log2l (x); } -weak_alias (__log2l, log2l) +libm_alias_ldouble (__log2, log2) #endif diff --git a/math/w_logl_compat.c b/math/w_logl_compat.c index e37a17475e..237201ee2e 100644 --- a/math/w_logl_compat.c +++ b/math/w_logl_compat.c @@ -20,6 +20,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __logl (long double x) return __ieee754_logl (x); } -weak_alias (__logl, logl) +libm_alias_ldouble (__log, log) #endif diff --git a/math/w_powl_compat.c b/math/w_powl_compat.c index 9159f610d2..3679f840cf 100644 --- a/math/w_powl_compat.c +++ b/math/w_powl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -59,5 +60,5 @@ __powl (long double x, long double y) return z; } -weak_alias (__powl, powl) +libm_alias_ldouble (__pow, pow) #endif diff --git a/math/w_remainderl_compat.c b/math/w_remainderl_compat.c index c11ba24a8a..870c980a9f 100644 --- a/math/w_remainderl_compat.c +++ b/math/w_remainderl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -33,6 +34,6 @@ __remainderl (long double x, long double y) return __ieee754_remainderl (x, y); } -weak_alias (__remainderl, remainderl) +libm_alias_ldouble (__remainder, remainder) weak_alias (__remainderl, dreml) #endif diff --git a/math/w_sinhl_compat.c b/math/w_sinhl_compat.c index 348209860a..d65c2da906 100644 --- a/math/w_sinhl_compat.c +++ b/math/w_sinhl_compat.c @@ -21,6 +21,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double @@ -33,5 +34,5 @@ __sinhl (long double x) return z; } -weak_alias (__sinhl, sinhl) +libm_alias_ldouble (__sinh, sinh) #endif diff --git a/math/w_sqrtl_compat.c b/math/w_sqrtl_compat.c index b0afd1171c..0590f6d155 100644 --- a/math/w_sqrtl_compat.c +++ b/math/w_sqrtl_compat.c @@ -19,6 +19,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT @@ -31,5 +32,5 @@ __sqrtl (long double x) return __ieee754_sqrtl (x); } -weak_alias (__sqrtl, sqrtl) +libm_alias_ldouble (__sqrt, sqrt) #endif diff --git a/math/w_tgammal_compat.c b/math/w_tgammal_compat.c index c0e442955b..3695b7fbb3 100644 --- a/math/w_tgammal_compat.c +++ b/math/w_tgammal_compat.c @@ -22,6 +22,7 @@ #include <math.h> #include <math_private.h> #include <math-svid-compat.h> +#include <libm-alias-ldouble.h> #if LIBM_SVID_COMPAT long double @@ -44,5 +45,5 @@ __tgammal(long double x) } return local_signgam < 0 ? - y : y; } -weak_alias (__tgammal, tgammal) +libm_alias_ldouble (__tgamma, tgamma) #endif |