forked from pool/glibc
Andreas Schwab
d4fa8c9010
(bsc#974800, BZ #20435) OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=445
43 lines
1.2 KiB
Diff
43 lines
1.2 KiB
Diff
From 1061d6fe364ddac7458a872839ea9efe8f7600f0 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schwab <schwab@suse.de>
|
|
Date: Mon, 8 Aug 2016 09:29:18 +0200
|
|
Subject: [PATCH] arm: mark __startcontext as .cantunwind
|
|
|
|
__startcontext marks the bottom of the call stack of the contexts created
|
|
by makecontext.
|
|
|
|
[BZ #20435]
|
|
* sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark
|
|
as .cantunwind.
|
|
---
|
|
sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++
|
|
1 file changed, 7 insertions(+)
|
|
|
|
diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
|
|
index 603e508..d1f168f 100644
|
|
--- a/sysdeps/unix/sysv/linux/arm/setcontext.S
|
|
+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
|
|
@@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext)
|
|
|
|
/* Called when a makecontext() context returns. Start the
|
|
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)
|
|
movs r0, r4
|
|
bne PLTJMP(__setcontext)
|
|
|
|
@ New context was 0 - exit
|
|
b PLTJMP(HIDDEN_JUMPTARGET(exit))
|
|
+ .fnend
|
|
END(__startcontext)
|
|
|
|
#ifdef PIC
|
|
--
|
|
2.9.2
|
|
|