From: Joseph Myers Date: Fri, 15 Sep 2017 17:12:02 +0000 (+0000) Subject: Use libm_alias_float in math/. X-Git-Tag: glibc-2.27~909 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bcdb315295f3bb73c082fc944d9e10a304adb0a;p=thirdparty%2Fglibc.git 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. --- diff --git a/ChangeLog b/ChangeLog index 97267d86c02..56f9c6809bf 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 06f1380b870..310eb2be3e4 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 97cac13cd6a..1bdb60e177b 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 7a8c87bf4f2..1921156b6bd 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 10ee32328e2..c6228946743 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 8d7ad71b706..271a65c683f 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 6045188bd82..fa9ce4339f4 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 b5d53168f23..e19f338f7a1 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 bacf2eb9d2d..8ae7fe32668 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 a2739d856ac..57a726ea5c8 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 8e6d2343eb8..82870ce5512 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 0ef4179bfa4..3c0cdaea27b 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 d44fb124379..badac364a9d 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 b2b416182b4..c4ffde90171 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 151c94b4dca..7b3f78376d5 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 82085d5222e..295c1620f7d 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 4423bd527aa..7cdacdf9214 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 ce1235baeec..39e818af7e9 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 39ff3b44689..bd2719c4b6a 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 1310ccf93bb..ac336e8b9b1 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 bd3d5048fc4..6c8c7e3857c 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 796850b4d94..e9ffddb7964 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