This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] PowerPC: Fix bzero definition for static libc
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Mon, 10 Mar 2014 17:56:18 -0300
- Subject: [PATCH] PowerPC: Fix bzero definition for static libc
- Authentication-results: sourceware.org; auth=none
This patch fixes an issue for powerpc64[le] static build where __bzero
is definied in multiple places (memset-ppc64.o and bzero.o). It is now
defined only in bzero.o and memset-ppc64.o only defined __bzero_ppc for
both dynamic and static library.
Fixes BZ#16683.
Tested on powerpc64 and powerpc64le. If no one oppose it, I will commit
tomorrow.
--
2014-03-10 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #16683]
* sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S (__bzero_ppc):
Define it for static builds as well.
(NO_BZERO_IMPL): Likewise.
---
diff --git a/NEWS b/NEWS
index 64a0500..df126f3 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ 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.
+ 16611, 16613, 16623, 16632, 16639, 16670, 16674, 16683.
* The am33 port, which had not worked for several years, has been removed
from ports.
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
index 5b234d9e..65b3afe 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
@@ -18,10 +18,9 @@
#include <sysdep.h>
-#if defined SHARED && !defined NOT_IN_libc
-
/* Copied from bzero.S to prevent the linker from inserting a stub
- between bzero and memset. */
+ between bzero and memset. NOTE: this code should be positioned
+ before ENTRY/END_GEN_TB redefinition. */
ENTRY (__bzero_ppc)
CALL_MCOUNT 3
mr r5,r4
@@ -29,6 +28,8 @@ ENTRY (__bzero_ppc)
b L(_memset)
END_GEN_TB (__bzero_ppc,TB_TOCLESS)
+
+#if defined SHARED && !defined NOT_IN_libc
# undef EALIGN
# define EALIGN(name, alignt, words) \
.section ".text"; \
@@ -48,9 +49,9 @@ END_GEN_TB (__bzero_ppc,TB_TOCLESS)
# undef libc_hidden_builtin_def
# define libc_hidden_builtin_def(name) \
.globl __GI_memset; __GI_memset = __memset_ppc
+#endif
/* Do not implement __bzero at powerpc64/memset.S. */
-# define NO_BZERO_IMPL
-#endif
+#define NO_BZERO_IMPL
#include <sysdeps/powerpc/powerpc64/memset.S>