about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-06-06 09:37:07 -0500
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-06-06 18:19:19 -0500
commit010c023685495f4cd907b7bf7d15375edcbe1ead (patch)
tree0bc2b0b9473033d8a95c80a98e1e401b78afb69b
parent6f0aba1acab171bd853905b66c551336aa0adcf9 (diff)
downloadglibc-010c023685495f4cd907b7bf7d15375edcbe1ead.tar.gz
glibc-010c023685495f4cd907b7bf7d15375edcbe1ead.tar.xz
glibc-010c023685495f4cd907b7bf7d15375edcbe1ead.zip
PowerPC: Fix optimized strncat strlen call
This patch fixes the optimized ppc64/power7 strncat strlen call for
static build without ifunc enabled.  The strlen symbol to call in such
situation is just strlen, instead of __GI_strlen (since the __GI_
alias is just created for shared objects).

It is a backport of ed36bfa18faf9be457575568e64b8409e46caa22.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strncat.S6
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b48b1f12d..d7fd998784 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2014-06-06  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
+	* sysdeps/powerpc/powerpc64/power7/strncat.S [STRLEN]: Define it as
+	strlen for non SHARED builds.
+
 	* sysdeps/powerpc/powerpc32/power6x/fpu/Implies: New file.
 	* sysdeps/powerpc/powerpc64/power6x/fpu/Implies: new file.
 	* sysdeps/powerpc/powerpc64/power6x/multiarch/Implies: New file.
diff --git a/sysdeps/powerpc/powerpc64/power7/strncat.S b/sysdeps/powerpc/powerpc64/power7/strncat.S
index e7e36a4de4..f5ea52d3d4 100644
--- a/sysdeps/powerpc/powerpc64/power7/strncat.S
+++ b/sysdeps/powerpc/powerpc64/power7/strncat.S
@@ -40,7 +40,11 @@
 #ifndef STRLEN
 /* For builds with no IFUNC support, local calls should be made to internal
    GLIBC symbol (created by libc_hidden_builtin_def).  */
-# define STRLEN   __GI_strlen
+# ifdef SHARED
+#  define STRLEN   __GI_strlen
+# else
+#  define STRLEN   strlen
+# endif
 #endif
 
 #define	FRAMESIZE	(FRAME_MIN_SIZE+32)