This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-1205-ga9def8c


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  a9def8c49d22815801408e62bedca26810cfceb7 (commit)
      from  2a649725b939fe8a50089cce9644b9649ef4fe43 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a9def8c49d22815801408e62bedca26810cfceb7

commit a9def8c49d22815801408e62bedca26810cfceb7
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Sat Jun 23 11:42:29 2012 +0200

    SH: makecontext/.Lexitcode: Always initialize the GOT register before use.
    
    This is only relevant when returning from a context with »uc_link == NULL«,
    which is not exercised in the testsuite.

diff --git a/ChangeLog b/ChangeLog
index 49c98fb..751797d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-06-23  Thomas Schwinge  <thomas@codesourcery.com>
 
+	* sysdeps/unix/sysv/linux/sh/makecontext.S (.Lexitcode): Always
+	initialize the GOT register before use.
+
 	* sysdeps/unix/sysv/linux/sh/makecontext.S (__makecontext): Fix
 	calculation of ARGC > 4.
 
diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S
index 4a0207a..a847bb6 100644
--- a/sysdeps/unix/sysv/linux/sh/makecontext.S
+++ b/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -97,22 +97,26 @@ ENTRY(__makecontext)
 
 	.align	5
 .Lexitcode:
-	tst	r8, r8		/* ucb->uc_link == NULL? */
-	bt/s	2f
-	 mov	r8, r4		/* r4 <- ucb->uc_link */
 #ifdef PIC
 	mova	.Lgot, r0
 	mov.l	.Lgot, r12
 	add	r0, r12
+#endif
+	tst	r8, r8		/* ucb->uc_link == NULL? */
+	bt/s	2f
+	 mov	r8, r4		/* r4 <- ucb->uc_link */
 	mov.l	.Lsetcontext, r1
+#ifdef PIC
 	bsrf	r1
 .LPCS0:
 	 nop
 #else
-	mov.l	.Lsetcontext, r1
 	jsr	@r1
 	 nop
 #endif
+	/* If this returns (which can happen if the syscall fails) we'll exit
+	   the program with the return error value (-1).  */
+
 2:
 	mov.l	.Lexit, r1
 #ifdef PIC

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                |    3 +++
 sysdeps/unix/sysv/linux/sh/makecontext.S |   12 ++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]