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

r4608 - in glibc-package/branches/eglibc-2.13/debian: . patches patches/i386



Author: aurel32
Date: 2011-04-17 20:28:30 +0000 (Sun, 17 Apr 2011)
New Revision: 4608

Added:
   glibc-package/branches/eglibc-2.13/debian/patches/i386/submitted-memove-static.diff
Modified:
   glibc-package/branches/eglibc-2.13/debian/changelog
   glibc-package/branches/eglibc-2.13/debian/patches/series
Log:
  * Add patches/i386/submitted-memove-static.diff to fix static linking
    with FORTIFY.



Modified: glibc-package/branches/eglibc-2.13/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/changelog	2011-04-17 20:08:56 UTC (rev 4607)
+++ glibc-package/branches/eglibc-2.13/debian/changelog	2011-04-17 20:28:30 UTC (rev 4608)
@@ -149,6 +149,8 @@
     implementation of strncmp().
   * Add patches/alpha/submitted-sysconf-cache.diff to fix sysconf() 
     LEVEL*CACHE* entries.  Closes: #620203.
+  * Add patches/i386/submitted-memove-static.diff to fix static linking
+    with FORTIFY.
 
   [ Samuel Thibault ]
   * Add patches/any/cvs-glro_dl_debug_mask.diff to fix build without

Added: glibc-package/branches/eglibc-2.13/debian/patches/i386/submitted-memove-static.diff
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/patches/i386/submitted-memove-static.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.13/debian/patches/i386/submitted-memove-static.diff	2011-04-17 20:28:30 UTC (rev 4608)
@@ -0,0 +1,92 @@
+Building static apps on i686/x86_64 systems which use memmove such as:
+	#include <string.h>
+	char buf[8192];
+	main(int argc, char **argv) { memmove(buf, buf + argc, argc % 4); }
+
+Result in linking errors along the lines of:
+	.../libc.a(memmove_chk.o): In function `__memmove_chk':
+	(.text+0x1b4): undefined reference to `__memmove_chk_ssse3_back'
+	.../libc.a(memmove_chk.o): In function `__memmove_chk':
+	(.text+0x1b9): undefined reference to `__memmove_chk_ssse3'
+	collect2: ld returned 1 exit status
+
+This is due to the new ssse3 funcs only enabling their chk symbols when
+being compiled into shared code.
+
+URL: https://bugs.gentoo.org/353816
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+2011-02-06  Mike Frysinger  <vapier@gentoo.org>
+
+	* sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Only protect
+	MEMCPY_CHK with USE_AS_BCOPY ifdef check.
+	* sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
+	* sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
+	* sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise.
+---
+v2
+	- also update i686 symbols
+	- drop shared/libc ifdefs since the surrounding code already handles it
+
+ sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S |    2 +-
+ sysdeps/i386/i686/multiarch/memcpy-ssse3.S     |    2 +-
+ sysdeps/x86_64/multiarch/memcpy-ssse3-back.S   |    2 +-
+ sysdeps/x86_64/multiarch/memcpy-ssse3.S        |    2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
+index 48a109c..8e81183 100644
+--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
++++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
+@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx:
+ #endif
+ 
+ 	.section .text.ssse3,"ax",@progbits
+-#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY
++#if !defined USE_AS_BCOPY
+ ENTRY (MEMCPY_CHK)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
+index ec9eeb9..f64f8d2 100644
+--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
++++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
+@@ -110,7 +110,7 @@ __i686.get_pc_thunk.bx:
+ #endif
+ 
+ 	.section .text.ssse3,"ax",@progbits
+-#if defined SHARED && !defined NOT_IN_libc && !defined USE_AS_BCOPY
++#if !defined USE_AS_BCOPY
+ ENTRY (MEMCPY_CHK)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
+index 48c974e..bdd114a 100644
+--- a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
++++ b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
+@@ -49,7 +49,7 @@
+   ud2
+ 
+ 	.section .text.ssse3,"ax",@progbits
+-#if defined SHARED && !defined NOT_IN_libc
++#if !defined USE_AS_BCOPY
+ ENTRY (MEMCPY_CHK)
+ 	cmpq	%rdx, %rcx
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3.S b/sysdeps/x86_64/multiarch/memcpy-ssse3.S
+index 9a878d3..cd7e45f 100644
+--- a/sysdeps/x86_64/multiarch/memcpy-ssse3.S
++++ b/sysdeps/x86_64/multiarch/memcpy-ssse3.S
+@@ -49,7 +49,7 @@
+   ud2
+ 
+ 	.section .text.ssse3,"ax",@progbits
+-#if defined SHARED && !defined NOT_IN_libc
++#if !defined USE_AS_BCOPY
+ ENTRY (MEMCPY_CHK)
+ 	cmpq	%rdx, %rcx
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+-- 
+1.7.4.rc2
+
+

Modified: glibc-package/branches/eglibc-2.13/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/patches/series	2011-04-17 20:08:56 UTC (rev 4607)
+++ glibc-package/branches/eglibc-2.13/debian/patches/series	2011-04-17 20:28:30 UTC (rev 4608)
@@ -143,6 +143,7 @@
 i386/local-pthread_cond_wait.diff
 i386/submitted-i686-timing.diff
 i386/cvs-cacheinfo.diff
+i386/submitted-memove-static.diff
 
 m68k/local-compat.diff
 m68k/local-dwarf2-buildfix.diff


Reply to: