From de21c33c068c8e39afb5711613a7c083c11ce6a1 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 8 Apr 2014 17:25:14 -0500 Subject: PowerPC: Fix --disable-multi-arch builds This patch fixes some powerpc32 and powerpc64 builds with --disable-multi-arch option along with different --with-cpu=powerN. It cleanups the Implies directories by removing the multiarch folder for non multiarch config and also fixing two assembly implementations: powerpc64/power7/strncat.S that is calling the wrong strlen; and power8/fpu/s_isnan.S that misses the hidden_def and weak_alias directives. --- sysdeps/powerpc/powerpc32/power6x/fpu/Implies | 1 + sysdeps/powerpc/powerpc64/power5+/fpu/Implies | 2 +- sysdeps/powerpc/powerpc64/power5/fpu/Implies | 2 +- sysdeps/powerpc/powerpc64/power6x/fpu/Implies | 1 + sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies | 2 +- sysdeps/powerpc/powerpc64/power6x/multiarch/Implies | 1 + sysdeps/powerpc/powerpc64/power7/fpu/Implies | 2 +- sysdeps/powerpc/powerpc64/power7/strncat.S | 4 +++- sysdeps/powerpc/powerpc64/power8/fpu/Implies | 2 +- sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S | 3 +++ 10 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 sysdeps/powerpc/powerpc32/power6x/fpu/Implies create mode 100644 sysdeps/powerpc/powerpc64/power6x/fpu/Implies create mode 100644 sysdeps/powerpc/powerpc64/power6x/multiarch/Implies (limited to 'sysdeps') diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/Implies b/sysdeps/powerpc/powerpc32/power6x/fpu/Implies new file mode 100644 index 0000000000..d53ce2573c --- /dev/null +++ b/sysdeps/powerpc/powerpc32/power6x/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc32/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies b/sysdeps/powerpc/powerpc64/power5+/fpu/Implies index c0e67848e2..f00c50fb49 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power5/fpu/multiarch +powerpc/powerpc64/power5/fpu diff --git a/sysdeps/powerpc/powerpc64/power5/fpu/Implies b/sysdeps/powerpc/powerpc64/power5/fpu/Implies index 3740d050a6..6b8c23efa6 100644 --- a/sysdeps/powerpc/powerpc64/power5/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power5/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power4/fpu/multiarch +powerpc/powerpc64/power4/fpu/ diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/Implies b/sysdeps/powerpc/powerpc64/power6x/fpu/Implies new file mode 100644 index 0000000000..30fa17646e --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power6x/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies index f54ff23500..410d289a6d 100644 --- a/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies +++ b/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies @@ -1 +1 @@ -sysdeps/powerpc/powerpc64/power6/fpu/multiarch +powerpc/powerpc64/power6/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies b/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies new file mode 100644 index 0000000000..bf5d6171a5 --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/power6/multiarch diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/Implies b/sysdeps/powerpc/powerpc64/power7/fpu/Implies index 410d289a6d..30fa17646e 100644 --- a/sysdeps/powerpc/powerpc64/power7/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power7/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power6/fpu/multiarch +powerpc/powerpc64/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power7/strncat.S b/sysdeps/powerpc/powerpc64/power7/strncat.S index 1a1a95e030..e7e36a4de4 100644 --- a/sysdeps/powerpc/powerpc64/power7/strncat.S +++ b/sysdeps/powerpc/powerpc64/power7/strncat.S @@ -38,7 +38,9 @@ #endif #ifndef STRLEN -# define STRLEN __strlen_ppc +/* For builds with no IFUNC support, local calls should be made to internal + GLIBC symbol (created by libc_hidden_builtin_def). */ +# define STRLEN __GI_strlen #endif #define FRAMESIZE (FRAME_MIN_SIZE+32) diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/Implies b/sysdeps/powerpc/powerpc64/power8/fpu/Implies index 7fd86fdf87..1187cdfb0a 100644 --- a/sysdeps/powerpc/powerpc64/power8/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power8/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power7/fpu/multiarch +powerpc/powerpc64/power7/fpu/ diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S index b03c896acf..cf119e5c98 100644 --- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S +++ b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S @@ -39,6 +39,9 @@ EALIGN (__isnan, 4, 0) blr END (__isnan) +hidden_def (__isnan) +weak_alias (__isnan, isnan) + /* It turns out that the 'double' version will also always work for single-precision. */ strong_alias (__isnan, __isnanf) -- cgit v1.2.3