[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6005 - in glibc-package/branches/eglibc-2.19/debian: . patches/powerpc



Author: adconrad
Date: 2014-03-24 04:14:31 +0000 (Mon, 24 Mar 2014)
New Revision: 6005

Added:
   glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc32.diff
   glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc64.diff
Modified:
   glibc-package/branches/eglibc-2.19/debian/changelog
Log:
* debian/patches/powerpc/cvs-bzero-static-ppc64.diff: Fixes an issue where
  __bzero/bzero are defined incorrectly when doing static builds on ppc64.
* debian/patches/powerpc/cvs-bzero-static-ppc32.diff: 32-bit fix for same.

Modified: glibc-package/branches/eglibc-2.19/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/changelog	2014-03-24 03:59:50 UTC (rev 6004)
+++ glibc-package/branches/eglibc-2.19/debian/changelog	2014-03-24 04:14:31 UTC (rev 6005)
@@ -44,6 +44,9 @@
   * debian/sysdeps/arm64.mk: Enable IFUNC, now that binutils can support it.
   * debian/patches/locale/submitted-XDR-revert.diff: Return the XDR currency
     to locale/iso-4217.def because localedata/locales/i18n needs to have it.
+  * debian/patches/powerpc/cvs-bzero-static-ppc64.diff: Fixes an issue where
+    __bzero/bzero are defined incorrectly when doing static builds on ppc64.
+  * debian/patches/powerpc/cvs-bzero-static-ppc32.diff: 32-bit fix for same.
 
   [ Aurelien Jarno ]
   * debian/debhelper.in/libc.preinst: remove check for sparc32 kernel, the

Added: glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc32.diff
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc32.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc32.diff	2014-03-24 04:14:31 UTC (rev 6005)
@@ -0,0 +1,59 @@
+commit dd3946c615184e1957a0cb09352cac72be5d6d5b
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Mar 12 08:55:50 2014 -0500
+
+    PowerPC: Fix bzero definition for static libc for PPC32
+    
+    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.
+
+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.
+
+diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
+index 7a7cca9..80a2dc5 100644
+--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
++++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
+@@ -19,8 +19,17 @@
+ 
+ #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)
+diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
+index 2a6298a..baaa6b4 100644
+--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
++++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
+@@ -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"

Added: glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc64.diff
===================================================================
--- glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc64.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.19/debian/patches/powerpc/cvs-bzero-static-ppc64.diff	2014-03-24 04:14:31 UTC (rev 6005)
@@ -0,0 +1,58 @@
+commit 4facea473059914983b7da8dd654c06b8e3dcc41
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Mon Mar 10 15:26:20 2014 -0500
+
+    PowerPC: Fix bzero definition for static libc for PPC64
+    
+    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.
+
+2014-03-11  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/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>


Reply to: