mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-22 06:07:49 +00:00
6cf1dab940
Patchset provided by "Ioannis E. Venetis" <venetis@mail.capsl.udel.edu> http://sourceware.org/ml/crossgcc/2011-04/msg00072.html http://sourceware.org/ml/crossgcc/2011-04/msg00073.html Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
56 lines
1.9 KiB
Diff
56 lines
1.9 KiB
Diff
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.13.orig/sysdeps/unix/sysv/linux/i386/clone.S glibc-2.13/sysdeps/unix/sysv/linux/i386/clone.S
|
|
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/i386/clone.S 2006-12-04 00:12:36.000000000 +0100
|
|
+++ glibc-2.13/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.13.orig/sysdeps/unix/sysv/linux/x86_64/clone.S glibc-2.13/sysdeps/unix/sysv/linux/x86_64/clone.S
|
|
--- glibc-2.13.orig/sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-04 00:12:36.000000000 +0100
|
|
+++ glibc-2.13/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))
|