[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r23290 - in /fsf/trunk/libc: ./ ports/ ports/sysdeps/arm/ ports/sysdeps/mips/ ports/sysdeps/mips/bits/ ports/sysdeps/mips/mi...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r23290 - in /fsf/trunk/libc: ./ ports/ ports/sysdeps/arm/ ports/sysdeps/mips/ ports/sysdeps/mips/bits/ ports/sysdeps/mips/mi...
- From: eglibc@xxxxxxxxxx
- Date: Sat, 15 Jun 2013 00:02:08 -0000
Author: eglibc
Date: Sat Jun 15 00:02:06 2013
New Revision: 23290
Log:
Import glibc-mainline for 2013-06-15
Added:
fsf/trunk/libc/ports/sysdeps/mips/math-tests.h
fsf/trunk/libc/sysdeps/x86_64/rtld-memset.S
Removed:
fsf/trunk/libc/sysdeps/x86_64/rtld-memset.c
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/ports/ChangeLog.arm
fsf/trunk/libc/ports/ChangeLog.microblaze
fsf/trunk/libc/ports/ChangeLog.mips
fsf/trunk/libc/ports/sysdeps/arm/fpu_control.h
fsf/trunk/libc/ports/sysdeps/mips/__longjmp.c
fsf/trunk/libc/ports/sysdeps/mips/bits/setjmp.h
fsf/trunk/libc/ports/sysdeps/mips/mips64/__longjmp.c
fsf/trunk/libc/ports/sysdeps/mips/mips64/setjmp_aux.c
fsf/trunk/libc/ports/sysdeps/mips/setjmp_aux.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h
fsf/trunk/libc/stdlib/tst-strtod-round.c
fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat Jun 15 00:02:06 2013
@@ -1,3 +1,23 @@
+2013-06-14 Liubov Dmitrieva <liubov.dmitrieva@xxxxxxxxx>
+
+ * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+ Set bit_Fast_Unaligned_Load for Intel Silvermont architecture.
+
+2013-06-14 Siddhesh Poyarekar <siddhesh@xxxxxxxxxx>
+ H.J. Lu <hjl.tools@xxxxxxxxx>
+
+ [BZ #15627]
+ * sysdeps/x86_64/rtld-memset.c: Remove file.
+ * sysdeps/x86_64/rtld-memset.S: New file.
+
+2013-06-14 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * stdlib/tst-strtod-round.c: Include <math-tests.h>.
+ (test_in_one_mode): Take arguments for whether the rounding mode
+ is supported for each floating-point type.
+ (do_test): Pass new arguments to test_in_one_mode using
+ ROUNDING_TESTS.
+
2013-06-13 Roland McGrath <roland@xxxxxxxxxxxxx>
* posix/tst-waitid.c (do_test): Distinguish different instances of
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sat Jun 15 00:02:06 2013
@@ -12,15 +12,15 @@
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, 15493, 15497, 15506, 15529, 15536, 15553,
- 15577, 15583, 15618.
+ 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).
Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Sat Jun 15 00:02:06 2013
@@ -1,3 +1,9 @@
+2013-06-14 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #15492]
+ * sysdeps/arm/fpu_control.h [_LIBC || !__SOFTFP__]
+ (_FPU_RESERVED): Change value to 0x00086060.
+
2013-06-11 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/arm/math-tests.h [__SOFTFP__] (EXCEPTION_TESTS_float):
Modified: fsf/trunk/libc/ports/ChangeLog.microblaze
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.microblaze (original)
+++ fsf/trunk/libc/ports/ChangeLog.microblaze Sat Jun 15 00:02:06 2013
@@ -1,3 +1,8 @@
+2013-06-14 David Holsgrove <david.holsgrove@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h: Correct
+ return from macros.
+
2013-06-05 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
* sysdeps/microblaze/bits/atomic.h: Remove executable mode.
Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Sat Jun 15 00:02:06 2013
@@ -1,3 +1,19 @@
+2013-06-14 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [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@xxxxxxxxxxxxxxxx>
* sysdeps/mips/fpu/fgetexcptflg.c: Remove trailing whitespace.
Modified: fsf/trunk/libc/ports/sysdeps/arm/fpu_control.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/fpu_control.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/fpu_control.h Sat Jun 15 00:02:06 2013
@@ -39,7 +39,7 @@
/* Some bits in the FPSCR are not yet defined. They must be preserved when
modifying the contents. */
-#define _FPU_RESERVED 0x0e08e0e0
+#define _FPU_RESERVED 0x00086060
#define _FPU_DEFAULT 0x00000000
/* Default + exceptions enabled. */
#define _FPU_IEEE (_FPU_DEFAULT | 0x00001f00)
Modified: fsf/trunk/libc/ports/sysdeps/mips/__longjmp.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/__longjmp.c (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/__longjmp.c Sat Jun 15 00:02:06 2013
@@ -47,10 +47,6 @@
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. */
Modified: fsf/trunk/libc/ports/sysdeps/mips/bits/setjmp.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/bits/setjmp.h (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/bits/setjmp.h Sat Jun 15 00:02:06 2013
@@ -59,8 +59,8 @@
__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
Added: fsf/trunk/libc/ports/sysdeps/mips/math-tests.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/math-tests.h (added)
+++ fsf/trunk/libc/ports/sysdeps/mips/math-tests.h Sat Jun 15 00:02:06 2013
@@ -1,0 +1,37 @@
+/* Configuration for math tests. MIPS version.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sgidefs.h>
+
+/* MIPS soft float does not support exceptions and rounding modes, and
+ long double when wider than double is implemented using fp-bit
+ which does not integrate with hardware exceptions and rounding
+ modes. */
+#ifdef __mips_soft_float
+# define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
+# define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
+# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
+# define EXCEPTION_TESTS_float 0
+# define EXCEPTION_TESTS_double 0
+# define EXCEPTION_TESTS_long_double 0
+#elif _MIPS_SIM != _ABIO32
+# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
+# define EXCEPTION_TESTS_long_double 0
+#endif
+
+#include_next <math-tests.h>
Modified: fsf/trunk/libc/ports/sysdeps/mips/mips64/__longjmp.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/mips64/__longjmp.c (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/mips64/__longjmp.c Sat Jun 15 00:02:06 2013
@@ -59,10 +59,6 @@
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. */
Modified: fsf/trunk/libc/ports/sysdeps/mips/mips64/setjmp_aux.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/mips64/setjmp_aux.c (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/mips64/setjmp_aux.c Sat Jun 15 00:02:06 2013
@@ -71,11 +71,6 @@
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);
}
Modified: fsf/trunk/libc/ports/sysdeps/mips/setjmp_aux.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/setjmp_aux.c (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/setjmp_aux.c Sat Jun 15 00:02:06 2013
@@ -58,11 +58,6 @@
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);
}
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/microblaze/nptl/lowlevellock.h Sat Jun 15 00:02:06 2013
@@ -87,7 +87,7 @@
__ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
__lll_private_flag (FUTEX_WAIT, private), \
(val), (timespec)); \
- INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ __ret; \
})
#define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
@@ -99,7 +99,7 @@
__lll_private_flag (__op, private), \
(val), (timespec), NULL /* Unused. */, \
FUTEX_BITSET_MATCH_ANY); \
- INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ __ret; \
})
#define lll_futex_wake(futexp, nr, private) \
@@ -109,7 +109,7 @@
__ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
__lll_private_flag (FUTEX_WAKE, private), \
(nr), 0); \
- INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ __ret; \
})
#define lll_robust_dead(futexv, private) \
@@ -160,7 +160,7 @@
__ret = INTERNAL_SYSCALL (futex, __err, 5, (futexp), \
__lll_private_flag (__op, private), \
(val), (timespec), mutex); \
- INTERNAL_SYSCALL_ERROR_P (__ret, __err) ? -__ret : __ret; \
+ __ret; \
})
#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \
Modified: fsf/trunk/libc/stdlib/tst-strtod-round.c
==============================================================================
--- fsf/trunk/libc/stdlib/tst-strtod-round.c (original)
+++ fsf/trunk/libc/stdlib/tst-strtod-round.c Sat Jun 15 00:02:06 2013
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <math-tests.h>
struct exactness
{
@@ -7538,7 +7539,9 @@
static int
test_in_one_mode (const char *s, const struct test_results *expected,
- const struct exactness *exact, const char *mode_name)
+ const struct exactness *exact, const char *mode_name,
+ bool float_round_ok, bool double_round_ok,
+ bool long_double_round_ok)
{
int result = 0;
float f = strtof (s, NULL);
@@ -7549,24 +7552,30 @@
{
printf ("strtof (%s) returned %a not %a (%s)\n", s, f,
expected->f, mode_name);
- result = 1;
+ if (float_round_ok || exact->f)
+ result = 1;
+ else
+ printf ("ignoring this inexact result\n");
}
if (d != expected->d
|| copysign (1.0, d) != copysign (1.0, expected->d))
{
printf ("strtod (%s) returned %a not %a (%s)\n", s, d,
expected->d, mode_name);
- result = 1;
+ if (double_round_ok || exact->d)
+ result = 1;
+ else
+ printf ("ignoring this inexact result\n");
}
if (ld != expected->ld
|| copysignl (1.0L, ld) != copysignl (1.0L, expected->ld))
{
printf ("strtold (%s) returned %La not %La (%s)\n", s, ld,
expected->ld, mode_name);
- if (LDBL_MANT_DIG != 106 || exact->ld)
+ if ((long_double_round_ok && LDBL_MANT_DIG != 106) || exact->ld)
result = 1;
else
- printf ("ignoring this inexact long double result\n");
+ printf ("ignoring this inexact result\n");
}
return result;
}
@@ -7579,12 +7588,17 @@
for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
{
result |= test_in_one_mode (tests[i].s, &tests[i].rn, &tests[i].exact,
- "default rounding mode");
+ "default rounding mode",
+ true, true, true);
#ifdef FE_DOWNWARD
if (!fesetround (FE_DOWNWARD))
{
result |= test_in_one_mode (tests[i].s, &tests[i].rd,
- &tests[i].exact, "FE_DOWNWARD");
+ &tests[i].exact, "FE_DOWNWARD",
+ ROUNDING_TESTS (float, FE_DOWNWARD),
+ ROUNDING_TESTS (double, FE_DOWNWARD),
+ ROUNDING_TESTS (long double,
+ FE_DOWNWARD));
fesetround (save_round_mode);
}
#endif
@@ -7592,7 +7606,11 @@
if (!fesetround (FE_TOWARDZERO))
{
result |= test_in_one_mode (tests[i].s, &tests[i].rz,
- &tests[i].exact, "FE_TOWARDZERO");
+ &tests[i].exact, "FE_TOWARDZERO",
+ ROUNDING_TESTS (float, FE_TOWARDZERO),
+ ROUNDING_TESTS (double, FE_TOWARDZERO),
+ ROUNDING_TESTS (long double,
+ FE_TOWARDZERO));
fesetround (save_round_mode);
}
#endif
@@ -7600,7 +7618,10 @@
if (!fesetround (FE_UPWARD))
{
result |= test_in_one_mode (tests[i].s, &tests[i].ru,
- &tests[i].exact, "FE_UPWARD");
+ &tests[i].exact, "FE_UPWARD",
+ ROUNDING_TESTS (float, FE_UPWARD),
+ ROUNDING_TESTS (double, FE_UPWARD),
+ ROUNDING_TESTS (long double, FE_UPWARD));
fesetround (save_round_mode);
}
#endif
Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c Sat Jun 15 00:02:06 2013
@@ -76,6 +76,13 @@
case 0x26:
/* BSF is slow on Atom. */
__cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF;
+ break;
+
+ case 0x37:
+ /* Unaligned load versions are faster than SSSE3
+ on Silvermont. */
+ __cpu_features.feature[index_Fast_Unaligned_Load]
+ |= bit_Fast_Unaligned_Load;
break;
default:
Added: fsf/trunk/libc/sysdeps/x86_64/rtld-memset.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/rtld-memset.S (added)
+++ fsf/trunk/libc/sysdeps/x86_64/rtld-memset.S Sat Jun 15 00:02:06 2013
@@ -1,0 +1,37 @@
+/* memset implementation for the dynamic linker. This is separate from the
+ libc implementation to avoid writing to SSE registers.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "asm-syntax.h"
+
+
+ .text
+/* void *memset (void *dest, char c, size_t count)
+ dest => %rdi
+ c => %rsi
+ count => %rdx */
+ENTRY (memset)
+ mov %rdx, %rcx
+ movzbl %sil, %eax
+ mov %rdi, %rdx
+ rep stosb
+ mov %rdx, %rax
+ ret
+END (memset)
+libc_hidden_builtin_def (memset)
Removed: fsf/trunk/libc/sysdeps/x86_64/rtld-memset.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/rtld-memset.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/rtld-memset.c (removed)
@@ -1,1 +1,0 @@
-#include <string/memset.c>
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits