aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2015-08-05 23:20:49 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2015-08-05 23:35:28 +0200
commitbb1d31d06e400a42da4435e8649bb7a1451ef682 (patch)
treee174c355a15aefb1adbf9eb0d7200d7f4a54e602
parent72354ab5e1d61dec7606a8851f0eb1bb016f7af7 (diff)
downloadglibc-bb1d31d06e400a42da4435e8649bb7a1451ef682.zip
glibc-bb1d31d06e400a42da4435e8649bb7a1451ef682.tar.gz
glibc-bb1d31d06e400a42da4435e8649bb7a1451ef682.tar.bz2
Properly terminate FDE in makecontext for m68k (bug 18635)
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S5
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4f985f1..8c4a578 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-08-05 Andreas Schwab <schwab@linux-m68k.org>
+
+ [BZ #18635]
+ * sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S: Add nop
+ before return label.
+
2015-08-05 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18661]
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
index f6ee50d..5e717ab 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
@@ -74,8 +74,11 @@ ENTRY(__makecontext)
have to install the context listed in the uc_link element of
the context 'makecontext' manipulated at the time of the
'makecontext' call. If the pointer is NULL the process must
- terminate. */
+ terminate.
+ Make sure to separate the return label from the previous unwind
+ region, because the unwinder uses ra-1 to find the FDE. */
cfi_endproc
+ nop
1:
/* This removes the parameters passed to the function given to
'makecontext' from the stack. D7 contains the number of