]> 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 14:03:22 +0000 (09:03 -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.

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

index ef301d8c3754bc07626881370703a9127aa3611f..398cc5f484fee1319de108bb15cf505511ff2336 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  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        [BZ #16695]
diff --git a/NEWS b/NEWS
index 483eff1131d09426e054f5a8be24d8ca674f33e4..aa097dba674b75880a017f71bc550ce266fd5e3a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,8 @@ Version 2.20
 * The following bugs are resolved with this release:
 
   15347, 15804, 15894, 16447, 16532, 16545, 16574, 16600, 16609, 16610,
-  16611, 16613, 16623, 16632, 16639, 16670, 16674, 16677, 16683, 16695.
+  16611, 16613, 16623, 16632, 16639, 16670, 16674, 16677, 16683, 16689,
+  16695.
 
 * The am33 port, which had not worked for several years, has been removed
   from ports.
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"