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