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]

Community source repository for glibc add-on ports branch, master, updated. glibc-2.10.1-22-g53df8bc


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 "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  53df8bcec0cc4a07dcb0d13f9105a9002d9183d8 (commit)
      from  c67273d5b28317c87d2e9ee636ead6d71635e0e5 (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-ports.git;a=commitdiff;h=53df8bcec0cc4a07dcb0d13f9105a9002d9183d8

commit 53df8bcec0cc4a07dcb0d13f9105a9002d9183d8
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Aug 6 16:53:09 2009 +0000

    Add alternate signal stack support to ARM ____longjmp_chk.
    
    	* sysdeps/arm/____longjmp_chk.S: Remove.  Replaced by....
    	* sysdeps/unix/sysv/linux/arm/____longjmp_chk.S,
    	sysdeps/unix/sysv/linux/arm/eabi/____longjmp_chk.S: This.  New
    	files.
    	* sysdeps/arm/__longjmp.S, sysdeps/arm/eabi/__longjmp.S: Use r4
    	for saved sp.

diff --git a/ChangeLog.arm b/ChangeLog.arm
index fe87809..9df8b0f 100644
--- a/ChangeLog.arm
+++ b/ChangeLog.arm
@@ -1,3 +1,12 @@
+2009-08-06  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/arm/____longjmp_chk.S: Remove.  Replaced by....
+	* sysdeps/unix/sysv/linux/arm/____longjmp_chk.S,
+	sysdeps/unix/sysv/linux/arm/eabi/____longjmp_chk.S: This.  New
+	files.
+	* sysdeps/arm/__longjmp.S, sysdeps/arm/eabi/__longjmp.S: Use r4
+	for saved sp.
+
 2009-07-29  Aurelien Jarno  <aurelien@aurel32.net>
 
 	* sysdeps/unix/sysv/linux/arm/kernel-features.h: Define
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
index c834e78..09e6386 100644
--- a/sysdeps/arm/__longjmp.S
+++ b/sysdeps/arm/__longjmp.S
@@ -30,8 +30,8 @@ ENTRY (__longjmp)
 	moveq	r0, #1		/* can't let setjmp() return zero! */
 
 #ifdef CHECK_SP
-	ldr	r1, [ip, #32]
-	CHECK_SP (r1)
+	ldr	r4, [ip, #32]
+	CHECK_SP (r4)
 #endif
 	LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
 END (__longjmp)
diff --git a/sysdeps/arm/eabi/__longjmp.S b/sysdeps/arm/eabi/__longjmp.S
index 1f3f791..f283297 100644
--- a/sysdeps/arm/eabi/__longjmp.S
+++ b/sysdeps/arm/eabi/__longjmp.S
@@ -31,8 +31,8 @@ ENTRY (__longjmp)
 	moveq	r0, #1		/* can't let setjmp() return zero! */
 
 #ifdef CHECK_SP
-	ldr	r1, [ip, #32]
-	CHECK_SP (r1)
+	ldr	r4, [ip, #32]
+	CHECK_SP (r4)
 #endif
 	LOADREGS(ia, ip!, {v1-v6, sl, fp, sp, lr})
 
diff --git a/sysdeps/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
similarity index 79%
copy from sysdeps/arm/____longjmp_chk.S
copy to sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
index 16fc4cd..2fa727d 100644
--- a/sysdeps/arm/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
@@ -16,6 +16,7 @@
    Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.  */
 
+#include <sysdep.h>
 
 	.section .rodata.str1.1,"aMS",%progbits,1
 	.type	longjmp_msg,%object
@@ -47,9 +48,28 @@ longjmp_msg:
 #endif
 
 #define CHECK_SP(reg)				\
-	cmp	sp, reg;				\
+	cmp	sp, reg;			\
 	bls	.Lok;				\
+	mov	r5, r0;				\
+	mov	r0, #0;				\
+	sub	sp, sp, #16;			\
+	mov	r1, sp;				\
+	swi	#SYS_ify(sigaltstack);		\
+	cmp	r0, #0;				\
+	bne	.Lok2;				\
+	ldr	r1, [sp, #4];			\
+	tst	r1, #1;				\
+	beq	.Lfail;				\
+	ldr	r2, [sp, #0];			\
+	ldr	r3, [sp, #8];			\
+	add	r2, r2, r3;			\
+	sub	r2, r2, reg;			\
+	cmp	r2, r3;				\
+	bhi	.Lok2;				\
+.Lfail:						\
 	CALL_FAIL				\
+.Lok2:						\
+	mov	r0, r5;				\
 .Lok:
 
 #include <__longjmp.S>
diff --git a/sysdeps/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/eabi/____longjmp_chk.S
similarity index 78%
rename from sysdeps/arm/____longjmp_chk.S
rename to sysdeps/unix/sysv/linux/arm/eabi/____longjmp_chk.S
index 16fc4cd..f92a382 100644
--- a/sysdeps/arm/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/arm/eabi/____longjmp_chk.S
@@ -16,6 +16,7 @@
    Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.  */
 
+#include <sysdep.h>
 
 	.section .rodata.str1.1,"aMS",%progbits,1
 	.type	longjmp_msg,%object
@@ -47,9 +48,29 @@ longjmp_msg:
 #endif
 
 #define CHECK_SP(reg)				\
-	cmp	sp, reg;				\
+	cmp	sp, reg;			\
 	bls	.Lok;				\
+	mov	r5, r0;				\
+	mov	r7, #SYS_ify(sigaltstack);	\
+	mov	r0, #0;				\
+	sub	sp, sp, #16;			\
+	mov	r1, sp;				\
+	swi	#0;				\
+	cmp	r0, #0;				\
+	bne	.Lok2;				\
+	ldr	r1, [sp, #4];			\
+	tst	r1, #1;				\
+	beq	.Lfail;				\
+	ldr	r2, [sp, #0];			\
+	ldr	r3, [sp, #8];			\
+	add	r2, r2, r3;			\
+	sub	r2, r2, reg;			\
+	cmp	r2, r3;				\
+	bhi	.Lok2;				\
+.Lfail:						\
 	CALL_FAIL				\
+.Lok2:						\
+	mov	r0, r5;				\
 .Lok:
 
 #include <__longjmp.S>

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

Summary of changes:
 ChangeLog.arm                                      |    9 +++++++
 sysdeps/arm/__longjmp.S                            |    4 +-
 sysdeps/arm/eabi/__longjmp.S                       |    4 +-
 .../{ => unix/sysv/linux}/arm/____longjmp_chk.S    |   22 ++++++++++++++++++-
 .../sysv/linux/arm/eabi}/____longjmp_chk.S         |   23 +++++++++++++++++++-
 5 files changed, 56 insertions(+), 6 deletions(-)
 copy sysdeps/{ => unix/sysv/linux}/arm/____longjmp_chk.S (79%)
 rename sysdeps/{arm => unix/sysv/linux/arm/eabi}/____longjmp_chk.S (78%)


hooks/post-receive
-- 
Community source repository for glibc add-on ports


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