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.17-814-g601eb33
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 14 Jun 2013 21:42:51 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-814-g601eb33
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 601eb33debf0c7548f52ba72cec4b3f362105e39 (commit)
from c69f6af9e5a03620c253e75fd925d38adaa3c039 (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=601eb33debf0c7548f52ba72cec4b3f362105e39
commit 601eb33debf0c7548f52ba72cec4b3f362105e39
Author: Joseph Myers <joseph@codesourcery.com>
Date: Fri Jun 14 21:42:24 2013 +0000
Stop MIPS setjmp / longjmp saving / restoring floating-point flags (bug 14909).
diff --git a/NEWS b/NEWS
index 31fcb6c..36de21e 100644
--- a/NEWS
+++ b/NEWS
@@ -12,15 +12,15 @@ Version 2.18
2546, 2560, 5159, 6809, 10060, 10062, 10357, 10686, 11120, 11561, 12387,
12515, 12723, 13550, 13889, 13951, 13988, 14142, 14176, 14200, 14256,
14280, 14293, 14317, 14327, 14478, 14496, 14582, 14686, 14812, 14888,
- 14894, 14908, 14920, 14952, 14964, 14981, 14982, 14985, 14991, 14994,
- 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023, 15036, 15054,
- 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160, 15214, 15221,
- 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327,
- 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359, 15361, 15366,
- 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419,
- 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442, 15448, 15465,
- 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15529, 15536,
- 15553, 15577, 15583, 15618, 15627.
+ 14894, 14908, 14909, 14920, 14952, 14964, 14981, 14982, 14985, 14991,
+ 14994, 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023, 15036,
+ 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160, 15214,
+ 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309,
+ 15327, 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359, 15361,
+ 15366, 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416, 15418,
+ 15419, 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442, 15448,
+ 15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15529,
+ 15536, 15553, 15577, 15583, 15618, 15627.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index e876ee2..66f859d 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,5 +1,17 @@
2013-06-14 Joseph Myers <joseph@codesourcery.com>
+ [BZ #14909]
+ * sysdeps/mips/bits/setjmp.h (struct __jmp_buf_internal_tag):
+ Rename __fpc_csr field to __glibc_reserved1.
+ * sysdeps/mips/setjmp_aux.c (__sigsetjmp_aux) [__mips_hard_float]:
+ Do not set __fpc_csr.
+ * sysdeps/mips/mips64/setjmp_aux.c (__sigsetjmp_aux)
+ [__mips_hard_float]: Likewise.
+ * sysdeps/mips/__longjmp.c (____longjmp) [__mips_hard_float]: Do
+ not use __fpc_csr.
+ * sysdeps/mips/mips64/__longjmp.c (__longjmp) [__mips_hard_float]:
+ Likewise.
+
* sysdeps/mips/math-tests.h: New file.
2013-06-05 Joseph Myers <joseph@codesourcery.com>
diff --git a/ports/sysdeps/mips/__longjmp.c b/ports/sysdeps/mips/__longjmp.c
index 67bdb86..d1d7d64 100644
--- a/ports/sysdeps/mips/__longjmp.c
+++ b/ports/sysdeps/mips/__longjmp.c
@@ -47,10 +47,6 @@ ____longjmp (env_arg, val_arg)
asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[3]));
asm volatile ("l.d $f28, %0" : : "m" (env[0].__fpregs[4]));
asm volatile ("l.d $f30, %0" : : "m" (env[0].__fpregs[5]));
-
- /* Get and reconstruct the floating point csr. */
- asm volatile ("lw $2, %0" : : "m" (env[0].__fpc_csr));
- asm volatile ("ctc1 $2, $31");
#endif
/* Get the GP. */
diff --git a/ports/sysdeps/mips/bits/setjmp.h b/ports/sysdeps/mips/bits/setjmp.h
index d35b12d..437848f 100644
--- a/ports/sysdeps/mips/bits/setjmp.h
+++ b/ports/sysdeps/mips/bits/setjmp.h
@@ -59,8 +59,8 @@ typedef struct __jmp_buf_internal_tag
__extension__ long long __gp;
#endif
- /* Floating point status register. */
- int __fpc_csr;
+ /* Unused (was floating point status register). */
+ int __glibc_reserved1;
/* Callee-saved floating point registers. */
#if _MIPS_SIM == _ABI64
diff --git a/ports/sysdeps/mips/mips64/__longjmp.c b/ports/sysdeps/mips/mips64/__longjmp.c
index 1e42e9c..bffb113 100644
--- a/ports/sysdeps/mips/mips64/__longjmp.c
+++ b/ports/sysdeps/mips/mips64/__longjmp.c
@@ -59,10 +59,6 @@ __longjmp (env_arg, val_arg)
asm volatile ("l.d $f28, %0" : : "m" (env[0].__fpregs[4]));
asm volatile ("l.d $f30, %0" : : "m" (env[0].__fpregs[5]));
#endif
-
- /* Get and reconstruct the floating point csr. */
- asm volatile ("lw $2, %0" : : "m" (env[0].__fpc_csr));
- asm volatile ("ctc1 $2, $31");
#endif
/* Get the GP. */
diff --git a/ports/sysdeps/mips/mips64/setjmp_aux.c b/ports/sysdeps/mips/mips64/setjmp_aux.c
index 9515f44..9318303 100644
--- a/ports/sysdeps/mips/mips64/setjmp_aux.c
+++ b/ports/sysdeps/mips/mips64/setjmp_aux.c
@@ -71,11 +71,6 @@ __sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp,
asm volatile ("sd $22, %0" : : "m" (env[0].__jmpbuf[0].__regs[6]));
asm volatile ("sd $23, %0" : : "m" (env[0].__jmpbuf[0].__regs[7]));
-#ifdef __mips_hard_float
- /* .. and finally get and reconstruct the floating point csr. */
- asm ("cfc1 %0, $31" : "=r" (env[0].__jmpbuf[0].__fpc_csr));
-#endif
-
/* Save the signal mask if requested. */
return __sigjmp_save (env, savemask);
}
diff --git a/ports/sysdeps/mips/setjmp_aux.c b/ports/sysdeps/mips/setjmp_aux.c
index cb9ea24..26715b7 100644
--- a/ports/sysdeps/mips/setjmp_aux.c
+++ b/ports/sysdeps/mips/setjmp_aux.c
@@ -58,11 +58,6 @@ __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
asm volatile ("sw $22, %0" : : "m" (env[0].__jmpbuf[0].__regs[6]));
asm volatile ("sw $23, %0" : : "m" (env[0].__jmpbuf[0].__regs[7]));
-#ifdef __mips_hard_float
- /* .. and finally get and reconstruct the floating point csr. */
- asm ("cfc1 %0, $31" : "=r" (env[0].__jmpbuf[0].__fpc_csr));
-#endif
-
/* Save the signal mask if requested. */
return __sigjmp_save (env, savemask);
}
-----------------------------------------------------------------------
Summary of changes:
NEWS | 18 +++++++++---------
ports/ChangeLog.mips | 12 ++++++++++++
ports/sysdeps/mips/__longjmp.c | 4 ----
ports/sysdeps/mips/bits/setjmp.h | 4 ++--
ports/sysdeps/mips/mips64/__longjmp.c | 4 ----
ports/sysdeps/mips/mips64/setjmp_aux.c | 5 -----
ports/sysdeps/mips/setjmp_aux.c | 5 -----
7 files changed, 23 insertions(+), 29 deletions(-)
hooks/post-receive
--
GNU C Library master sources