yann@1625: revert cfi additions to clone on i386/x86_64 to workaround problems in yann@1625: gcc's unwinder code. this is not a bug in glibc, it triggers problems yann@1625: elsewhere. this cfi code does not gain us a whole lot anyways. yann@1625: yann@1625: http://gcc.gnu.org/ml/gcc/2006-12/msg00293.html yann@1625: yann@1625: Index: sysdeps/unix/sysv/linux/i386/clone.S yann@1625: =================================================================== yann@1625: RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v yann@1625: retrieving revision 1.27 yann@1625: retrieving revision 1.26 yann@1625: diff -u -p -r1.27 -r1.26 yann@1625: yann@1625: diff -durN glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2.10.1/sysdeps/unix/sysv/linux/i386/clone.S yann@1625: --- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/clone.S 2006-12-04 00:12:36.000000000 +0100 yann@1625: +++ glibc-2.10.1/sysdeps/unix/sysv/linux/i386/clone.S 2009-11-13 00:49:45.000000000 +0100 yann@1625: @@ -120,9 +120,6 @@ yann@1625: ret yann@1625: yann@1625: L(thread_start): yann@1625: - cfi_startproc; yann@1625: - /* Clearing frame pointer is insufficient, use CFI. */ yann@1625: - cfi_undefined (eip); yann@1625: /* Note: %esi is zero. */ yann@1625: movl %esi,%ebp /* terminate the stack frame */ yann@1625: #ifdef RESET_PID yann@1625: @@ -155,7 +152,6 @@ yann@1625: jmp L(haspid) yann@1625: .previous yann@1625: #endif yann@1625: - cfi_endproc; yann@1625: yann@1625: cfi_startproc yann@1625: PSEUDO_END (BP_SYM (__clone)) yann@1625: diff -durN glibc-2.10.1.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2.10.1/sysdeps/unix/sysv/linux/x86_64/clone.S yann@1625: --- glibc-2.10.1.orig/sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-04 00:12:36.000000000 +0100 yann@1625: +++ glibc-2.10.1/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-11-13 00:49:45.000000000 +0100 yann@1625: @@ -89,9 +89,6 @@ yann@1625: ret yann@1625: yann@1625: L(thread_start): yann@1625: - cfi_startproc; yann@1625: - /* Clearing frame pointer is insufficient, use CFI. */ yann@1625: - cfi_undefined (rip); yann@1625: /* Clear the frame pointer. The ABI suggests this be done, to mark yann@1625: the outermost frame obviously. */ yann@1625: xorl %ebp, %ebp yann@1625: @@ -116,7 +113,6 @@ yann@1625: /* Call exit with return value from function call. */ yann@1625: movq %rax, %rdi yann@1625: call HIDDEN_JUMPTARGET (_exit) yann@1625: - cfi_endproc; yann@1625: yann@1625: cfi_startproc; yann@1625: PSEUDO_END (BP_SYM (__clone))