aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-01 23:09:47 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-01 23:09:47 +0000
commit51ea3b2042ae5012c8e93142baf2e4e84909ff5f (patch)
tree335c4c7454117833e7bfce066aedb0f5008b43d0
parentec2cf3f4445af7d729308350edf1e890eeebdd1d (diff)
downloadglibc-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.
-rw-r--r--ChangeLog96
-rw-r--r--sysdeps/powerpc/fpu/s_rint.c7
-rw-r--r--sysdeps/powerpc/power5+/fpu/s_modf.c13
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_ceil.S11
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_floor.S11
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S11
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_rint.S11
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_round.S11
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_trunc.S11
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c11
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c11
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c13
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c11
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c11
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S11
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S11
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S11
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c13
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_ceil.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_floor.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rint.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_round.S11
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_trunc.S11
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S11
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S11
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S11
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S11
33 files changed, 163 insertions, 287 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b13d0dc20..27b49cd1b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);