PowerPC: Fix --disable-multi-arch builds
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Tue, 8 Apr 2014 22:25:14 +0000 (17:25 -0500)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Wed, 9 Apr 2014 11:22:53 +0000 (06:22 -0500)
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.

ChangeLog
sysdeps/powerpc/powerpc32/power6x/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power5+/fpu/Implies
sysdeps/powerpc/powerpc64/power5/fpu/Implies
sysdeps/powerpc/powerpc64/power6x/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies
sysdeps/powerpc/powerpc64/power6x/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/Implies
sysdeps/powerpc/powerpc64/power7/strncat.S
sysdeps/powerpc/powerpc64/power8/fpu/Implies
sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S

index ccfb7e6..7e1c54c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2014-04-09  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+       * sysdeps/powerpc/powerpc32/power6x/fpu/Implies: New file.
+       * sysdeps/powerpc/powerpc64/power6x/fpu/Implies: new file.
+       * sysdeps/powerpc/powerpc64/power6x/multiarch/Implies: New file.
+       * sysdeps/powerpc/powerpc64/power5+/fpu/Implies: Remove multiarch
+       imply folder.
+       * sysdeps/powerpc/powerpc64/power5/fpu/Implies: Likewise.
+       * sysdeps/powerpc/powerpc64/power7/fpu/Implies: Likewise.
+       * sysdeps/powerpc/powerpc64/power8/fpu/Implies: Likewise.
+       * sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies: Adjust
+       correct imply path.
+       * sysdeps/powerpc/powerpc64/power7/strncat.S (STRLEN): Define correct
+       strlen symbol for non multi-arch builds.
+       * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S (__isnan): Add
+       missing hidden_def and weak_alias.
+
 2014-04-08  Carlos O'Donell  <carlos@redhat.com>
 
        * manual/ipc.texi (sem_close): AC-unsafe because of aculock.
diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/Implies b/sysdeps/powerpc/powerpc32/power6x/fpu/Implies
new file mode 100644 (file)
index 0000000..d53ce25
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc32/power6/fpu
diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/Implies b/sysdeps/powerpc/powerpc64/power6x/fpu/Implies
new file mode 100644 (file)
index 0000000..30fa176
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/power6/fpu
diff --git a/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies b/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies
new file mode 100644 (file)
index 0000000..bf5d617
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/power6/multiarch
index 1a1a95e..e7e36a4 100644 (file)
@@ -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)
index b03c896..cf119e5 100644 (file)
@@ -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)