From 5bcdb315295f3bb73c082fc944d9e10a304adb0a Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 15 Sep 2017 17:12:02 +0000 Subject: [PATCH] Use libm_alias_float in math/. This patch converts libm function implementations in math/ from using weak_alias to using libm_alias_float to define public function names, in cases where it would be appropriate to define _Float32 aliases for those functions as well. expf and exp2f are omitted from this patch, given the in-progress patches that would change their symbol versioning arrangements (at a later stage it will be necessary to add macros that can be used for functions with such symbol versioning arrangements - which will apply to lgammaf as well - but for the initial patches in this area I'm just dealing with easy cases, and any symbol versioning changes to these functions while the work is in progress can effectively just undo the libm_alias_* changes as regards those functions). Tested for x86_64. Also tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by the patch. * math/s_fmaf.c: Include . (fmaf): Define using libm_alias_float. * math/w_acosf_compat.c: Include . (acosf): Define using libm_alias_float. * math/w_acoshf_compat.c: Include . (acoshf): Define using libm_alias_float. * math/w_asinf_compat.c: Include . (asinf): Define using libm_alias_float. * math/w_atan2f_compat.c: Include . (atan2f): Define using libm_alias_float. * math/w_atanhf_compat.c: Include . (atanhf): Define using libm_alias_float. * math/w_coshf_compat.c: Include . (coshf): Define using libm_alias_float. * math/w_exp10f_compat.c: Include . (exp10f): Define using libm_alias_float. * math/w_fmodf_compat.c: Include . (fmodf): Define using libm_alias_float. * math/w_hypotf_compat.c: Include . (hypotf): Define using libm_alias_float. * math/w_j0f_compat.c: Include . (j0f): Define using libm_alias_float. (y0f): Likewise. * math/w_j1f_compat.c: Include . (j1f): Define using libm_alias_float. (y1f): Likewise. * math/w_jnf_compat.c: Include . (jnf): Define using libm_alias_float. (ynf): Likewise. * math/w_log10f_compat.c: Include . (log10f): Define using libm_alias_float. * math/w_log2f_compat.c: Include . (log2f): Define using libm_alias_float. * math/w_logf_compat.c: Include . (logf): Define using libm_alias_float. * math/w_powf_compat.c: Include . (powf): Define using libm_alias_float. * math/w_remainderf_compat.c: Include . (remainderf): Define using libm_alias_float. * math/w_sinhf_compat.c: Include . (sinhf): Define using libm_alias_float. * math/w_sqrtf_compat.c: Include . (sqrtf): Define using libm_alias_float. * math/w_tgammaf_compat.c: Include . (tgammaf): Define using libm_alias_float. --- ChangeLog | 48 ++++++++++++++++++++++++++++++++++++++++++++++ math/s_fmaf.c | 3 ++- math/w_acosf_compat.c | 3 ++- math/w_acoshf_compat.c | 3 ++- math/w_asinf_compat.c | 3 ++- math/w_atan2f_compat.c | 3 ++- math/w_atanhf_compat.c | 3 ++- math/w_coshf_compat.c | 3 ++- math/w_exp10f_compat.c | 3 ++- math/w_fmodf_compat.c | 3 ++- math/w_hypotf_compat.c | 3 ++- math/w_j0f_compat.c | 5 +++-- math/w_j1f_compat.c | 5 +++-- math/w_jnf_compat.c | 5 +++-- math/w_log10f_compat.c | 3 ++- math/w_log2f_compat.c | 3 ++- math/w_logf_compat.c | 3 ++- math/w_powf_compat.c | 3 ++- math/w_remainderf_compat.c | 3 ++- math/w_sinhf_compat.c | 3 ++- math/w_sqrtf_compat.c | 3 ++- math/w_tgammaf_compat.c | 3 ++- 22 files changed, 93 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97267d8..56f9c68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,51 @@ +2017-09-15 Joseph Myers + + * math/s_fmaf.c: Include . + (fmaf): Define using libm_alias_float. + * math/w_acosf_compat.c: Include . + (acosf): Define using libm_alias_float. + * math/w_acoshf_compat.c: Include . + (acoshf): Define using libm_alias_float. + * math/w_asinf_compat.c: Include . + (asinf): Define using libm_alias_float. + * math/w_atan2f_compat.c: Include . + (atan2f): Define using libm_alias_float. + * math/w_atanhf_compat.c: Include . + (atanhf): Define using libm_alias_float. + * math/w_coshf_compat.c: Include . + (coshf): Define using libm_alias_float. + * math/w_exp10f_compat.c: Include . + (exp10f): Define using libm_alias_float. + * math/w_fmodf_compat.c: Include . + (fmodf): Define using libm_alias_float. + * math/w_hypotf_compat.c: Include . + (hypotf): Define using libm_alias_float. + * math/w_j0f_compat.c: Include . + (j0f): Define using libm_alias_float. + (y0f): Likewise. + * math/w_j1f_compat.c: Include . + (j1f): Define using libm_alias_float. + (y1f): Likewise. + * math/w_jnf_compat.c: Include . + (jnf): Define using libm_alias_float. + (ynf): Likewise. + * math/w_log10f_compat.c: Include . + (log10f): Define using libm_alias_float. + * math/w_log2f_compat.c: Include . + (log2f): Define using libm_alias_float. + * math/w_logf_compat.c: Include . + (logf): Define using libm_alias_float. + * math/w_powf_compat.c: Include . + (powf): Define using libm_alias_float. + * math/w_remainderf_compat.c: Include . + (remainderf): Define using libm_alias_float. + * math/w_sinhf_compat.c: Include . + (sinhf): Define using libm_alias_float. + * math/w_sqrtf_compat.c: Include . + (sqrtf): Define using libm_alias_float. + * math/w_tgammaf_compat.c: Include . + (tgammaf): Define using libm_alias_float. + 2017-09-14 Joseph Myers * include/math.h (roundeven): Change hidden_proto call to diff --git a/math/s_fmaf.c b/math/s_fmaf.c index 06f1380..310eb2b 100644 --- a/math/s_fmaf.c +++ b/math/s_fmaf.c @@ -18,6 +18,7 @@ . */ #include +#include float __fmaf (float x, float y, float z) @@ -25,5 +26,5 @@ __fmaf (float x, float y, float z) return (x * y) + z; } #ifndef __fmaf -weak_alias (__fmaf, fmaf) +libm_alias_float (__fma, fma) #endif diff --git a/math/w_acosf_compat.c b/math/w_acosf_compat.c index 97cac13..1bdb60e 100644 --- a/math/w_acosf_compat.c +++ b/math/w_acosf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -37,5 +38,5 @@ __acosf (float x) return __ieee754_acosf (x); } -weak_alias (__acosf, acosf) +libm_alias_float (__acos, acos) #endif diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c index 7a8c87b..1921156 100644 --- a/math/w_acoshf_compat.c +++ b/math/w_acoshf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -32,5 +33,5 @@ __acoshf (float x) return __ieee754_acoshf (x); } -weak_alias (__acoshf, acoshf) +libm_alias_float (__acosh, acosh) #endif diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c index 10ee323..c622894 100644 --- a/math/w_asinf_compat.c +++ b/math/w_asinf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -37,5 +38,5 @@ __asinf (float x) return __ieee754_asinf (x); } -weak_alias (__asinf, asinf) +libm_alias_float (__asin, asin) #endif diff --git a/math/w_atan2f_compat.c b/math/w_atan2f_compat.c index 8d7ad71..271a65c 100644 --- a/math/w_atan2f_compat.c +++ b/math/w_atan2f_compat.c @@ -24,6 +24,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -40,5 +41,5 @@ __atan2f (float y, float x) __set_errno (ERANGE); return z; } -weak_alias (__atan2f, atan2f) +libm_alias_float (__atan2, atan2) #endif diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c index 6045188..fa9ce43 100644 --- a/math/w_atanhf_compat.c +++ b/math/w_atanhf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -35,5 +36,5 @@ __atanhf (float x) return __ieee754_atanhf (x); } -weak_alias (__atanhf, atanhf) +libm_alias_float (__atanh, atanh) #endif diff --git a/math/w_coshf_compat.c b/math/w_coshf_compat.c index b5d5316..e19f338 100644 --- a/math/w_coshf_compat.c +++ b/math/w_coshf_compat.c @@ -21,6 +21,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT float @@ -33,5 +34,5 @@ __coshf (float x) return z; } -weak_alias (__coshf, coshf) +libm_alias_float (__cosh, cosh) #endif diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c index bacf2eb..8ae7fe3 100644 --- a/math/w_exp10f_compat.c +++ b/math/w_exp10f_compat.c @@ -24,6 +24,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT float @@ -37,7 +38,7 @@ __exp10f (float x) return z; } -weak_alias (__exp10f, exp10f) +libm_alias_float (__exp10, exp10) # if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) strong_alias (__exp10f, __pow10f) compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1); diff --git a/math/w_fmodf_compat.c b/math/w_fmodf_compat.c index a2739d8..57a726e 100644 --- a/math/w_fmodf_compat.c +++ b/math/w_fmodf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT /* wrapper fmodf */ @@ -32,5 +33,5 @@ __fmodf (float x, float y) return __ieee754_fmodf (x, y); } -weak_alias (__fmodf, fmodf) +libm_alias_float (__fmod, fmod) #endif diff --git a/math/w_hypotf_compat.c b/math/w_hypotf_compat.c index 8e6d234..82870ce 100644 --- a/math/w_hypotf_compat.c +++ b/math/w_hypotf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -34,5 +35,5 @@ __hypotf(float x, float y) return z; } -weak_alias (__hypotf, hypotf) +libm_alias_float (__hypot, hypot) #endif diff --git a/math/w_j0f_compat.c b/math/w_j0f_compat.c index 0ef4179..3c0cdae 100644 --- a/math/w_j0f_compat.c +++ b/math/w_j0f_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -34,7 +35,7 @@ __j0f (float x) return __ieee754_j0f (x); } -weak_alias (__j0f, j0f) +libm_alias_float (__j0, j0) /* wrapper y0f */ @@ -64,5 +65,5 @@ __y0f (float x) return __ieee754_y0f (x); } -weak_alias (__y0f, y0f) +libm_alias_float (__y0, y0) #endif diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c index d44fb12..badac36 100644 --- a/math/w_j1f_compat.c +++ b/math/w_j1f_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -34,7 +35,7 @@ __j1f (float x) return __ieee754_j1f (x); } -weak_alias (__j1f, j1f) +libm_alias_float (__j1, j1) /* wrapper y1f */ @@ -64,5 +65,5 @@ __y1f (float x) return __ieee754_y1f (x); } -weak_alias (__y1f, y1f) +libm_alias_float (__y1, y1) #endif diff --git a/math/w_jnf_compat.c b/math/w_jnf_compat.c index b2b4161..c4ffde9 100644 --- a/math/w_jnf_compat.c +++ b/math/w_jnf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -34,7 +35,7 @@ __jnf (int n, float x) return __ieee754_jnf (n, x); } -weak_alias (__jnf, jnf) +libm_alias_float (__jn, jn) /* wrapper ynf */ @@ -64,5 +65,5 @@ __ynf (int n, float x) return __ieee754_ynf (n, x); } -weak_alias (__ynf, ynf) +libm_alias_float (__yn, yn) #endif diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c index 151c94b..7b3f783 100644 --- a/math/w_log10f_compat.c +++ b/math/w_log10f_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __log10f (float x) return __ieee754_log10f (x); } -weak_alias (__log10f, log10f) +libm_alias_float (__log10, log10) #endif diff --git a/math/w_log2f_compat.c b/math/w_log2f_compat.c index 82085d5..295c162 100644 --- a/math/w_log2f_compat.c +++ b/math/w_log2f_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __log2f (float x) return __ieee754_log2f (x); } -weak_alias (__log2f, log2f) +libm_alias_float (__log2, log2) #endif diff --git a/math/w_logf_compat.c b/math/w_logf_compat.c index 4423bd5..7cdacdf 100644 --- a/math/w_logf_compat.c +++ b/math/w_logf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -43,5 +44,5 @@ __logf (float x) return __ieee754_logf (x); } -weak_alias (__logf, logf) +libm_alias_float (__log, log) #endif diff --git a/math/w_powf_compat.c b/math/w_powf_compat.c index ce1235b..39e818a 100644 --- a/math/w_powf_compat.c +++ b/math/w_powf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -59,5 +60,5 @@ __powf (float x, float y) return z; } -weak_alias (__powf, powf) +libm_alias_float (__pow, pow) #endif diff --git a/math/w_remainderf_compat.c b/math/w_remainderf_compat.c index 39ff3b4..bd2719c 100644 --- a/math/w_remainderf_compat.c +++ b/math/w_remainderf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -33,6 +34,6 @@ __remainderf (float x, float y) return __ieee754_remainderf (x, y); } -weak_alias (__remainderf, remainderf) +libm_alias_float (__remainder, remainder) weak_alias (__remainderf, dremf) #endif diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c index 1310ccf..ac336e8 100644 --- a/math/w_sinhf_compat.c +++ b/math/w_sinhf_compat.c @@ -20,6 +20,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT float @@ -32,5 +33,5 @@ __sinhf (float x) return z; } -weak_alias (__sinhf, sinhf) +libm_alias_float (__sinh, sinh) #endif diff --git a/math/w_sqrtf_compat.c b/math/w_sqrtf_compat.c index bd3d504..6c8c7e3 100644 --- a/math/w_sqrtf_compat.c +++ b/math/w_sqrtf_compat.c @@ -19,6 +19,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT @@ -31,5 +32,5 @@ __sqrtf (float x) return __ieee754_sqrtf (x); } -weak_alias (__sqrtf, sqrtf) +libm_alias_float (__sqrt, sqrt) #endif diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c index 796850b..e9ffddb 100644 --- a/math/w_tgammaf_compat.c +++ b/math/w_tgammaf_compat.c @@ -17,6 +17,7 @@ #include #include #include +#include #if LIBM_SVID_COMPAT float @@ -43,5 +44,5 @@ __tgammaf(float x) } return local_signgam < 0 ? - y : y; } -weak_alias (__tgammaf, tgammaf) +libm_alias_float (__tgamma, tgamma) #endif -- 2.7.4