File 0033-S390-Do-not-call-memcpy-memcmp-memset-within-libc.so.patch of Package glibc.13892

2016-05-24  Stefan Liebler  <stli@linux.vnet.ibm.com>

	* sysdeps/s390/multiarch/ifunc-resolve.h (s390_libc_ifunc):
	Remove __GI_ symbol.
	* sysdeps/s390/s390-32/multiarch/memcmp-s390.S: Add __GI_memcmp symbol.
	* sysdeps/s390/s390-64/multiarch/memcmp-s390x.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcpy-s390.S: Add __GI_memcpy symbol.
	* sysdeps/s390/s390-64/multiarch/memcpy-s390x.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memset-s390.S: Add __GI_memset symbol.
	* sysdeps/s390/s390-64/multiarch/memset-s390x.S: Likewise.

Index: glibc-2.22/sysdeps/s390/multiarch/ifunc-resolve.h
===================================================================
--- glibc-2.22.orig/sysdeps/s390/multiarch/ifunc-resolve.h
+++ glibc-2.22/sysdeps/s390/multiarch/ifunc-resolve.h
@@ -44,9 +44,7 @@
 #define s390_libc_ifunc(FUNC)						\
   asm (".globl " #FUNC "\n\t"						\
        ".type  " #FUNC ",@gnu_indirect_function\n\t"			\
-       ".set   " #FUNC ",__resolve_" #FUNC "\n\t"			\
-       ".globl __GI_" #FUNC "\n\t"					\
-       ".set   __GI_" #FUNC "," #FUNC "\n");				\
+       ".set   " #FUNC ",__resolve_" #FUNC "\n\t");			\
 									\
   /* Make the declarations of the optimized functions hidden in order
      to prevent GOT slots being generated for them. */			\
Index: glibc-2.22/sysdeps/s390/s390-32/multiarch/memcmp-s390.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-32/multiarch/memcmp-s390.S
+++ glibc-2.22/sysdeps/s390/s390-32/multiarch/memcmp-s390.S
@@ -101,4 +101,7 @@ END(__memcmp_z10)
 .set     memcmp,__memcmp_default
 .weak    bcmp
 .set	 bcmp,__memcmp_default
+#elif defined SHARED && IS_IN (libc)
+.globl   __GI_memcmp
+.set     __GI_memcmp,__memcmp_default
 #endif
Index: glibc-2.22/sysdeps/s390/s390-32/multiarch/memcpy-s390.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-32/multiarch/memcpy-s390.S
+++ glibc-2.22/sysdeps/s390/s390-32/multiarch/memcpy-s390.S
@@ -92,7 +92,10 @@ END(__memcpy_z10)
 
 #include "../memcpy.S"
 
-#if !defined SHARED || !IS_IN (libc)
+#if defined SHARED && IS_IN (libc)
+.globl   __GI_memcpy
+.set     __GI_memcpy,__memcpy_default
+#else
 .globl   memcpy
 .set     memcpy,__memcpy_default
 #endif
Index: glibc-2.22/sysdeps/s390/s390-32/multiarch/memset-s390.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-32/multiarch/memset-s390.S
+++ glibc-2.22/sysdeps/s390/s390-32/multiarch/memset-s390.S
@@ -110,4 +110,7 @@ END(__memset_mvcle)
 #if !IS_IN (libc)
 .globl   memset
 .set     memset,__memset_default
+#elif defined SHARED && IS_IN (libc)
+.globl   __GI_memset
+.set     __GI_memset,__memset_default
 #endif
Index: glibc-2.22/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
+++ glibc-2.22/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
@@ -98,4 +98,7 @@ END(__memcmp_z10)
 .set     memcmp,__memcmp_default
 .weak    bcmp
 .set	 bcmp,__memcmp_default
+#elif defined SHARED && IS_IN (libc)
+.globl   __GI_memcmp
+.set     __GI_memcmp,__memcmp_default
 #endif
Index: glibc-2.22/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
+++ glibc-2.22/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
@@ -88,7 +88,10 @@ END(__memcpy_z10)
 
 #include "../memcpy.S"
 
-#if !defined SHARED || !IS_IN (libc)
+#if defined SHARED && IS_IN (libc)
+.globl   __GI_memcpy
+.set     __GI_memcpy,__memcpy_default
+#else
 .globl   memcpy
 .set     memcpy,__memcpy_default
 #endif
Index: glibc-2.22/sysdeps/s390/s390-64/multiarch/memset-s390x.S
===================================================================
--- glibc-2.22.orig/sysdeps/s390/s390-64/multiarch/memset-s390x.S
+++ glibc-2.22/sysdeps/s390/s390-64/multiarch/memset-s390x.S
@@ -106,4 +106,7 @@ END(__memset_mvcle)
 #if !IS_IN (libc)
 .globl   memset
 .set     memset,__memset_default
+#elif defined SHARED && IS_IN (libc)
+.globl   __GI_memset
+.set     __GI_memset,__memset_default
 #endif
openSUSE Build Service is sponsored by