diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-11-29 21:25:41 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-11-29 21:25:41 +0000 |
commit | 34bb10aabfedb5198388693d17c747cb11fbfb4b (patch) | |
tree | 509cb337229128dedb9b92d4e5a41e89d38b52f6 /sysdeps/x86_64/fpu/multiarch | |
parent | 011fba7e4802051c7ed7e3b6fdafad407b17094b (diff) | |
download | glibc-34bb10aabfedb5198388693d17c747cb11fbfb4b.tar.gz |
Use libm_alias_float for x86_64.
Continuing the preparation for additional _FloatN / _FloatNx function
aliases, this patch makes x86_64 libm function implementations use
libm_alias_float to define function aliases, or libm_alias_float_other
where the main name is defined with versioned_symbol.
Tested with the glibc testsuite for x86_64, and tested with
build-many-glibcs.py for all its x86_64 configurations that installed
stripped shared libraries are unchanged by the patch.
* sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Include
<libm-alias-float.h>.
(exp2f): Define using libm_alias_float, or libm_alias_float_other
if [SHARED].
* sysdeps/x86_64/fpu/multiarch/e_expf.c: Include
<libm-alias-float.h>.
(exp2f): Define using libm_alias_float, or libm_alias_float_other
if [SHARED].
* sysdeps/x86_64/fpu/multiarch/e_log2f.c: Include
<libm-alias-float.h>.
(exp2f): Define using libm_alias_float, or libm_alias_float_other
if [SHARED].
* sysdeps/x86_64/fpu/multiarch/e_logf.c: Include
<libm-alias-float.h>.
(exp2f): Define using libm_alias_float, or libm_alias_float_other
if [SHARED].
* sysdeps/x86_64/fpu/multiarch/e_powf.c: Include
<libm-alias-float.h>.
(exp2f): Define using libm_alias_float, or libm_alias_float_other
if [SHARED].
* sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Include
<libm-alias-float.h>.
(ceilf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/multiarch/s_floorf.c: Include
<libm-alias-float.h>.
(floorf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Include
<libm-alias-float.h>.
(fmaf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Include
<libm-alias-float.h>.
(nearbyintf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/multiarch/s_rintf.c: Include
<libm-alias-float.h>.
(rintf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/multiarch/s_truncf.c: Include
<libm-alias-float.h>.
(truncf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_copysignf.S: Include <libm-alias-float.h>.
(copysignf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_cosf.S: Include <libm-alias-float.h>.
(cosf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_fabsf.c: Include <libm-alias-float.h>.
(fabsf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
(fmaxf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_fminf.S: Include <libm-alias-float.h>.
(fminf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_llrintf.S: Include <libm-alias-float.h>.
(llrintf): Define using libm_alias_float.
[!__ILP32__] (lrintf): Likewise.
* sysdeps/x86_64/fpu/s_sincosf.S: Include <libm-alias-float.h>.
(sincosf): Define using libm_alias_float.
* sysdeps/x86_64/fpu/s_sinf.S: Include <libm-alias-float.h>.
(sinf): Define using libm_alias_float.
* sysdeps/x86_64/x32/fpu/s_lrintf.S: Include <libm-alias-float.h>.
(lrintf): Define using libm_alias_float.
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_exp2f.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_expf.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_log2f.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_logf.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_powf.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_ceilf.c | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_floorf.c | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_fmaf.c | 3 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_rintf.c | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_truncf.c | 4 |
11 files changed, 37 insertions, 11 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c index 13cfcf9b8c..06764a2a9e 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c +++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + extern float __redirect_exp2f (float); #define SYMBOL_NAME exp2f @@ -26,8 +28,9 @@ libc_ifunc_redirected (__redirect_exp2f, __exp2f, IFUNC_SELECTOR ()); #ifdef SHARED # include <shlib-compat.h> versioned_symbol (libm, __exp2f, exp2f, GLIBC_2_27); +libm_alias_float_other (__exp2, exp2) #else -weak_alias (__exp2f, exp2f) +libm_alias_float (__exp2, exp2) #endif strong_alias (__exp2f, __ieee754_exp2f) diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf.c b/sysdeps/x86_64/fpu/multiarch/e_expf.c index 18451a0f77..0ac39a2a2f 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_expf.c +++ b/sysdeps/x86_64/fpu/multiarch/e_expf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + extern float __redirect_expf (float); #define SYMBOL_NAME expf @@ -29,8 +31,9 @@ __hidden_ver1 (__expf, __GI___expf, __redirect_expf) # include <shlib-compat.h> versioned_symbol (libm, __expf, expf, GLIBC_2_27); +libm_alias_float_other (__exp, exp) #else -weak_alias (__expf, expf) +libm_alias_float (__exp, exp) #endif strong_alias (__expf, __ieee754_expf) diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f.c b/sysdeps/x86_64/fpu/multiarch/e_log2f.c index be12c4529e..f0b20048ac 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log2f.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log2f.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + extern float __redirect_log2f (float); #define SYMBOL_NAME log2f @@ -29,8 +31,9 @@ __hidden_ver1 (__log2f, __GI___log2f, __redirect_log2f) # include <shlib-compat.h> versioned_symbol (libm, __log2f, log2f, GLIBC_2_27); +libm_alias_float_other (__log2, log2) #else -weak_alias (__log2f, log2f) +libm_alias_float (__log2, log2) #endif strong_alias (__log2f, __ieee754_log2f) diff --git a/sysdeps/x86_64/fpu/multiarch/e_logf.c b/sysdeps/x86_64/fpu/multiarch/e_logf.c index 6b29473f4c..c684bc9655 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_logf.c +++ b/sysdeps/x86_64/fpu/multiarch/e_logf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + extern float __redirect_logf (float); #define SYMBOL_NAME logf @@ -29,8 +31,9 @@ __hidden_ver1 (__logf, __GI___logf, __redirect_logf) # include <shlib-compat.h> versioned_symbol (libm, __logf, logf, GLIBC_2_27); +libm_alias_float_other (__log, log) #else -weak_alias (__logf, logf) +libm_alias_float (__log, log) #endif strong_alias (__logf, __ieee754_logf) diff --git a/sysdeps/x86_64/fpu/multiarch/e_powf.c b/sysdeps/x86_64/fpu/multiarch/e_powf.c index c110dbaffb..7e9cde08d0 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_powf.c +++ b/sysdeps/x86_64/fpu/multiarch/e_powf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define powf __redirect_powf #define __DECL_SIMD___redirect_powf #include <math.h> @@ -32,8 +34,9 @@ __hidden_ver1 (__powf, __GI___powf, __redirect_powf) # include <shlib-compat.h> versioned_symbol (libm, __powf, powf, GLIBC_2_27); +libm_alias_float_other (__pow, pow) #else -weak_alias (__powf, powf) +libm_alias_float (__pow, pow) #endif strong_alias (__powf, __ieee754_powf) diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c index 090de048b3..623e68e968 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define ceilf __redirect_ceilf #define __ceilf __redirect___ceilf #include <math.h> @@ -26,4 +28,4 @@ #include "ifunc-sse4_1.h" libc_ifunc_redirected (__redirect_ceilf, __ceilf, IFUNC_SELECTOR ()); -weak_alias (__ceilf, ceilf) +libm_alias_float (__ceil, ceil) diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf.c b/sysdeps/x86_64/fpu/multiarch/s_floorf.c index d6cf14da6e..a843b16e89 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_floorf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_floorf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define floorf __redirect_floorf #define __floorf __redirect___floorf #include <math.h> @@ -26,4 +28,4 @@ #include "ifunc-sse4_1.h" libc_ifunc_redirected (__redirect_floorf, __floorf, IFUNC_SELECTOR ()); -weak_alias (__floorf, floorf) +libm_alias_float (__floor, floor) diff --git a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c index 1ae227c1d4..1182796cf4 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c @@ -19,6 +19,7 @@ #include <config.h> #include <math.h> #include <init-arch.h> +#include <libm-alias-float.h> extern float __fmaf_sse2 (float x, float y, float z) attribute_hidden; @@ -42,7 +43,7 @@ __fmaf_fma4 (float x, float y, float z) libm_ifunc (__fmaf, HAS_ARCH_FEATURE (FMA_Usable) ? __fmaf_fma3 : (HAS_ARCH_FEATURE (FMA4_Usable) ? __fmaf_fma4 : __fmaf_sse2)); -weak_alias (__fmaf, fmaf) +libm_alias_float (__fma, fma) #define __fmaf __fmaf_sse2 diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c index e716c94037..4aba3ea72c 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define nearbyintf __redirect_nearbyintf #define __nearbyintf __redirect___nearbyintf #include <math.h> @@ -27,4 +29,4 @@ libc_ifunc_redirected (__redirect_nearbyintf, __nearbyintf, IFUNC_SELECTOR ()); -weak_alias (__nearbyintf, nearbyintf) +libm_alias_float (__nearbyint, nearbyint) diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf.c b/sysdeps/x86_64/fpu/multiarch/s_rintf.c index 88f3052f33..988993cf26 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_rintf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_rintf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define rintf __redirect_rintf #define __rintf __redirect___rintf #include <math.h> @@ -26,4 +28,4 @@ #include "ifunc-sse4_1.h" libc_ifunc_redirected (__redirect_rintf, __rintf, IFUNC_SELECTOR ()); -weak_alias (__rintf, rintf) +libm_alias_float (__rint, rint) diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf.c b/sysdeps/x86_64/fpu/multiarch/s_truncf.c index 6190c2ec78..a0531c3181 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_truncf.c +++ b/sysdeps/x86_64/fpu/multiarch/s_truncf.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <libm-alias-float.h> + #define truncf __redirect_truncf #define __truncf __redirect___truncf #include <math.h> @@ -26,4 +28,4 @@ #include "ifunc-sse4_1.h" libc_ifunc_redirected (__redirect_truncf, __truncf, IFUNC_SELECTOR ()); -weak_alias (__truncf, truncf) +libm_alias_float (__trunc, trunc) |