arm: mark __startcontext as .cantunwind (bug 20435)

__startcontext marks the bottom of the call stack of the contexts created
by makecontext.
This commit is contained in:
Andreas Schwab 2016-08-08 09:29:18 +02:00
parent 89b7dd27ea
commit 9e2ff6c9cc
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-08-15 Andreas Schwab <schwab@suse.de>
[BZ #20435]
* sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark
as .cantunwind.
2016-08-12 Joseph Myers <joseph@codesourcery.com> 2016-08-12 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Add * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Add

View File

@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext)
/* Called when a makecontext() context returns. Start the /* Called when a makecontext() context returns. Start the
context in R4 or fall through to exit(). */ context in R4 or fall through to exit(). */
/* Unwind descriptors are looked up based on PC - 2, so we have to
make sure to mark the instruction preceding the __startcontext
label as .cantunwind. */
.fnstart
.cantunwind
nop
ENTRY(__startcontext) ENTRY(__startcontext)
movs r0, r4 movs r0, r4
bne PLTJMP(__setcontext) bne PLTJMP(__setcontext)
@ New context was 0 - exit @ New context was 0 - exit
b PLTJMP(HIDDEN_JUMPTARGET(exit)) b PLTJMP(HIDDEN_JUMPTARGET(exit))
.fnend
END(__startcontext) END(__startcontext)
#ifdef PIC #ifdef PIC