From 216933b2422f1379809d30fbf403c0b047631ad8 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 5 Dec 2017 00:26:26 +0000 Subject: Use libm_alias_float for powerpc. Continuing the preparation for additional _FloatN / _FloatNx function aliases, this patch makes powerpc libm function implementations use libm_alias_float to define function aliases. Tested with build-many-glibcs.py that installed stripped shared libraries are unchanged for all its hard-float powerpc configurations. * sysdeps/powerpc/fpu/s_cosf.c: Include . (cosf): Define using libm_alias_float. * sysdeps/powerpc/fpu/s_fabs.S: Include . (fabsf): Define using libm_alias_float. * sysdeps/powerpc/fpu/s_fmaf.S: Include . (fmaf): Define using libm_alias_float. * sysdeps/powerpc/fpu/s_rintf.c: Include . (rintf): Define using libm_alias_float. * sysdeps/powerpc/fpu/s_sinf.c: Include . (sinf): Define using libm_alias_float. * sysdeps/powerpc/power5+/fpu/s_modff.c: Include . (modff): Define using libm_alias_float. * sysdeps/powerpc/power7/fpu/s_logbf.c: Include . (logbf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_llroundf.c: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include . (lrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include . (lroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S: Include . (nearbyintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Include . (rintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c: Include . (logbf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c: Include . (lrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c: Include . (lroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c: Include . (modff): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Include . (lroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: Include . (lrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: Include . (lroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c: Include . (cosf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c: Include . (logbf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Include . (modff): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c: Include . (sinf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Include . (nearbyintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Include . (rintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Include . (ceilf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: Include . (floorf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S: Include . (roundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S: Include . (truncf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Include . (copysignf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S: Include . (cosf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Include . (llrintf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Include . (llroundf): Define using libm_alias_float. * sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S: Include . (sinf): Define using libm_alias_float. --- sysdeps/powerpc/powerpc32/fpu/s_ceilf.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_copysign.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_floorf.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_llrintf.c | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_llroundf.c | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_lrint.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_lround.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_rintf.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_roundf.S | 3 ++- sysdeps/powerpc/powerpc32/fpu/s_truncf.S | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) (limited to 'sysdeps/powerpc/powerpc32/fpu') diff --git a/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S index 9d8d8aa294..e9affd89f4 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S @@ -17,6 +17,7 @@ . */ #include +#include .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -71,5 +72,5 @@ ENTRY (__ceilf) blr END (__ceilf) -weak_alias (__ceilf, ceilf) +libm_alias_float (__ceil, ceil) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_copysign.S b/sysdeps/powerpc/powerpc32/fpu/s_copysign.S index 779dab6e6f..66ff136014 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_copysign.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_copysign.S @@ -21,6 +21,7 @@ #include #include +#include #include ENTRY(__copysign) @@ -44,8 +45,8 @@ L(0): fnabs fp1,fp1 libm_alias_double (__copysign, copysign) /* It turns out that it's safe to use this code even for single-precision. */ -weak_alias (__copysign,copysignf) strong_alias(__copysign,__copysignf) +libm_alias_float (__copysign, copysign) #if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0) compat_symbol (libc, __copysign, copysignl, GLIBC_2_0) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_floorf.S b/sysdeps/powerpc/powerpc32/fpu/s_floorf.S index b87e3bf33e..c0f19388a6 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_floorf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_floorf.S @@ -17,6 +17,7 @@ . */ #include +#include .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -71,5 +72,5 @@ ENTRY (__floorf) blr END (__floorf) -weak_alias (__floorf, floorf) +libm_alias_float (__floor, floor) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c index 46365452a8..865966b656 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c +++ b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c @@ -19,6 +19,7 @@ #include #include #include +#include long long int __llrintf (float x) @@ -43,4 +44,4 @@ __llrintf (float x) return (long long int) ((i0 & 0x80000000) != 0 ? -mant : mant); } } -weak_alias (__llrintf, llrintf) +libm_alias_float (__llrint, llrint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c index 55452bac73..1fefb07793 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c +++ b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c @@ -19,6 +19,7 @@ #include #include #include +#include /* Round to the nearest integer, with values exactly on a 0.5 boundary rounded away from zero, regardless of the current rounding mode. @@ -69,4 +70,4 @@ __llroundf (float x) } return xr; } -weak_alias (__llroundf, llroundf) +libm_alias_float (__llround, llround) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lrint.S b/sysdeps/powerpc/powerpc32/fpu/s_lrint.S index 2f4acbd093..1c21455633 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_lrint.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_lrint.S @@ -18,6 +18,7 @@ #include #include +#include #include /* long int[r3] __lrint (double x[fp1]) */ @@ -36,4 +37,4 @@ ENTRY (__lrint) libm_alias_double (__lrint, lrint) strong_alias (__lrint, __lrintf) -weak_alias (__lrint, lrintf) +libm_alias_float (__lrint, lrint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/fpu/s_lround.S index f26c580a43..1a3f39886f 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_lround.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_lround.S @@ -18,6 +18,7 @@ #include #include +#include #include .section .rodata.cst4,"aM",@progbits,4 @@ -119,4 +120,4 @@ ENTRY (__lround) libm_alias_double (__lround, lround) strong_alias (__lround, __lroundf) -weak_alias (__lround, lroundf) +libm_alias_float (__lround, lround) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S b/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S index fb4c6e4cee..a7f4dc0489 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S @@ -21,6 +21,7 @@ when it's coded in C. */ #include +#include /* float [fp1] nearbyintf(float [fp1] x) */ @@ -75,4 +76,4 @@ L(lessthanzero): blr END (__nearbyintf) -weak_alias (__nearbyintf, nearbyintf) +libm_alias_float (__nearbyint, nearbyint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S b/sysdeps/powerpc/powerpc32/fpu/s_rintf.S index 70e52e894d..9a15c338ec 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_rintf.S @@ -17,6 +17,7 @@ . */ #include +#include .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -61,5 +62,5 @@ ENTRY (__rintf) blr END (__rintf) -weak_alias (__rintf, rintf) +libm_alias_float (__rint, rint) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_roundf.S b/sysdeps/powerpc/powerpc32/fpu/s_roundf.S index 5daf84b598..8b44b1ea54 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_roundf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_roundf.S @@ -17,6 +17,7 @@ . */ #include +#include .section .rodata.cst8,"aM",@progbits,8 .align 3 @@ -91,5 +92,5 @@ ENTRY (__roundf ) blr END (__roundf) -weak_alias (__roundf, roundf) +libm_alias_float (__round, round) diff --git a/sysdeps/powerpc/powerpc32/fpu/s_truncf.S b/sysdeps/powerpc/powerpc32/fpu/s_truncf.S index 9b91e3f0a5..6ede26cbdc 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_truncf.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_truncf.S @@ -17,6 +17,7 @@ . */ #include +#include .section .rodata.cst4,"aM",@progbits,4 .align 2 @@ -78,5 +79,5 @@ ENTRY (__truncf) blr END (__truncf) -weak_alias (__truncf, truncf) +libm_alias_float (__trunc, trunc) -- cgit 1.4.1