patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch
branchnewlib
changeset 1365 c4d124ed9f8e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/2.9/160-i386-x86_64-revert-clone-cfi.patch	Sun Apr 19 16:17:11 2009 +0000
     1.3 @@ -0,0 +1,53 @@
     1.4 +Original patch from: gentoo/src/patchsets/glibc/2.9/0070_all_glibc-i386-x86_64-revert-clone-cfi.patch
     1.5 +
     1.6 +-= BEGIN original header =-
     1.7 +revert cfi additions to clone on i386/x86_64 to workaround problems in
     1.8 +gcc's unwinder code.  this is not a bug in glibc, it triggers problems
     1.9 +elsewhere.  this cfi code does not gain us a whole lot anyways.
    1.10 +
    1.11 +http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html
    1.12 +
    1.13 +-= END original header =-
    1.14 +
    1.15 +diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S
    1.16 +--- glibc-2_9.orig/sysdeps/unix/sysv/linux/i386/clone.S	2006-12-04 00:12:36.000000000 +0100
    1.17 ++++ glibc-2_9/sysdeps/unix/sysv/linux/i386/clone.S	2009-02-02 22:00:45.000000000 +0100
    1.18 +@@ -120,9 +120,6 @@
    1.19 + 	ret
    1.20 + 
    1.21 + L(thread_start):
    1.22 +-	cfi_startproc;
    1.23 +-	/* Clearing frame pointer is insufficient, use CFI.  */
    1.24 +-	cfi_undefined (eip);
    1.25 + 	/* Note: %esi is zero.  */
    1.26 + 	movl	%esi,%ebp	/* terminate the stack frame */
    1.27 + #ifdef RESET_PID
    1.28 +@@ -155,7 +152,6 @@
    1.29 + 	jmp	L(haspid)
    1.30 + 	.previous
    1.31 + #endif
    1.32 +-	cfi_endproc;
    1.33 + 
    1.34 + 	cfi_startproc
    1.35 + PSEUDO_END (BP_SYM (__clone))
    1.36 +diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2_9/sysdeps/unix/sysv/linux/x86_64/clone.S
    1.37 +--- glibc-2_9.orig/sysdeps/unix/sysv/linux/x86_64/clone.S	2006-12-04 00:12:36.000000000 +0100
    1.38 ++++ glibc-2_9/sysdeps/unix/sysv/linux/x86_64/clone.S	2009-02-02 22:00:45.000000000 +0100
    1.39 +@@ -89,9 +89,6 @@
    1.40 + 	ret
    1.41 + 
    1.42 + L(thread_start):
    1.43 +-	cfi_startproc;
    1.44 +-	/* Clearing frame pointer is insufficient, use CFI.  */
    1.45 +-	cfi_undefined (rip);
    1.46 + 	/* Clear the frame pointer.  The ABI suggests this be done, to mark
    1.47 + 	   the outermost frame obviously.  */
    1.48 + 	xorl	%ebp, %ebp
    1.49 +@@ -116,7 +113,6 @@
    1.50 + 	/* Call exit with return value from function call. */
    1.51 + 	movq	%rax, %rdi
    1.52 + 	call	HIDDEN_JUMPTARGET (_exit)
    1.53 +-	cfi_endproc;
    1.54 + 
    1.55 + 	cfi_startproc;
    1.56 + PSEUDO_END (BP_SYM (__clone))