about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-03-08 10:57:31 -0800
committerH.J. Lu <hjl.tools@gmail.com>2016-03-11 07:47:11 -0800
commitb4456470a64a1e4e466a98dca3b51bf63fb5a13c (patch)
tree7f28578a5876eb172efffdd6aba45e69c33a6488
parent3ac64b00b596d9a7f1ab0ff8d7e191d6e01b2de7 (diff)
downloadglibc-b4456470a64a1e4e466a98dca3b51bf63fb5a13c.tar.gz
glibc-b4456470a64a1e4e466a98dca3b51bf63fb5a13c.tar.xz
glibc-b4456470a64a1e4e466a98dca3b51bf63fb5a13c.zip
Define _HAVE_STRING_ARCH_mempcpy to 1 for x86
Since x86 has an optimized mempcpy and GCC can inline mempcpy on x86,
define _HAVE_STRING_ARCH_mempcpy to 1 for x86.

	[BZ #19759]
	* sysdeps/x86/bits/string.h (_HAVE_STRING_ARCH_mempcpy): New.

(cherry picked from commit 2b35e48c0c547b3f6f81996ce7ad7d67e24c7329)
-rw-r--r--ChangeLog5
-rw-r--r--NEWS1
-rw-r--r--sysdeps/x86/bits/string.h3
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1417e38fce..a539098b50 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #19759]
+	* sysdeps/x86/bits/string.h (_HAVE_STRING_ARCH_mempcpy): New.
+
 2016-03-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #19762]
diff --git a/NEWS b/NEWS
index 1b679197f3..663c716ff1 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ Security related changes:
 The following bugs are resolved with this release:
 
   [19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack
+  [19759] Don't inline mempcpy for x86
   [19762] Use HAS_ARCH_FEATURE with Fast_Rep_String
   [19792] MIPS: backtrace yields infinite backtrace with makecontext
 
diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h
index e4e019f1fc..8dfce052a6 100644
--- a/sysdeps/x86/bits/string.h
+++ b/sysdeps/x86/bits/string.h
@@ -23,6 +23,9 @@
 /* Use the unaligned string inline ABI.  */
 #define _STRING_INLINE_unaligned 1
 
+/* Don't inline mempcpy into memcpy as x86 has an optimized mempcpy.  */
+#define _HAVE_STRING_ARCH_mempcpy 1
+
 /* Enable inline functions only for i486 or better when compiling for
    ia32.  */
 #if !defined __x86_64__ && (defined __i486__ || defined __pentium__	      \