summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-11-16 03:47:22 +0100
committerPetr Baudis <pasky@suse.cz>2010-11-16 03:47:22 +0100
commitfb8fb8464c2b5a44b69e62bcc3211b9c769416da (patch)
treeb350f569ea24f76692ccb0b454204adafefce69c
parentc8e6e9e783bc5018525e881f021333c3daa4b0f6 (diff)
downloadglibc-pasky/fixes-overdue.tar.gz
Fix incorrect backtrace unwinding through thread_start() on x86_64pasky/fixes-overdue
Provide CFI for the outermost clone() to ensure proper unwinding stop of gdb.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S4
2 files changed, 6 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index c7174be106..9f0a7a94c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ [BZ #6693]
+ * sysdeps/unix/sysv/linux/x86_64/clone.S: Provide CFI for the outermost
+ `clone' function to ensure proper unwinding stop of gdb.
+
2010-05-31 Petr Baudis <pasky@suse.cz>
[BZ #11149]
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index db42f209c9..8a12b09035 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -89,9 +89,6 @@ L(pseudo_end):
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 @@ L(thread_start):
/* Call exit with return value from function call. */
movq %rax, %rdi
call HIDDEN_JUMPTARGET (_exit)
- cfi_endproc;
cfi_startproc;
PSEUDO_END (BP_SYM (__clone))