You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
commit bbab82c25da9b504c0804119840de7aeab0eeeba |
|
Author: Andreas Schwab <schwab@suse.de> |
|
Date: Tue Aug 4 12:35:50 2015 +0200 |
|
|
|
Properly terminate FDE in makecontext for ix86 (bug 18635) |
|
|
|
Downstream never set test-xfail-tst-makecontext, so it is not removed by |
|
this patch. |
|
|
|
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S |
|
index 106b865066d346b6..48643864b05568b0 100644 |
|
--- a/sysdeps/unix/sysv/linux/i386/makecontext.S |
|
+++ b/sysdeps/unix/sysv/linux/i386/makecontext.S |
|
@@ -83,6 +83,10 @@ ENTRY(__makecontext) |
|
#else |
|
movl $L(exitcode), (%edx) |
|
#endif |
|
+ /* We need to terminate the FDE here instead of after ret because |
|
+ the unwinder looks at ra-1 for unwind information. */ |
|
+ cfi_endproc |
|
+ |
|
/* 'makecontext' returns no value. */ |
|
ret |
|
|
|
@@ -92,7 +96,6 @@ ENTRY(__makecontext) |
|
the context 'makecontext' manipulated at the time of the |
|
'makecontext' call. If the pointer is NULL the process must |
|
terminate. */ |
|
- cfi_endproc |
|
L(exitcode): |
|
/* This removes the parameters passed to the function given to |
|
'makecontext' from the stack. EBX contains the number of
|
|
|