about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2015-08-20 15:25:18 +0200
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2015-09-04 16:03:00 -0300
commitb4b522f6108e2116fb806e4f29b25542062dd84b (patch)
tree09c66efad88aae0257dabf90233548e3d27cd044
parent41a4f0d493e98199d147be93431e74a932fd2b69 (diff)
downloadglibc-b4b522f6108e2116fb806e4f29b25542062dd84b.tar.gz
glibc-b4b522f6108e2116fb806e4f29b25542062dd84b.tar.xz
glibc-b4b522f6108e2116fb806e4f29b25542062dd84b.zip
Terminate FDE before return trampoline in makecontext for powerpc (bug 18635)
This fixes tst-makecontext for PowerPC.

	[BZ #18635]
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
	(__makecontext): Terminate FDE before return label.
	(__novec_makecontext): Likewise.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S6
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 09ff85f016..76bbb73cac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-09-04  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #18635]
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+	(__makecontext): Terminate FDE before return label.
+	(__novec_makecontext): Likewise.
+
 2015-09-04  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
 
 	* sysdeps/unix/sysv/linux/socketpair.c: Use the address of the
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
index 1d6915b5ec..472f5a5b8f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
@@ -94,6 +94,8 @@ ENTRY(__makecontext)
 
 	blr
 
+	cfi_endproc
+	nop
 /*
  * If the function returns, it comes here.  We put ucp->uc_link in
  * r31, which is a callee-saved register.  We have to continue with
@@ -106,6 +108,7 @@ L(exitcode):
 4:	bl	HIDDEN_JUMPTARGET(exit)
 	b	4b
 
+	cfi_startproc
 END(__makecontext)
 
 versioned_symbol (libc, __makecontext, makecontext, GLIBC_2_3_4)
@@ -185,6 +188,8 @@ ENTRY(__novec_makecontext)
 
 	blr
 
+	cfi_endproc
+	nop
 /*
  * If the function returns, it comes here.  We put ucp->uc_link in
  * r31, which is a callee-saved register.  We have to continue with
@@ -197,6 +202,7 @@ L(novec_exitcode):
 4:	bl	HIDDEN_JUMPTARGET(exit)
 	b	4b
 
+	cfi_startproc
 END(__novec_makecontext)
 	.previous