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/power4/fpu/multiarch/s_ceilf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S | 3 ++- sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) (limited to 'sysdeps/powerpc/powerpc32/power4/fpu') diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c index 9674001caa..b3f202d136 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c @@ -20,6 +20,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__ceilf) __ceilf_ppc32 attribute_hidden; extern __typeof (__ceilf) __ceilf_power5plus attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__ceilf, ? __ceilf_power5plus : __ceilf_ppc32); -weak_alias (__ceilf, ceilf) +libm_alias_float (__ceil, ceil) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c index 7709e08968..7fa1f647c2 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c @@ -19,6 +19,7 @@ #include #include #include "init-arch.h" +#include /* It's safe to use double-precision implementation for single-precision. */ extern __typeof (__copysignf) __copysign_ppc32 attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__copysignf, ? __copysign_power6 : __copysign_ppc32); -weak_alias (__copysignf, copysignf) +libm_alias_float (__copysign, copysign) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c index 56375097f7..f65a30a684 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c @@ -20,6 +20,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__floorf) __floorf_ppc32 attribute_hidden; extern __typeof (__floorf) __floorf_power5plus attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__floorf, ? __floorf_power5plus : __floorf_ppc32); -weak_alias (__floorf, floorf) +libm_alias_float (__floor, floor) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c index f513e61944..c3daef00f8 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c @@ -19,6 +19,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__llrintf) __llrintf_ppc32 attribute_hidden; extern __typeof (__llrintf) __llrintf_power6 attribute_hidden; @@ -28,4 +29,4 @@ libc_ifunc (__llrintf, ? __llrintf_power6 : __llrintf_ppc32); -weak_alias (__llrintf, llrintf) +libm_alias_float (__llrint, llrint) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c index 1b7e45653a..c5d52545df 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c @@ -18,6 +18,7 @@ #include #include "init-arch.h" +#include /* It's safe to use double-precision implementation for single-precision. */ extern __typeof (__llroundf) __llround_ppc32 attribute_hidden; @@ -31,4 +32,4 @@ libc_ifunc (__llroundf, ? __llround_power5plus : __llround_ppc32); -weak_alias (__llroundf, llroundf) +libm_alias_float (__llround, llround) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c index 3b9de174bd..6f5d654d62 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c @@ -20,6 +20,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__logbf) __logbf_ppc32 attribute_hidden; extern __typeof (__logbf) __logbf_power7 attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__logbf, ? __logbf_power7 : __logbf_ppc32); -weak_alias (__logbf, logbf) +libm_alias_float (__logb, logb) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c index 4a7fa4bcfa..dfe67b7087 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c @@ -18,6 +18,7 @@ #include #include "init-arch.h" +#include /* It's safe to use double-precision implementation for single-precision. */ extern __typeof (__lrintf) __lrint_ppc32 attribute_hidden; @@ -28,4 +29,4 @@ libc_ifunc (__lrintf, __lrint_power6x : __lrint_ppc32); -weak_alias (__lrintf, lrintf) +libm_alias_float (__lrint, lrint) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c index ff61dd6ca7..c70644e1a0 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c @@ -18,6 +18,7 @@ #include #include "init-arch.h" +#include /* It's safe to use double-precision implementation for single-precision. */ extern __typeof (__lroundf) __lround_ppc32 attribute_hidden; @@ -31,4 +32,4 @@ libc_ifunc (__lroundf, __lround_power5plus : __lround_ppc32); -weak_alias (__lroundf, lroundf) +libm_alias_float (__lround, lround) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c index 7ae682d124..5f9ef7fca7 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c @@ -18,6 +18,7 @@ #include #include "init-arch.h" +#include extern __typeof (__modff) __modff_ppc32 attribute_hidden; extern __typeof (__modff) __modff_power5plus attribute_hidden; @@ -27,4 +28,4 @@ libc_ifunc (__modff, ? __modff_power5plus : __modff_ppc32); -weak_alias (__modff, modff) +libm_alias_float (__modf, modf) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c index 0a2e6d53cc..0b73e76d35 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c @@ -20,6 +20,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__roundf) __roundf_ppc32 attribute_hidden; extern __typeof (__roundf) __roundf_power5plus attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__roundf, ? __roundf_power5plus : __roundf_ppc32); -weak_alias (__roundf, roundf) +libm_alias_float (__round, round) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c index ef6e97d000..7889e8a4f3 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c +++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c @@ -20,6 +20,7 @@ #include #include #include "init-arch.h" +#include extern __typeof (__truncf) __truncf_ppc32 attribute_hidden; extern __typeof (__truncf) __truncf_power5plus attribute_hidden; @@ -29,4 +30,4 @@ libc_ifunc (__truncf, ? __truncf_power5plus : __truncf_ppc32); -weak_alias (__truncf, truncf) +libm_alias_float (__trunc, trunc) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S index 9c3dd77863..2b1eaa6d5d 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S +++ b/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S @@ -17,6 +17,7 @@ . */ #include +#include /* long long int[r3, r4] __llrintf (float x[fp1]) */ ENTRY (__llrintf) @@ -34,5 +35,5 @@ ENTRY (__llrintf) blr END (__llrintf) -weak_alias (__llrintf, llrintf) +libm_alias_float (__llrint, llrint) diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S index 45926fd2da..2a167f00d9 100644 --- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S +++ b/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S @@ -18,6 +18,7 @@ #include #include +#include #include .section .rodata.cst8,"aM",@progbits,8 @@ -96,4 +97,4 @@ ENTRY (__llround) libm_alias_double (__llround, llround) strong_alias (__llround, __llroundf) -weak_alias (__llround, llroundf) +libm_alias_float (__llround, llround) -- cgit 1.4.1