Author: schizo
Date: 2010-05-10 16:12:58 +0000 (Mon, 10 May 2010)
New Revision: 4263

Added:
   glibc-package/trunk/debian/patches/arm/cvs-setjmp-longjmp-fpu.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
Add patches/arm/cvs-setjmp-longjmp-fpu.diff.  closes: #580529 ("setjmp/longjmp 
broken on ARM w/ FPU").

Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2010-05-10 13:25:58 UTC (rev 
4262)
+++ glibc-package/trunk/debian/changelog        2010-05-10 16:12:58 UTC (rev 
4263)
@@ -6,6 +6,8 @@
   [ Clint Adams ]
   * Spanish debconf translation update from Omar Campagne Polaino.
     closes: #579351.
+  * Add patches/arm/cvs-setjmp-longjmp-fpu.diff.  closes: #580529
+    ("setjmp/longjmp broken on ARM w/ FPU").
 
  -- Clint Adams <[email protected]>  Tue, 27 Apr 2010 20:33:40 -0400
 

Added: glibc-package/trunk/debian/patches/arm/cvs-setjmp-longjmp-fpu.diff
===================================================================
--- glibc-package/trunk/debian/patches/arm/cvs-setjmp-longjmp-fpu.diff          
                (rev 0)
+++ glibc-package/trunk/debian/patches/arm/cvs-setjmp-longjmp-fpu.diff  
2010-05-10 16:12:58 UTC (rev 4263)
@@ -0,0 +1,44 @@
+--- a/ports/sysdeps/arm/eabi/__longjmp.S
++++ b/ports/sysdeps/arm/eabi/__longjmp.S
+@@ -55,12 +55,12 @@
+       beq     Lno_vfp
+ 
+       /* Restore the VFP registers.  */
+-      /* Following instruction is fldmiax ip!, {d8-d15}.  */
+-      ldc     p11, cr8, [r12], #68
++      /* Following instruction is vldmia ip!, {d8-d15}.  */
++      ldc     p11, cr8, [r12], #64
+       /* Restore the floating-point status register.  */
+-      ldr     r1, [ip], #4
+-      /* Following instruction is fmxr fpscr, r1.  */
+-      mcr     p10, 7, r1, cr1, cr0, 0
++      ldr     a3, [ip], #4
++      /* Following instruction is fmxr fpscr, a3.  */
++      mcr     p10, 7, a3, cr1, cr0, 0
+ Lno_vfp:
+ 
+       tst     a2, #HWCAP_ARM_IWMMXT
+--- a/ports/sysdeps/arm/eabi/setjmp.S
++++ b/ports/sysdeps/arm/eabi/setjmp.S
+@@ -52,13 +52,15 @@
+       tst     a3, #HWCAP_ARM_VFP
+       beq     Lno_vfp
+ 
+-      /* Store the VFP registers.  */
+-      /* Following instruction is fstmiax ip!, {d8-d15}.  */
+-      stc     p11, cr8, [r12], #68
++      /* Store the VFP registers.
++         Don't use VFP instructions directly because this code
++         is used in non-VFP multilibs.  */
++      /* Following instruction is vstmia ip!, {d8-d15}.  */
++      stc     p11, cr8, [ip], #64
+       /* Store the floating-point status register.  */
+-      /* Following instruction is fmrx r2, fpscr.  */
+-      mrc     p10, 7, r2, cr1, cr0, 0
+-      str     r2, [ip], #4
++      /* Following instruction is vmrs a4, fpscr.  */
++      mrc     p10, 7, a4, cr1, cr0, 0
++      str     a4, [ip], #4
+ Lno_vfp:
+ 
+       tst     a3, #HWCAP_ARM_IWMMXT

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2010-05-10 13:25:58 UTC (rev 
4262)
+++ glibc-package/trunk/debian/patches/series   2010-05-10 16:12:58 UTC (rev 
4263)
@@ -66,6 +66,7 @@
 arm/local-lowlevellock.diff
 arm/local-no-hwcap.diff
 arm/local-hwcap-updates.diff
+arm/cvs-setjmp-longjmp-fpu.diff
 
 hppa/submitted-sock_nonblock.diff
 hppa/local-inlining.diff


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to