diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2017-12-01 23:09:47 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2017-12-01 23:09:47 +0000 |
| commit | 51ea3b2042ae5012c8e93142baf2e4e84909ff5f (patch) | |
| tree | 335c4c7454117833e7bfce066aedb0f5008b43d0 | |
| parent | ec2cf3f4445af7d729308350edf1e890eeebdd1d (diff) | |
| download | glibc-51ea3b2042ae5012c8e93142baf2e4e84909ff5f.tar.xz glibc-51ea3b2042ae5012c8e93142baf2e4e84909ff5f.zip | |
Ues libm_alias_double for various powerpc functions.
Continuing the preparation for additional _FloatN / _FloatNx function
aliases, this patch various powerpc functions use libm_alias_double to
define function aliases (with consequent removal of the need for local
compat symbol handling). (The present patch excludes the changes to
some functions where such changes could result in differences in
installed stripped shared libraries because of changes to the exact
ordering or properties of symbols in individual .os files.)
Tested with build-many-glibcs.py that installed stripped shared
libraries are unchanged for all its hard-float powerpc configurations.
* sysdeps/powerpc/fpu/s_rint.c: Include <libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/powerpc/power5+/fpu/s_modf.c: Include
<libm-alias-double.h>.
(modf): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_floor.S: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_rint.S: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_round.S: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c:
Include <libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Include
<libm-alias-double.h>.
(modf): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c:
Include <libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c:
Include <libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Include
<libm-alias-double.h>.
(modf): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_floor.S: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_rint.S: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_round.S: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: Include
<libm-alias-double.h>.
(round): Define using libm_alias_double.
* sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
33 files changed, 163 insertions, 287 deletions
@@ -1,5 +1,101 @@ 2017-12-01 Joseph Myers <joseph@codesourcery.com> + * sysdeps/powerpc/fpu/s_rint.c: Include <libm-alias-double.h>. + (rint): Define using libm_alias_double. + * sysdeps/powerpc/power5+/fpu/s_modf.c: Include + <libm-alias-double.h>. + (modf): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_floor.S: Include + <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Include + <libm-alias-double.h>. + (nearbyint): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Include + <libm-alias-double.h>. + (rint): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_round.S: Include + <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Include + <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c: + Include <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Include + <libm-alias-double.h>. + (modf): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c: + Include <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c: + Include <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: Include + <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S: Include + <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S: Include + <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Include + <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Include + <libm-alias-double.h>. + (modf): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Include + <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Include + <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_floor.S: Include + <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Include + <libm-alias-double.h>. + (nearbyint): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Include + <libm-alias-double.h>. + (rint): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_round.S: Include + <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Include + <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Include + <libm-alias-double.h>. + (ceil): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Include + <libm-alias-double.h>. + (floor): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: Include + <libm-alias-double.h>. + (round): Define using libm_alias_double. + * sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: Include + <libm-alias-double.h>. + (trunc): Define using libm_alias_double. + * sysdeps/powerpc/fpu/s_fabs.S: Include <libm-alias-double.h>. (fabs): Define using libm_alias_double. * sysdeps/powerpc/fpu/s_fma.S: Include <libm-alias-double.h>. diff --git a/sysdeps/powerpc/fpu/s_rint.c b/sysdeps/powerpc/fpu/s_rint.c index a96140b2c9..b382b10686 100644 --- a/sysdeps/powerpc/fpu/s_rint.c +++ b/sysdeps/powerpc/fpu/s_rint.c @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <math.h> +#include <libm-alias-double.h> double __rint (double x) @@ -39,8 +40,4 @@ __rint (double x) return x; } -weak_alias (__rint, rint) -#ifdef NO_LONG_DOUBLE -strong_alias (__rint, __rintl) -weak_alias (__rint, rintl) -#endif +libm_alias_double (__rint, rint) diff --git a/sysdeps/powerpc/power5+/fpu/s_modf.c b/sysdeps/powerpc/power5+/fpu/s_modf.c index ee0c62874b..f0e7dbee01 100644 --- a/sysdeps/powerpc/power5+/fpu/s_modf.c +++ b/sysdeps/powerpc/power5+/fpu/s_modf.c @@ -18,6 +18,7 @@ #include <math.h> #include <math_private.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> double __modf (double x, double *iptr) @@ -44,15 +45,7 @@ __modf (double x, double *iptr) return __copysign (x - *iptr, x); } } -weak_alias (__modf, modf) -#ifdef NO_LONG_DOUBLE -strong_alias (__modf, __modfl) -weak_alias (__modf, modfl) -#endif -#if IS_IN (libm) -# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __modf, modfl, GLIBC_2_0); -# endif -#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +libm_alias_double (__modf, modf) +#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __modf, modfl, GLIBC_2_0); #endif diff --git a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S b/sysdeps/powerpc/powerpc32/fpu/s_ceil.S index 51b8c21027..64ec125782 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_ceil.S @@ -18,6 +18,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -72,12 +73,4 @@ ENTRY (__ceil) blr END (__ceil) -weak_alias (__ceil, ceil) - -#ifdef NO_LONG_DOUBLE -weak_alias (__ceil, ceill) -strong_alias (__ceil, __ceill) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __ceil, ceill, GLIBC_2_0) -#endif +libm_alias_double (__ceil, ceil) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_floor.S b/sysdeps/powerpc/powerpc32/fpu/s_floor.S index 90a1b184df..3eaf8d3fa3 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_floor.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_floor.S @@ -18,6 +18,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -72,12 +73,4 @@ ENTRY (__floor) blr END (__floor) -weak_alias (__floor, floor) - -#ifdef NO_LONG_DOUBLE -weak_alias (__floor, floorl) -strong_alias (__floor, __floorl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __floor, floorl, GLIBC_2_0) -#endif +libm_alias_double (__floor, floor) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S b/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S index df590e08bd..296454330f 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S @@ -22,6 +22,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> /* double [fp1] nearbyint(double [fp1] x) */ @@ -76,12 +77,4 @@ L(lessthanzero): blr END (__nearbyint) -weak_alias (__nearbyint, nearbyint) - -#ifdef NO_LONG_DOUBLE -weak_alias (__nearbyint, nearbyintl) -strong_alias (__nearbyint, __nearbyintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1) -#endif +libm_alias_double (__nearbyint, nearbyint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rint.S b/sysdeps/powerpc/powerpc32/fpu/s_rint.S index a1c3116447..30f3b60a1b 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_rint.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_rint.S @@ -21,6 +21,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -65,12 +66,4 @@ ENTRY (__rint) blr END (__rint) -weak_alias (__rint, rint) - -#ifdef NO_LONG_DOUBLE -weak_alias (__rint, rintl) -strong_alias (__rint, __rintl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __rint, rintl, GLIBC_2_0) -#endif +libm_alias_double (__rint, rint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_round.S b/sysdeps/powerpc/powerpc32/fpu/s_round.S index f539890b17..0704ad9676 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_round.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_round.S @@ -18,6 +18,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .section .rodata.cst8,"aM",@progbits,8 .align 2 @@ -93,12 +94,4 @@ ENTRY (__round) blr END (__round) -weak_alias (__round, round) - -#ifdef NO_LONG_DOUBLE -weak_alias (__round, roundl) -strong_alias (__round, __roundl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __round, roundl, GLIBC_2_1) -#endif +libm_alias_double (__round, round) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_trunc.S b/sysdeps/powerpc/powerpc32/fpu/s_trunc.S index 85d292c03c..6ab9d39231 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_trunc.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_trunc.S @@ -18,6 +18,7 @@ #include <sysdep.h> #include <math_ldbl_opt.h> +#include <libm-alias-double.h> .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -79,12 +80,4 @@ ENTRY (__trunc) blr END (__trunc) -weak_alias (__trunc, trunc) - -#ifdef NO_LONG_DOUBLE -weak_alias (__trunc, truncl) -strong_alias (__trunc, __truncl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) -compat_symbol (libm, __trunc, truncl, GLIBC_2_1) -#endif +libm_alias_double (__trunc, trunc) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c index 4e3d980ce6..1c57b133d6 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c @@ -20,6 +20,7 @@ #include <math_ldbl_opt.h> #include <shlib-compat.h> #include "init-arch.h" +#include <libm-alias-double.h> extern __typeof (__ceil) __ceil_ppc32 attribute_hidden; extern __typeof (__ceil) __ceil_power5plus attribute_hidden; @@ -29,12 +30,4 @@ libc_ifunc (__ceil, ? __ceil_power5plus : __ceil_ppc32); -weak_alias (__ceil, ceil) - -#ifdef NO_LONG_DOUBLE -strong_alias (__ceil, __ceill) -weak_alias (__ceil, ceill) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __ceil, ceill, GLIBC_2_0); |
