aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386/makecontext.S
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2015-08-04 12:35:50 +0200
committerAndreas Schwab <schwab@suse.de>2015-08-04 17:46:56 +0200
commitbbab82c25da9b504c0804119840de7aeab0eeeba (patch)
treee5c124527f1aec3b7b03ffc5cbe5ad04dba4e075 /sysdeps/unix/sysv/linux/i386/makecontext.S
parent8cf0ac959d318cf113feb1a9ca5d325010bb2124 (diff)
downloadglibc-bbab82c25da9b504c0804119840de7aeab0eeeba.zip
glibc-bbab82c25da9b504c0804119840de7aeab0eeeba.tar.gz
glibc-bbab82c25da9b504c0804119840de7aeab0eeeba.tar.bz2
Properly terminate FDE in makecontext for ix86 (bug 18635)
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/makecontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
index 8364fb9..bcf8de6 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