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.18-709-ge646a16


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  e646a161cef3069fe1a6c92b750a87350630c62d (commit)
      from  030a4976b81de991f53d0d3c4d049f7903bd407c (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=e646a161cef3069fe1a6c92b750a87350630c62d

commit e646a161cef3069fe1a6c92b750a87350630c62d
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Dec 30 09:40:38 2013 +0000

    ia64: setjmp/longjmp: stop saving/restoring fpsr [BZ #16379]
    
    The new tst-setjmp-fp test has been failing on IA64 because the setjmp
    and longjmp helpers take care of saving/restoring the fpsr register.
    Per the C standards, this is incorrect, so disable that logic.
    
    URL: https://sourceware.org/bugzilla/show_bug.cgi?id=16379
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>

diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64
index b5c426e..d5e1924 100644
--- a/ports/ChangeLog.ia64
+++ b/ports/ChangeLog.ia64
@@ -1,5 +1,14 @@
 2013-12-30  Mike Frysinger  <vapier@gentoo.org>
 
+	[BZ #16379]
+	* sysdeps/unix/sysv/linux/ia64/__longjmp.S: Comment out loading of
+	fpsr.  Update offsets accordingly.
+	* sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/setjmp.S: Comment out saving of
+	fpsr.  Update offsets accordingly.
+
+2013-12-30  Mike Frysinger  <vapier@gentoo.org>
+
 	* sysdeps/unix/sysv/linux/ia64/setjmp.S (setjmp): Call __sigsetjmp
 	via HIDDEN_JUMPTARGET.
 	(_setjmp): Likewise.
@@ -304,9 +313,9 @@
 
 2012-09-24  Mike Frysinger  <vapier@gentoo.org>
 
-	* ports/sysdeps/ia64/fpu/fegetround.c (fegetround): Move contents
+	* sysdeps/ia64/fpu/fegetround.c (fegetround): Move contents
 	of function to ...
-	* ports/sysdeps/ia64/fpu/get-rounding-mode.h: ... here.
+	* sysdeps/ia64/fpu/get-rounding-mode.h: ... here.
 
 2012-09-24  Mike Frysinger  <vapier@gentoo.org>
 
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S
index 8a70ae2..4860a8c 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S
+++ b/ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S
@@ -82,12 +82,12 @@ LEAF(__longjmp)
 #ifdef CHECK_RSP
 	CHECK_RSP (r28)
 #endif
-	ld8.fill.nta gp=[r3],16		// r1 (gp)
+	ld8.fill.nta gp=[r3],32		// r1 (gp)
 	dep r11=-1,r23,3,6	// r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
 	mov sp=r28		// r12 (sp)
 	;;
 	ld8.nta r16=[r2],16		// caller's unat
-	ld8.nta r17=[r3],16		// fpsr
+//	ld8.nta r17=[r3],16		// fpsr
 	;;
 	ld8.fill.nta r4=[r2],16	// r4
 	ld8.fill.nta r5=[r3],16		// r5 (gp)
@@ -97,7 +97,7 @@ LEAF(__longjmp)
 	ld8.fill.nta r7=[r3],16		// r7
 	;;
 	mov ar.unat=r16			// restore caller's unat
-	mov ar.fpsr=r17			// restore fpsr
+//	mov ar.fpsr=r17			// restore fpsr
 	;;
 	ld8.nta r16=[r2],16		// b0
 	ld8.nta r17=[r3],16		// b1
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
index 41cc303..db61a2c 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
+++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
@@ -75,11 +75,11 @@ LEAF(__ia64_longjmp)
 	mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12)
 	;;
 	ld8.fill.nta sp=[r2],16	// r12 (sp)
-	ld8.fill.nta gp=[r3],16 // r1 (gp)
+	ld8.fill.nta gp=[r3],32 // r1 (gp)
 	dep r11=-1,r23,3,6	// r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
 	;;
 	ld8.nta r16=[r2],16		// caller's unat
-	ld8.nta r17=[r3],16		// fpsr
+//	ld8.nta r17=[r3],16		// fpsr
 	;;
 	ld8.fill.nta r4=[r2],16		// r4
 	ld8.fill.nta r5=[r3],16		// r5 (gp)
@@ -88,7 +88,7 @@ LEAF(__ia64_longjmp)
 	ld8.fill.nta r7=[r3],16		// r7
 	;;
 	mov ar.unat=r16			// restore caller's unat
-	mov ar.fpsr=r17			// restore fpsr
+//	mov ar.fpsr=r17			// restore fpsr
 	;;
 	ld8.nta r16=[r2],16		// b0
 	ld8.nta r17=[r3],16		// b1
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/setjmp.S b/ports/sysdeps/unix/sysv/linux/ia64/setjmp.S
index bf1b980..1be53cc 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/setjmp.S
+++ b/ports/sysdeps/unix/sysv/linux/ia64/setjmp.S
@@ -25,7 +25,7 @@
   	0x000	stack pointer (r12)	; unchangeable (see _JMPBUF_UNWINDS)
   	0x008	r1 (gp)
 	0x010	caller's unat
-	0x018	fpsr
+	0x018	fpsr			; disabled per the C standard; BZ 16379
   	0x020	r4
   	0x028	r5
   	0x030	r6
@@ -89,15 +89,15 @@ ENTRY(__sigsetjmp)
 	.save ar.unat, loc2
 	mov loc2=ar.unat
 	;;
-	mov r17=ar.fpsr
+//	mov r17=ar.fpsr
 	mov r2=in0
 	add r3=8,in0
 	;;
 .mem.offset 8,0;	st8.spill.nta [r2]=sp,16	// r12 (sp)
-.mem.offset 0,0;	st8.spill.nta [r3]=gp,16	// r1 (gp)
+.mem.offset 0,0;	st8.spill.nta [r3]=gp,32	// r1 (gp)
 	;;
 	st8.nta [r2]=loc2,16		// save caller's unat
-	st8.nta [r3]=r17,16		// save fpsr
+//	st8.nta [r3]=r17,16		// save fpsr
 	add r8=0xa0,in0
 	;;
 .mem.offset 8,0;	st8.spill.nta [r2]=r4,16	// r4

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

Summary of changes:
 ports/ChangeLog.ia64                               |   13 +++++++++++--
 ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S     |    6 +++---
 .../unix/sysv/linux/ia64/nptl/__ia64_longjmp.S     |    6 +++---
 ports/sysdeps/unix/sysv/linux/ia64/setjmp.S        |    8 ++++----
 4 files changed, 21 insertions(+), 12 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]