1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/glibc/ports-2.12.1/120-i386-x86_64-revert-clone-cfi.patch Tue Oct 18 20:17:41 2011 +0200
1.3 @@ -0,0 +1,55 @@
1.4 +revert cfi additions to clone on i386/x86_64 to workaround problems in
1.5 +gcc's unwinder code. this is not a bug in glibc, it triggers problems
1.6 +elsewhere. this cfi code does not gain us a whole lot anyways.
1.7 +
1.8 +http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html
1.9 +
1.10 +Index: sysdeps/unix/sysv/linux/i386/clone.S
1.11 +===================================================================
1.12 +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v
1.13 +retrieving revision 1.27
1.14 +retrieving revision 1.26
1.15 +diff -u -p -r1.27 -r1.26
1.16 +
1.17 +diff -durN glibc-2.12.1.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2.12.1/sysdeps/unix/sysv/linux/i386/clone.S
1.18 +--- glibc-2.12.1.orig/sysdeps/unix/sysv/linux/i386/clone.S 2006-12-04 00:12:36.000000000 +0100
1.19 ++++ glibc-2.12.1/sysdeps/unix/sysv/linux/i386/clone.S 2009-11-13 00:49:45.000000000 +0100
1.20 +@@ -120,9 +120,6 @@
1.21 + ret
1.22 +
1.23 + L(thread_start):
1.24 +- cfi_startproc;
1.25 +- /* Clearing frame pointer is insufficient, use CFI. */
1.26 +- cfi_undefined (eip);
1.27 + /* Note: %esi is zero. */
1.28 + movl %esi,%ebp /* terminate the stack frame */
1.29 + #ifdef RESET_PID
1.30 +@@ -155,7 +152,6 @@
1.31 + jmp L(haspid)
1.32 + .previous
1.33 + #endif
1.34 +- cfi_endproc;
1.35 +
1.36 + cfi_startproc
1.37 + PSEUDO_END (BP_SYM (__clone))
1.38 +diff -durN glibc-2.12.1.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2.12.1/sysdeps/unix/sysv/linux/x86_64/clone.S
1.39 +--- glibc-2.12.1.orig/sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-04 00:12:36.000000000 +0100
1.40 ++++ glibc-2.12.1/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-11-13 00:49:45.000000000 +0100
1.41 +@@ -89,9 +89,6 @@
1.42 + ret
1.43 +
1.44 + L(thread_start):
1.45 +- cfi_startproc;
1.46 +- /* Clearing frame pointer is insufficient, use CFI. */
1.47 +- cfi_undefined (rip);
1.48 + /* Clear the frame pointer. The ABI suggests this be done, to mark
1.49 + the outermost frame obviously. */
1.50 + xorl %ebp, %ebp
1.51 +@@ -116,7 +113,6 @@
1.52 + /* Call exit with return value from function call. */
1.53 + movq %rax, %rdi
1.54 + call HIDDEN_JUMPTARGET (_exit)
1.55 +- cfi_endproc;
1.56 +
1.57 + cfi_startproc;
1.58 + PSEUDO_END (BP_SYM (__clone))