This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.23-234-ga5507df
- From: cltang at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Apr 2016 07:08:29 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.23-234-ga5507df
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via a5507dfa60a8b92ba52dadabea88e2b5d91da655 (commit)
from d454fd21f4366fc529f83fdcd8a1113c5b49853e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a5507dfa60a8b92ba52dadabea88e2b5d91da655
commit a5507dfa60a8b92ba52dadabea88e2b5d91da655
Author: Chung-Lin Tang <cltang@codesourcery.com>
Date: Mon Apr 25 00:08:17 2016 -0700
Fix stdlib/tst-makecontext regression for Nios II
diff --git a/ChangeLog b/ChangeLog
index 6563baf..b8b87ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/sysdeps/unix/sysv/linux/nios2/setcontext.S b/sysdeps/unix/sysv/linux/nios2/setcontext.S
index f10e8ff..177aa4b 100644
--- a/sysdeps/unix/sysv/linux/nios2/setcontext.S
+++ b/sysdeps/unix/sysv/linux/nios2/setcontext.S
@@ -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
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/unix/sysv/linux/nios2/setcontext.S | 12 ++++++++++++
2 files changed, 17 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources