mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-19 09:40:22 +08:00
25 lines
778 B
Diff
25 lines
778 B
Diff
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
|