mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 11:20:07 +00:00
Fix stdlib/tst-makecontext regression for Nios II
This commit is contained in:
parent
d454fd21f4
commit
a5507dfa60
@ -1,3 +1,8 @@
|
||||
2016-04-25 Chung-Lin Tang <cltang@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/nios2/setcontext.S (__startcontext):
|
||||
Add nop before __startcontext, add explaining comments.
|
||||
|
||||
2016-04-25 Samuel thibault <samuel.thibault@ens-lyon.org>
|
||||
|
||||
RFC2292 macros were obsoleted by RFC3542, and should not be exposed
|
||||
|
@ -85,6 +85,18 @@ ENTRY(__setcontext)
|
||||
PSEUDO_END (__setcontext)
|
||||
weak_alias (__setcontext, setcontext)
|
||||
|
||||
/* We add an NOP here to separate between __setcontext/__startcontext.
|
||||
The wanted behavior that happens is: when unwinding from a function
|
||||
called inside a makecontext() context, FDE lookup will use
|
||||
'&__startcontext - 1', then returns NULL for no FDE found,
|
||||
and immediately ends the unwind, in a normal fashion.
|
||||
|
||||
If this NOP word does not exist, FDE lookup just repeatedly finds
|
||||
__setcontext's FDE in an infinite loop, due to the convention of
|
||||
using 'address - 1' for FDE lookup. Modifiying/deleting the below
|
||||
__startcontext's FDE has no help on this. */
|
||||
nop
|
||||
|
||||
ENTRY(__startcontext)
|
||||
mov r4, r16
|
||||
bne r4, zero, __setcontext
|
||||
|
Loading…
Reference in New Issue
Block a user