]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
PowerPC: Fix bzero definition for static libc for PPC32
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Wed, 12 Mar 2014 13:55:50 +0000 (08:55 -0500)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Wed, 12 Mar 2014 16:51:32 +0000 (11:51 -0500)
This patch fixes an issue for powerpc32-fpu static build which fails
with an 'bzero' undefined reference. This patch adds bzero ifunc selector
for static builds and fixes the '__bzero_ppc' reference to default
memset symbol (since static memset build does not provide ifunc
selector).

Fixes BZ#16689.

Backport of dd3946c615184e1957a0cb09352cac72be5d6d5b.

ChangeLog
NEWS
sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c

index 93a4ddfa4e1ac3f60a47e6d37ecbc8e119f58e19..61b22d62ccd7c33fc6a8d7c6e93a4e17e5e2e831 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-03-12  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+       [BZ #16689]
+       * sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
+       (__bzero_ppc): Call memset@local instead of __memset_ppc@local for
+       static build.
+       * sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Build IFUNC
+       selector for static builds.
+
 2014-03-12  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
        * sysdeps/powerpc/powerpc64/multiarch/strspn.c (strspn): Build IFUNC
diff --git a/NEWS b/NEWS
index fbd56f6446ed977a32cfe997f194eecf67df10e2..886624a1a192def739c26455a05c476dfe1bb601 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.19.1
 
 * The following bugs are resolved with this release:
 
-  16545, 16683.
+  16545, 16683, 16689.
 \f
 Version 2.19
 
index 7a7cca99eddf9b10576569e1eaa164ec607f65ea..80a2dc589b1ff3833e3e9a39db616ea9464c8cb5 100644 (file)
 
 #include <sysdep.h>
 
+/* memset ifunc selector is not built for static and memset@local
+   for shared builds makes the linker point the call to the ifunc
+   selector.  */
+#ifdef SHARED
+# define MEMSET __memset_ppc
+#else
+# define MEMSET memset
+#endif
+
 ENTRY (__bzero_ppc)
         mr      r5,r4
         li      r4,0
-        b       __memset_ppc@local
+        b       MEMSET@local
 END (__bzero_ppc)
index 2a6298a33d418ea7382dfda3a5de006721078a9b..baaa6b4bcf33a281432a9c1f7dc0a7712340bab3 100644 (file)
@@ -17,7 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 /* Define multiple versions only for definition in libc.  */
-#if defined SHARED && !defined NOT_IN_libc
+#ifndef NOT_IN_libc
 # include <string.h>
 # include <strings.h>
 # include "init-arch.h"