[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r21500 - in /fsf/trunk/libc: ./ elf/ include/ include/bits/ math/ nptl/ nptl/sysdeps/unix/sysv/linux/sparc/ nptl/sysdeps/x86...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r21500 - in /fsf/trunk/libc: ./ elf/ include/ include/bits/ math/ nptl/ nptl/sysdeps/unix/sysv/linux/sparc/ nptl/sysdeps/x86...
- From: eglibc@xxxxxxxxxx
- Date: Sun, 04 Nov 2012 00:02:11 -0000
Author: eglibc
Date: Sun Nov 4 00:02:10 2012
New Revision: 21500
Log:
Import glibc-mainline for 2012-11-04
Added:
fsf/trunk/libc/include/bits/stdlib-float.h
fsf/trunk/libc/stdlib/bits/stdlib-float.h
fsf/trunk/libc/sysdeps/x86/Makefile
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/elf/elf.h
fsf/trunk/libc/include/fenv.h
fsf/trunk/libc/math/fclrexcpt.c
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h
fsf/trunk/libc/ports/ChangeLog.alpha
fsf/trunk/libc/ports/ChangeLog.am33
fsf/trunk/libc/ports/ChangeLog.arm
fsf/trunk/libc/ports/ChangeLog.hppa
fsf/trunk/libc/ports/ChangeLog.ia64
fsf/trunk/libc/ports/ChangeLog.m68k
fsf/trunk/libc/ports/ChangeLog.mips
fsf/trunk/libc/ports/ChangeLog.powerpc
fsf/trunk/libc/ports/ChangeLog.tile
fsf/trunk/libc/ports/sysdeps/alpha/fpu/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/alpha/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/am33/fpu/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/am33/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/arm/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/arm/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/hppa/fpu/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/hppa/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/ia64/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/ia64/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/m68k/fpu/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/m68k/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/mips/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/mips/fpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fclrexcpt.c
fsf/trunk/libc/ports/sysdeps/tile/bits/fenv.h
fsf/trunk/libc/ports/sysdeps/tile/libm-test-ulps
fsf/trunk/libc/scripts/cross-test-ssh.sh
fsf/trunk/libc/stdlib/Makefile
fsf/trunk/libc/stdlib/stdlib.h
fsf/trunk/libc/sysdeps/generic/math_private.h
fsf/trunk/libc/sysdeps/i386/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/i386/fpu/fenv_private.h
fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fma.c
fsf/trunk/libc/sysdeps/ieee754/ldbl-128/s_fmal.c
fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fma.c
fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fmal.c
fsf/trunk/libc/sysdeps/powerpc/bits/fenv.h
fsf/trunk/libc/sysdeps/powerpc/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/s390/fpu/bits/fenv.h
fsf/trunk/libc/sysdeps/s390/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/sh/sh4/fpu/bits/fenv.h
fsf/trunk/libc/sysdeps/sh/sh4/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/sparc/fpu/bits/fenv.h
fsf/trunk/libc/sysdeps/sparc/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/sparc/fpu/fenv_private.h
fsf/trunk/libc/sysdeps/x86/fpu/bits/fenv.h
fsf/trunk/libc/sysdeps/x86_64/fpu/fclrexcpt.c
fsf/trunk/libc/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sun Nov 4 00:02:10 2012
@@ -1,3 +1,126 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #14796]
+ * sysdeps/ieee754/dbl-64/s_fma.c (__fma): Set rounding mode to
+ FE_TONEAREST before applying Dekker multiplication and Knuth
+ addition. Clear inexact exceptions and check for exact zero
+ results afterwards.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fma.c (__fma): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c (__fmal): Likewise.
+ * math/libm-test.inc (fma_test): Add more tests.
+ (fma_test_towardzero): Likewise.
+ (fma_test_downward): Likewise.
+ (fma_test_upward): Likewise.
+ * sysdeps/generic/math_private.h (default_libc_fesetround): New
+ function.
+ (libc_fesetround): New macro.
+ (libc_fesetroundf): Likewise.
+ (libc_fesetroundl): Likewise.
+ * sysdeps/i386/fpu/fenv_private.h (libc_fesetround_sse): New
+ function.
+ (libc_fesetround_387): Likewise.
+ (libc_fesetroundf): New macro.
+ (libc_fesetround): Likewise.
+ (libc_fesetroundl): Likewise.
+ * sysdeps/sparc/fpu/fenv_private.h (libc_fesetround): New
+ function.
+ (libc_fesetroundf): New macro.
+ (libc_fesetround): Likewise.
+ (libc_fesetroundl): Likewise.
+ * include/fenv.h (feclearexcept): Add libm_hidden_proto.
+ * math/fclrexcpt.c (feclearexcept): Add libm_hidden_ver.
+ * sysdeps/i386/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+ * sysdeps/powerpc/fpu/fclrexcpt.c (feclearexcept): Likewise.
+ * sysdeps/s390/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_def.
+ * sysdeps/sh/sh4/fpu/fclrexcpt.c (feclearexcept): Likewise.
+ * sysdeps/sparc/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+ * sysdeps/x86_64/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_def.
+
+ [BZ #3439]
+ * sysdeps/powerpc/bits/fenv.h (FE_INEXACT): Define macro to
+ integer constant usable in #if and use that to give value to enum
+ constant.
+ (FE_DIVBYZERO): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_INVALID_SNAN): Likewise.
+ (FE_INVALID_ISI): Likewise.
+ (FE_INVALID_IDI): Likewise.
+ (FE_INVALID_ZDZ): Likewise.
+ (FE_INVALID_IMZ): Likewise.
+ (FE_INVALID_COMPARE): Likewise.
+ (FE_INVALID_SOFTWARE): Likewise.
+ (FE_INVALID_SQRT): Likewise.
+ (FE_INVALID_INTEGER_CONVERSION): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+ * sysdeps/s390/fpu/bits/fenv.h (FE_INVALID): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_INEXACT): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ * sysdeps/sh/sh4/fpu/bits/fenv.h (FE_INEXACT): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ * sysdeps/sparc/fpu/bits/fenv.h (FE_INVALID): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INEXACT): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+ * sysdeps/x86/fpu/bits/fenv.h (FE_INVALID): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_INEXACT): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_TOWARDZERO): Likewise.
+
+2012-11-02 Chris Metcalf <cmetcalf@xxxxxxxxxx>
+
+ * elf/elf.h (R_TILEGX_IMM16_X[01]_HW[012]_(|LAST_)PLT_PCREL): Add.
+
+2012-11-03 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ * scripts/cross-test-ssh.sh (command): Use newlines to separate
+ commands. Quote $PWD.
+ (blacklist_exports): Don't use remove_newlines. Replace "declare
+ -x" by "export".
+ (remove_newlines): Remove.
+
+2012-11-02 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ * stdlib/Makefile (headers): Add bits/stdlib-float.h.
+ * stdlib/stdlib.h (atof): Moved to ...
+ * include/bits/stdlib-float.h: Here. New file.
+ * stdlib/stdlib.h: Include <bits/stdlib-float.h>.
+ * stdlib/bits/stdlib-float.h: New file.
+ * sysdeps/x86/Makefile (CFLAGS-.os): Compile rtld routines with
+ -mno-sse -mno-mmx.
+ * sysdeps/x86_64/multiarch/strcasestr-nonascii.c: Include
+ <xmmintrin.h>.
+
2012-11-02 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* conform/conformtest.pl (@headers): Add fenv.h.
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sun Nov 4 00:02:10 2012
@@ -9,15 +9,16 @@
* The following bugs are resolved with this release:
- 1349, 3479, 5044, 5298, 5400, 6530, 6778, 6808, 9685, 9914, 10014, 10038,
- 10631, 11438, 11607, 12140, 13412, 13542, 13601, 13629, 13679, 13696,
- 13717, 13741, 13939, 13966, 14042, 14047, 14090, 14150, 14151, 14152,
- 14154, 14157, 14166, 14173, 14195, 14237, 14251, 14252, 14283, 14298,
- 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14376, 14417,
- 14459, 14476, 14477, 14505, 14510, 14516, 14518, 14519, 14530, 14532,
- 14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583,
- 14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648, 14652, 14660,
- 14661, 14669, 14683, 14694, 14716, 14743, 14767, 14783, 14784, 14785.
+ 1349, 3439, 3479, 5044, 5298, 5400, 6530, 6778, 6808, 9685, 9914, 10014,
+ 10038, 10631, 11438, 11607, 12140, 13412, 13542, 13601, 13629, 13679,
+ 13696, 13717, 13741, 13939, 13966, 14042, 14047, 14090, 14150, 14151,
+ 14152, 14154, 14157, 14166, 14173, 14195, 14237, 14251, 14252, 14283,
+ 14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14376,
+ 14417, 14459, 14476, 14477, 14505, 14510, 14516, 14518, 14519, 14530,
+ 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576, 14579,
+ 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648, 14652,
+ 14660, 14661, 14669, 14683, 14694, 14716, 14743, 14767, 14783, 14784,
+ 14785, 14796.
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
Optimized versions of memcpy, memset, and memcmp added for System z10 and
Modified: fsf/trunk/libc/elf/elf.h
==============================================================================
--- fsf/trunk/libc/elf/elf.h (original)
+++ fsf/trunk/libc/elf/elf.h Sun Nov 4 00:02:10 2012
@@ -2986,12 +2986,18 @@
#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63 /* X1 pipe PC-rel last hword 2 */
#define R_TILEGX_IMM16_X0_HW0_GOT 64 /* X0 pipe hword 0 GOT offset */
#define R_TILEGX_IMM16_X1_HW0_GOT 65 /* X1 pipe hword 0 GOT offset */
-/* Relocs 66-71 are currently not defined. */
+#define R_TILEGX_IMM16_X0_HW0_PLT_PCREL 66 /* X0 pipe PC-rel PLT hword 0 */
+#define R_TILEGX_IMM16_X1_HW0_PLT_PCREL 67 /* X1 pipe PC-rel PLT hword 0 */
+#define R_TILEGX_IMM16_X0_HW1_PLT_PCREL 68 /* X0 pipe PC-rel PLT hword 1 */
+#define R_TILEGX_IMM16_X1_HW1_PLT_PCREL 69 /* X1 pipe PC-rel PLT hword 1 */
+#define R_TILEGX_IMM16_X0_HW2_PLT_PCREL 70 /* X0 pipe PC-rel PLT hword 2 */
+#define R_TILEGX_IMM16_X1_HW2_PLT_PCREL 71 /* X1 pipe PC-rel PLT hword 2 */
#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72 /* X0 pipe last hword 0 GOT offset */
#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73 /* X1 pipe last hword 0 GOT offset */
#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74 /* X0 pipe last hword 1 GOT offset */
#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75 /* X1 pipe last hword 1 GOT offset */
-/* Relocs 76-77 are currently not defined. */
+#define R_TILEGX_IMM16_X0_HW3_PLT_PCREL 76 /* X0 pipe PC-rel PLT hword 3 */
+#define R_TILEGX_IMM16_X1_HW3_PLT_PCREL 77 /* X1 pipe PC-rel PLT hword 3 */
#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78 /* X0 pipe hword 0 TLS GD offset */
#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79 /* X1 pipe hword 0 TLS GD offset */
#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80 /* X0 pipe hword 0 TLS LE offset */
@@ -3007,7 +3013,12 @@
/* Relocs 90-91 are currently not defined. */
#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92 /* X0 pipe hword 0 TLS IE offset */
#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93 /* X1 pipe hword 0 TLS IE offset */
-/* Relocs 94-99 are currently not defined. */
+#define R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 94 /* X0 pipe PC-rel PLT last hword 0 */
+#define R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 95 /* X1 pipe PC-rel PLT last hword 0 */
+#define R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 96 /* X0 pipe PC-rel PLT last hword 1 */
+#define R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 97 /* X1 pipe PC-rel PLT last hword 1 */
+#define R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 98 /* X0 pipe PC-rel PLT last hword 2 */
+#define R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 99 /* X1 pipe PC-rel PLT last hword 2 */
#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100 /* X0 pipe last hword 0 IE off */
#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101 /* X1 pipe last hword 0 IE off */
#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102 /* X0 pipe last hword 1 IE off */
Added: fsf/trunk/libc/include/bits/stdlib-float.h
==============================================================================
--- fsf/trunk/libc/include/bits/stdlib-float.h (added)
+++ fsf/trunk/libc/include/bits/stdlib-float.h Sun Nov 4 00:02:10 2012
@@ -1,0 +1,4 @@
+/* No floating-point inline functions in rtld. */
+#ifndef IS_IN_rtld
+# include <stdlib/bits/stdlib-float.h>
+#endif
Modified: fsf/trunk/libc/include/fenv.h
==============================================================================
--- fsf/trunk/libc/include/fenv.h (original)
+++ fsf/trunk/libc/include/fenv.h Sun Nov 4 00:02:10 2012
@@ -20,6 +20,7 @@
libm_hidden_proto (feholdexcept)
libm_hidden_proto (feupdateenv)
libm_hidden_proto (fetestexcept)
+libm_hidden_proto (feclearexcept)
#endif
#endif
Modified: fsf/trunk/libc/math/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/math/fclrexcpt.c (original)
+++ fsf/trunk/libc/math/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -30,6 +30,7 @@
strong_alias (__feclearexcept, __old_feclearexcept)
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
stub_warning (feclearexcept)
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Sun Nov 4 00:02:10 2012
@@ -4649,6 +4649,10 @@
TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
TEST_fff_f (fma, 0x1.7fp+13, 0x1.0000000000001p+0, 0x1.ffep-48, 0x1.7f00000000001p+13);
@@ -4695,6 +4699,10 @@
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
TEST_fff_f (fma, -0x8.03fcp+3696L, 0xf.fffffffffffffffp-6140L, 0x8.3ffffffffffffffp-2450L, -0x8.01ecp-2440L);
@@ -4727,6 +4735,10 @@
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
TEST_fff_f (fma, 0x1.bb2de33e02ccbbfa6e245a7c1f71p-2584L, -0x1.6b500daf0580d987f1bc0cadfcddp-13777L, 0x1.613cd91d9fed34b33820e5ab9d8dp-16378L, -0x1.3a79fb50eb9ce887cffa0f09bd9fp-16360L);
@@ -4766,6 +4778,10 @@
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
#endif
END (fma);
@@ -4846,6 +4862,10 @@
TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
@@ -4872,6 +4892,10 @@
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
@@ -4898,6 +4922,10 @@
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
@@ -4924,6 +4952,10 @@
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
#endif
}
@@ -5007,6 +5039,10 @@
TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-148, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000002p-1023, UNDERFLOW_EXCEPTION);
@@ -5033,6 +5069,10 @@
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1073, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000004p-16383L, UNDERFLOW_EXCEPTION);
@@ -5059,6 +5099,10 @@
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16444L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000002p-16383L, UNDERFLOW_EXCEPTION);
@@ -5085,6 +5129,10 @@
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, plus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16493L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
#endif
}
@@ -5168,6 +5216,10 @@
TEST_fff_f (fma, 0x1p-149, -0x1p-149, 0x1p-149, 0x1p-149, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, 0x1p-149, -0x1p-149, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-149, -0x1p-149, -0x1p-149, -0x1p-149, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffp0, 0x0.fffp0, -0x0.ffep0, 0x1p-24);
+ TEST_fff_f (fma, 0x0.fffp0, -0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, 0x0.fffp0, 0x0.ffep0, -0x1p-24);
+ TEST_fff_f (fma, -0x0.fffp0, -0x0.fffp0, -0x0.ffep0, 0x1p-24);
#endif
#if defined (TEST_DOUBLE) && DBL_MANT_DIG == 53
TEST_fff_f (fma, 0x1.4p-1022, 0x1.0000000000002p-1, 0x1p-1024, 0x1.c000000000004p-1023, UNDERFLOW_EXCEPTION);
@@ -5194,6 +5246,10 @@
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, 0x1p-1074, -0x1p-1074, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
+ TEST_fff_f (fma, 0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, 0x0.fffffffffffff8p0, 0x0.fffffffffffffp0, -0x1p-106);
+ TEST_fff_f (fma, -0x0.fffffffffffff8p0, -0x0.fffffffffffff8p0, -0x0.fffffffffffffp0, 0x1p-106);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 64
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000004p-1L, 0x1p-16384L, 0x1.c000000000000008p-16383L, UNDERFLOW_EXCEPTION);
@@ -5220,6 +5276,10 @@
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, 0x1p-16445L, 0x1p-16445L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, 0x1p-16445L, -0x1p-16445L, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16445L, -0x1p-16445L, -0x1p-16445L, -0x1p-16445L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, 0x0.ffffffffffffffffp0L, 0x0.fffffffffffffffep0L, -0x1p-128L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffp0L, -0x0.ffffffffffffffffp0L, -0x0.fffffffffffffffep0L, 0x1p-128L);
#endif
#if defined (TEST_LDOUBLE) && LDBL_MANT_DIG == 113
TEST_fff_f (fma, 0x1.4p-16382L, 0x1.0000000000000000000000000002p-1L, 0x1p-16384L, 0x1.c000000000000000000000000004p-16383L, UNDERFLOW_EXCEPTION);
@@ -5246,6 +5306,10 @@
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, 0x1p-16494L, 0x1p-16494L, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, 0x1p-16494L, -0x1p-16494L, minus_zero, UNDERFLOW_EXCEPTION);
TEST_fff_f (fma, 0x1p-16494L, -0x1p-16494L, -0x1p-16494L, -0x1p-16494L, UNDERFLOW_EXCEPTION);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
+ TEST_fff_f (fma, 0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffff8p0L, 0x0.ffffffffffffffffffffffffffffp0L, -0x1p-226L);
+ TEST_fff_f (fma, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffff8p0L, -0x0.ffffffffffffffffffffffffffffp0L, 0x1p-226L);
#endif
}
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Sun Nov 4 00:02:10 2012
@@ -1,3 +1,15 @@
+2012-11-03 David S. Miller <davem@xxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
+ Add missing spaces.
+ (__cpu_relax): Likewise.
+
+2012-11-02 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ * sysdeps/x86_64/tls.h: Don't include <xmmintrin.h>.
+ (__128bits): New struct typedef.
+ (tcbhead_t): Replace __m128 with __128bits.
+
2012-10-30 Aurelien Jarno <aurelien@xxxxxxxxxxx>
Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h Sun Nov 4 00:02:10 2012
@@ -52,8 +52,8 @@
#ifndef __sparc32_atomic_do_lock
/* Delay in spinlock loop. */
-extern void __cpu_relax(void);
-#define BUSY_WAIT_NOP __cpu_relax()
+extern void __cpu_relax (void);
+#define BUSY_WAIT_NOP __cpu_relax ()
#endif
#if !defined NOT_IN_libc || defined IS_IN_rtld
Modified: fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h Sun Nov 4 00:02:10 2012
@@ -27,7 +27,14 @@
# include <stdlib.h>
# include <sysdep.h>
# include <kernel-features.h>
-# include <xmmintrin.h>
+
+/* Replacement type for __m128 since this file is included by ld.so,
+ which is compiled with -mno-sse. It must not change the alignment
+ of rtld_savespace_sse. */
+typedef struct
+{
+ int i[4];
+} __128bits;
/* Type for the dtv. */
@@ -64,7 +71,7 @@
void *__private_tm[5];
long int __unused2;
/* Have space for the post-AVX register size. */
- __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
+ __128bits rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
void *__padding[8];
} tcbhead_t;
Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Sun Nov 4 00:02:10 2012
@@ -1,3 +1,23 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/alpha/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+
+ [BZ #3439]
+ * sysdeps/alpha/fpu/bits/fenv.h (FE_DENORMAL): Define macro to
+ integer constant usable in #if and use that to give value to enum
+ constant.
+ (FE_INEXACT): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_ALL_EXCEPT): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_UPWARD): Likewise.
+
2012-11-01 Andreas Jaeger <aj@xxxxxxx>
* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Remove all
Modified: fsf/trunk/libc/ports/ChangeLog.am33
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.am33 (original)
+++ fsf/trunk/libc/ports/ChangeLog.am33 Sun Nov 4 00:02:10 2012
@@ -1,3 +1,18 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/am33/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+
+ [BZ #3439]
+ * sysdeps/am33/fpu/bits/fenv.h (FE_INEXACT): Define macro to
+ integer constant usable in #if and use that to give value to enum
+ constant.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_TONEAREST): Likewise.
+
2012-10-30 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
[BZ #14047]
Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Sun Nov 4 00:02:10 2012
@@ -1,3 +1,20 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/arm/fclrexcpt.c (feclearexcept): Add libm_hidden_ver.
+
+ [BZ #3439]
+ * sysdeps/arm/bits/fenv.h (FE_INVALID): Define macro to integer
+ constant usable in #if and use that to give value to enum
+ constant.
+ (FE_DIVBYZERO): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_INEXACT): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_TOWARDZERO): Likewise.
+
2012-10-22 Roland McGrath <roland@xxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
Modified: fsf/trunk/libc/ports/ChangeLog.hppa
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.hppa (original)
+++ fsf/trunk/libc/ports/ChangeLog.hppa Sun Nov 4 00:02:10 2012
@@ -1,3 +1,21 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/hppa/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_def.
+
+ [BZ #3439]
+ * sysdeps/hppa/fpu/bits/fenv.h (FE_INVALID): Define macro to
+ integer constant usable in #if and use that to give value to enum
+ constant.
+ (FE_DIVBYZERO): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_INEXACT): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+
2012-10-30 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
[BZ #14047]
Modified: fsf/trunk/libc/ports/ChangeLog.ia64
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.ia64 (original)
+++ fsf/trunk/libc/ports/ChangeLog.ia64 Sun Nov 4 00:02:10 2012
@@ -1,3 +1,23 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/ia64/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_def.
+
+ [BZ #3439]
+ * sysdeps/ia64/bits/fenv.h (FE_INEXACT): Define macro to integer
+ constant usable in #if and use that to give value to enum
+ constant.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_UNNORMAL): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_ALL_EXCEPT): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_TONEAREST): Likewise.
+
2012-10-30 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
[BZ #14047]
Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Sun Nov 4 00:02:10 2012
@@ -1,3 +1,21 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/m68k/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+
+ [BZ #3439]
+ * sysdeps/m68k/fpu/bits/fenv.h (FE_INEXACT): Define macro to
+ integer constant usable in #if and use that to give value to enum
+ constant.
+ (FE_DIVBYZERO): Likewise.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (FE_UPWARD): Likewise.
+
2012-10-25 Andreas Jaeger <aj@xxxxxxx>
* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Remove all
Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Sun Nov 4 00:02:10 2012
@@ -1,3 +1,21 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/fpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_def.
+
+ [BZ #3439]
+ * sysdeps/mips/bits/fenv.h (FE_INEXACT): Define macro to integer
+ constant usable in #if and use that to give value to enum
+ constant.
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_TONEAREST): Likewise.
+ (FE_TOWARDZERO): Likewise.
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+
2012-11-01 Thomas Schwinge <thomas@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/configure: Regenerate.
Modified: fsf/trunk/libc/ports/ChangeLog.powerpc
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.powerpc (original)
+++ fsf/trunk/libc/ports/ChangeLog.powerpc Sun Nov 4 00:02:10 2012
@@ -1,3 +1,8 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/powerpc/nofpu/fclrexcpt.c (feclearexcept): Add
+ libm_hidden_ver.
+
2012-10-31 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist:
Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Sun Nov 4 00:02:10 2012
@@ -1,3 +1,14 @@
+2012-11-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #3439]
+ * sysdeps/tile/bits/fenv.h (FE_TONEAREST): Define macro to integer
+ constant usable in #if and use that to give value to enum
+ constant.
+
+2012-11-03 Chris Metcalf <cmetcalf@xxxxxxxxxx>
+
+ * sysdeps/tile/libm-test-ulps: Account for new tests.
+
2012-10-30 Chris Metcalf <cmetcalf@xxxxxxxxxx>
* sysdeps/tile/dl-machine.h: Use new DL_AFTER_LOAD macro
Modified: fsf/trunk/libc/ports/sysdeps/alpha/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/alpha/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/alpha/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -36,27 +36,34 @@
enum
{
#ifdef __USE_GNU
- FE_DENORMAL = 1UL << 22,
-#define FE_DENORMAL FE_DENORMAL
+ FE_DENORMAL =
+#define FE_DENORMAL (1 << 22)
+ FE_DENORMAL,
#endif
- FE_INEXACT = 1UL << 21,
-#define FE_INEXACT FE_INEXACT
+ FE_INEXACT =
+#define FE_INEXACT (1 << 21)
+ FE_INEXACT,
- FE_UNDERFLOW = 1UL << 20,
-#define FE_UNDERFLOW FE_UNDERFLOW
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1 << 20)
+ FE_UNDERFLOW,
- FE_OVERFLOW = 1UL << 19,
-#define FE_OVERFLOW FE_OVERFLOW
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1 << 19)
+ FE_OVERFLOW,
- FE_DIVBYZERO = 1UL << 18,
-#define FE_DIVBYZERO FE_DIVBYZERO
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1 << 18)
+ FE_DIVBYZERO,
- FE_INVALID = 1UL << 17,
-#define FE_INVALID FE_INVALID
+ FE_INVALID =
+#define FE_INVALID (1 << 17)
+ FE_INVALID,
- FE_ALL_EXCEPT = 0x3f << 17
-#define FE_ALL_EXCEPT FE_ALL_EXCEPT
+ FE_ALL_EXCEPT =
+#define FE_ALL_EXCEPT (0x3f << 17)
+ FE_ALL_EXCEPT
};
/* Alpha chips support all four defined rouding modes.
@@ -70,17 +77,21 @@
enum
{
- FE_TOWARDZERO = 0,
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0
+ FE_TOWARDZERO,
- FE_DOWNWARD = 1,
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_DOWNWARD =
+#define FE_DOWNWARD 1
+ FE_DOWNWARD,
- FE_TONEAREST = 2,
-#define FE_TONEAREST FE_TONEAREST
+ FE_TONEAREST =
+#define FE_TONEAREST 2
+ FE_TONEAREST,
- FE_UPWARD = 3,
-#define FE_UPWARD FE_UPWARD
+ FE_UPWARD =
+#define FE_UPWARD 3
+ FE_UPWARD,
};
#ifdef __USE_GNU
Modified: fsf/trunk/libc/ports/sysdeps/alpha/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/alpha/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/alpha/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@xxxxxxxx>, 1997.
@@ -43,4 +43,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/am33/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/am33/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/am33/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@xxxxxxxxxx>
based on the corresponding file in the mips port.
@@ -26,16 +26,21 @@
positions of the appropriate bits in the FPCR register. */
enum
{
- FE_INEXACT = 0x01,
-#define FE_INEXACT FE_INEXACT
- FE_UNDERFLOW = 0x02,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_OVERFLOW = 0x04,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_DIVBYZERO = 0x08,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INVALID = 0x10,
-#define FE_INVALID FE_INVALID
+ FE_INEXACT =
+#define FE_INEXACT 0x01
+ FE_INEXACT,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x02
+ FE_UNDERFLOW,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x04
+ FE_OVERFLOW,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x08
+ FE_DIVBYZERO,
+ FE_INVALID =
+#define FE_INVALID 0x10
+ FE_INVALID,
};
#define FE_ALL_EXCEPT \
@@ -45,8 +50,9 @@
reserved to represent other rounding modes. */
enum
{
- FE_TONEAREST = 0x00000,
-#define FE_TONEAREST FE_TONEAREST
+ FE_TONEAREST =
+#define FE_TONEAREST 0x00000
+ FE_TONEAREST,
};
Modified: fsf/trunk/libc/ports/sysdeps/am33/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/am33/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/am33/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@xxxxxxxxxx>
based on corresponding file in the MIPS port.
@@ -48,4 +48,5 @@
return 0;
}
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/arm/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -22,16 +22,21 @@
/* Define bits representing exceptions in the FPU status word. */
enum
{
- FE_INVALID = 1,
-#define FE_INVALID FE_INVALID
- FE_DIVBYZERO = 2,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_OVERFLOW = 4,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = 8,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_INEXACT = 16,
-#define FE_INEXACT FE_INEXACT
+ FE_INVALID =
+#define FE_INVALID 1
+ FE_INVALID,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 2
+ FE_DIVBYZERO,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 4
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 8
+ FE_UNDERFLOW,
+ FE_INEXACT =
+#define FE_INEXACT 16
+ FE_INEXACT,
};
/* Amount to shift by to convert an exception to a mask bit. */
@@ -44,14 +49,18 @@
/* VFP supports all of the four defined rounding modes. */
enum
{
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
- FE_UPWARD = 0x400000,
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = 0x800000,
-#define FE_DOWNWARD FE_DOWNWARD
- FE_TOWARDZERO = 0xc00000
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
+ FE_UPWARD =
+#define FE_UPWARD 0x400000
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD 0x800000
+ FE_DOWNWARD,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0xc00000
+ FE_TOWARDZERO
};
/* Type representing exception flags. */
Modified: fsf/trunk/libc/ports/sysdeps/arm/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -54,4 +54,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/hppa/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/hppa/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/hppa/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@xxxxxxxxxx>
@@ -26,16 +26,21 @@
27 bits). */
enum
{
- FE_INVALID = 1<<4, /* V */
-#define FE_INVALID FE_INVALID
- FE_DIVBYZERO = 1<<3, /* Z */
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_OVERFLOW = 1<<2, /* O */
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = 1<<1, /* U */
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_INEXACT = 1<<0, /* I */
-#define FE_INEXACT FE_INEXACT
+ FE_INVALID =
+#define FE_INVALID (1<<4) /* V */
+ FE_INVALID,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1<<3) /* Z */
+ FE_DIVBYZERO,
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1<<2) /* O */
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1<<1) /* U */
+ FE_UNDERFLOW,
+ FE_INEXACT =
+#define FE_INEXACT (1<<0) /* I */
+ FE_INEXACT,
};
#define FE_ALL_EXCEPT \
@@ -46,14 +51,18 @@
register for the appropriate macros. */
enum
{
- FE_TONEAREST = 0 << 9,
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = 1 << 9,
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = 2 << 9,
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = 3 << 9,
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_TONEAREST =
+#define FE_TONEAREST (0 << 9)
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO (1 << 9)
+ FE_TOWARDZERO,
+ FE_UPWARD =
+#define FE_UPWARD (2 << 9)
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD (3 << 9)
+ FE_DOWNWARD,
};
/* Type representing exception flags. */
Modified: fsf/trunk/libc/ports/sysdeps/hppa/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/hppa/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/hppa/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@xxxxxxxxxx>, 2000
@@ -33,3 +33,4 @@
/* Success. */
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/ports/sysdeps/ia64/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/ia64/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/ia64/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -25,43 +25,53 @@
enum
{
- FE_INEXACT = 1UL << 5,
-#define FE_INEXACT FE_INEXACT
+ FE_INEXACT =
+#define FE_INEXACT (1 << 5)
+ FE_INEXACT,
- FE_UNDERFLOW = 1UL << 4,
-#define FE_UNDERFLOW FE_UNDERFLOW
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1 << 4)
+ FE_UNDERFLOW,
- FE_OVERFLOW = 1UL << 3,
-#define FE_OVERFLOW FE_OVERFLOW
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1 << 3)
+ FE_OVERFLOW,
- FE_DIVBYZERO = 1UL << 2,
-#define FE_DIVBYZERO FE_DIVBYZERO
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1 << 2)
+ FE_DIVBYZERO,
- FE_UNNORMAL = 1UL << 1,
-#define FE_UNNORMAL FE_UNNORMAL
+ FE_UNNORMAL =
+#define FE_UNNORMAL (1 << 1)
+ FE_UNNORMAL,
- FE_INVALID = 1UL << 0,
-#define FE_INVALID FE_INVALID
+ FE_INVALID =
+#define FE_INVALID (1 << 0)
+ FE_INVALID,
FE_ALL_EXCEPT =
- (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_UNNORMAL | FE_INVALID)
-#define FE_ALL_EXCEPT FE_ALL_EXCEPT
+#define FE_ALL_EXCEPT (FE_INEXACT | FE_UNDERFLOW | FE_OVERFLOW | FE_DIVBYZERO | FE_UNNORMAL | FE_INVALID)
+ FE_ALL_EXCEPT
};
enum
{
- FE_TOWARDZERO = 3,
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 3
+ FE_TOWARDZERO,
- FE_UPWARD = 2,
-#define FE_UPWARD FE_UPWARD
+ FE_UPWARD =
+#define FE_UPWARD 2
+ FE_UPWARD,
- FE_DOWNWARD = 1,
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_DOWNWARD =
+#define FE_DOWNWARD 1
+ FE_DOWNWARD,
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
};
Modified: fsf/trunk/libc/ports/sysdeps/ia64/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/ia64/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/ia64/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@xxxxxxx>, 1999 and
Jes Sorensen <Jes.Sorensen@xxxxxxx>, 2000
@@ -36,3 +36,4 @@
/* success */
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/ports/sysdeps/m68k/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/m68k/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -24,16 +24,21 @@
the appropriate bits in the FPSR Accrued Exception Byte. */
enum
{
- FE_INEXACT = 1 << 3,
-#define FE_INEXACT FE_INEXACT
- FE_DIVBYZERO = 1 << 4,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_UNDERFLOW = 1 << 5,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_OVERFLOW = 1 << 6,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_INVALID = 1 << 7
-#define FE_INVALID FE_INVALID
+ FE_INEXACT =
+#define FE_INEXACT (1 << 3)
+ FE_INEXACT,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1 << 4)
+ FE_DIVBYZERO,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1 << 5)
+ FE_UNDERFLOW,
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1 << 6)
+ FE_OVERFLOW,
+ FE_INVALID =
+#define FE_INVALID (1 << 7)
+ FE_INVALID
};
#define FE_ALL_EXCEPT \
@@ -44,14 +49,18 @@
appropriate macros. */
enum
{
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = 1 << 4,
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_DOWNWARD = 2 << 4,
-#define FE_DOWNWARD FE_DOWNWARD
- FE_UPWARD = 3 << 4
-#define FE_UPWARD FE_UPWARD
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO (1 << 4)
+ FE_TOWARDZERO,
+ FE_DOWNWARD =
+#define FE_DOWNWARD (2 << 4)
+ FE_DOWNWARD,
+ FE_UPWARD =
+#define FE_UPWARD (3 << 4)
+ FE_UPWARD
};
Modified: fsf/trunk/libc/ports/sysdeps/m68k/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/m68k/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
@@ -46,4 +46,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/mips/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -24,16 +24,21 @@
of the appropriate bits in the FPU control word. */
enum
{
- FE_INEXACT = 0x04,
-#define FE_INEXACT FE_INEXACT
- FE_UNDERFLOW = 0x08,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_OVERFLOW = 0x10,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_DIVBYZERO = 0x20,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INVALID = 0x40,
-#define FE_INVALID FE_INVALID
+ FE_INEXACT =
+#define FE_INEXACT 0x04
+ FE_INEXACT,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x08
+ FE_UNDERFLOW,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x10
+ FE_OVERFLOW,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x20
+ FE_DIVBYZERO,
+ FE_INVALID =
+#define FE_INVALID 0x40
+ FE_INVALID,
};
#define FE_ALL_EXCEPT \
@@ -44,14 +49,18 @@
for the appropriate macros. */
enum
{
- FE_TONEAREST = 0x0,
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = 0x1,
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = 0x2,
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = 0x3
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_TONEAREST =
+#define FE_TONEAREST 0x0
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0x1
+ FE_TOWARDZERO,
+ FE_UPWARD =
+#define FE_UPWARD 0x2
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD 0x3
+ FE_DOWNWARD
};
Modified: fsf/trunk/libc/ports/sysdeps/mips/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/mips/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@xxxxxxx>, 1998.
@@ -44,3 +44,4 @@
/* Success. */
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/powerpc/nofpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear floating-point exceptions (soft-float edition).
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@xxxxxxxxxx>, 2002.
This file is part of the GNU C Library.
@@ -33,4 +33,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/tile/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/tile/bits/fenv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/tile/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@xxxxxxxxxx>, 2011.
@@ -30,8 +30,9 @@
{
__FE_UNDEFINED = 0,
- FE_TONEAREST = 1,
-#define FE_TONEAREST FE_TONEAREST
+ FE_TONEAREST =
+#define FE_TONEAREST 1
+ FE_TONEAREST,
};
/* Type representing exception flags (if there were any). */
Modified: fsf/trunk/libc/ports/sysdeps/tile/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/tile/libm-test-ulps (original)
+++ fsf/trunk/libc/ports/sysdeps/tile/libm-test-ulps Sun Nov 4 00:02:10 2012
@@ -602,8 +602,10 @@
float: 1
ifloat: 1
Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i) == -4.821637332766435821255375046554377090472e-17 + 4.053112396770095089737411317782466262176e-302 i":
+double: 1
idouble: 1
Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i":
+double: 1
float: 2
idouble: 1
ifloat: 2
@@ -634,14 +636,19 @@
float: 1
ifloat: 1
Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i":
+double: 1
idouble: 1
Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i) == -1.3155760824064879362415202279780039150764e-26 + 0.3473590599762514228227328130640352044313 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i) == -6.2126412844802358329771948751248003038444e-07 + 0.4977135139537443711784513409096950995985 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i) == 308.2409272754311106024666378243768099991 + 0.6821881769209206737428918127156778851051 i":
double: 1
@@ -693,6 +700,7 @@
idouble: 1
ifloat: 1
Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i":
+double: 1
float: 1
idouble: 1
ifloat: 1
@@ -700,23 +708,31 @@
float: 1
ifloat: 1
Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i":
+double: 1
idouble: 1
Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i":
+double: 1
idouble: 1
Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i) == -6.4375803621988389731799033530075237868110e-21 + 0.4378257977686804492768642780897650927167 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i":
+double: 1
idouble: 1
Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i) == 2.6921240173351112953324592659528481616879e-06 + 0.5785726025799636431142862788413361783862 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i":
+double: 1
idouble: 1
Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i) == 2.680828048441605163181684680300513080769e-7 + 4.825491868832381486767558728169977751564e-4 i":
double: 1
Modified: fsf/trunk/libc/scripts/cross-test-ssh.sh
==============================================================================
--- fsf/trunk/libc/scripts/cross-test-ssh.sh (original)
+++ fsf/trunk/libc/scripts/cross-test-ssh.sh Sun Nov 4 00:02:10 2012
@@ -108,37 +108,25 @@
done
}
-# Remove unnecessary newlines from a Bourne shell command sequence.
-remove_newlines ()
+# Unset all variables from the blacklist. Then echo all exported
+# variables.
+blacklist_exports ()
{
- sed -n \
- -e '1h' \
- -e '2,$H' \
- -e '${g
- s/\([^\]\)\n/\1; /g
- p
- }'
+ (unset ${env_blacklist}; export -p) | sed 's/^declare -x/export/'
}
-# Unset all variables from the blacklist. Then echo all exported
-# variables. The 'export -p' command adds backslashes for environment
-# variables which contain newlines.
-blacklist_exports ()
-{
- (unset ${env_blacklist}; export -p) | remove_newlines
-}
-
-# Produce properly quoted Bourne shell arguments for 'env' to carry
-# over the current environment, less blacklisted variables.
+# Produce commands to carry over the current environment, less blacklisted
+# variables.
exports="$(blacklist_exports)"
-exports="${exports:+${exports}; }"
# Transform the current argument list into a properly quoted Bourne shell
# command string.
command="$(bourne_quote "$@")"
# Add commands to set environment variables and the current directory.
-command="${exports}cd $PWD; ${command}"
+command="${exports}
+cd $(bourne_quote "$PWD")
+${command}"
# HOST's sshd simply concatenates its arguments with spaces and
# passes them to some shell. We want to force the use of /bin/sh,
Modified: fsf/trunk/libc/stdlib/Makefile
==============================================================================
--- fsf/trunk/libc/stdlib/Makefile (original)
+++ fsf/trunk/libc/stdlib/Makefile Sun Nov 4 00:02:10 2012
@@ -20,7 +20,7 @@
#
subdir := stdlib
-headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h \
+headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \
monetary.h bits/monetary-ldbl.h \
inttypes.h stdint.h bits/wordsize.h \
errno.h sys/errno.h bits/errno.h \
Added: fsf/trunk/libc/stdlib/bits/stdlib-float.h
==============================================================================
--- fsf/trunk/libc/stdlib/bits/stdlib-float.h (added)
+++ fsf/trunk/libc/stdlib/bits/stdlib-float.h Sun Nov 4 00:02:10 2012
@@ -1,0 +1,31 @@
+/* Floating-point inline functions for stdlib.h.
+ Copyright (C) 2012 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/>. */
+
+#ifndef _STDLIB_H
+# error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
+#endif
+
+#ifdef __USE_EXTERN_INLINES
+__BEGIN_NAMESPACE_STD
+__extern_inline double
+__NTH (atof (const char *__nptr))
+{
+ return strtod (__nptr, (char **) NULL);
+}
+__END_NAMESPACE_STD
+#endif /* Optimizing and Inlining. */
Modified: fsf/trunk/libc/stdlib/stdlib.h
==============================================================================
--- fsf/trunk/libc/stdlib/stdlib.h (original)
+++ fsf/trunk/libc/stdlib/stdlib.h Sun Nov 4 00:02:10 2012
@@ -274,11 +274,6 @@
#ifdef __USE_EXTERN_INLINES
__BEGIN_NAMESPACE_STD
-__extern_inline double
-__NTH (atof (const char *__nptr))
-{
- return strtod (__nptr, (char **) NULL);
-}
__extern_inline int
__NTH (atoi (const char *__nptr))
{
@@ -953,6 +948,7 @@
__THROW __nonnull ((1));
#endif
+#include <bits/stdlib-float.h>
/* Define some macros helping to catch buffer overflows. */
#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
Modified: fsf/trunk/libc/sysdeps/generic/math_private.h
==============================================================================
--- fsf/trunk/libc/sysdeps/generic/math_private.h (original)
+++ fsf/trunk/libc/sysdeps/generic/math_private.h Sun Nov 4 00:02:10 2012
@@ -402,6 +402,22 @@
#endif
static __always_inline void
+default_libc_fesetround (int r)
+{
+ (void) fesetround (r);
+}
+
+#ifndef libc_fesetround
+# define libc_fesetround default_libc_fesetround
+#endif
+#ifndef libc_fesetroundf
+# define libc_fesetroundf default_libc_fesetround
+#endif
+#ifndef libc_fesetroundl
+# define libc_fesetroundl default_libc_fesetround
+#endif
+
+static __always_inline void
default_libc_feholdexcept_setround (fenv_t *e, int r)
{
feholdexcept (e);
Modified: fsf/trunk/libc/sysdeps/i386/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997,99,2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1997.
@@ -65,4 +65,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/sysdeps/i386/fpu/fenv_private.h
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/fenv_private.h (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/fenv_private.h Sun Nov 4 00:02:10 2012
@@ -77,6 +77,24 @@
}
static __always_inline void
+libc_fesetround_sse (int r)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ mxcsr = (mxcsr & ~0x6000) | (r << 3);
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+static __always_inline void
+libc_fesetround_387 (int r)
+{
+ fpu_control_t cw;
+ _FPU_GETCW (cw);
+ cw = (cw & ~0xc00) | r;
+ _FPU_SETCW (cw);
+}
+
+static __always_inline void
libc_feholdexcept_setround_sse (fenv_t *e, int r)
{
unsigned int mxcsr;
@@ -247,6 +265,7 @@
#ifdef __SSE_MATH__
# define libc_feholdexceptf libc_feholdexcept_sse
+# define libc_fesetroundf libc_fesetround_sse
# define libc_feholdexcept_setroundf libc_feholdexcept_setround_sse
# define libc_fetestexceptf libc_fetestexcept_sse
# define libc_fesetenvf libc_fesetenv_sse
@@ -256,6 +275,7 @@
# define libc_feresetroundf libc_feresetround_sse
#else
# define libc_feholdexceptf libc_feholdexcept_387
+# define libc_fesetroundf libc_fesetround_387
# define libc_feholdexcept_setroundf libc_feholdexcept_setround_387
# define libc_fetestexceptf libc_fetestexcept_387
# define libc_fesetenvf libc_fesetenv_387
@@ -267,6 +287,7 @@
#ifdef __SSE2_MATH__
# define libc_feholdexcept libc_feholdexcept_sse
+# define libc_fesetround libc_fesetround_sse
# define libc_feholdexcept_setround libc_feholdexcept_setround_sse
# define libc_fetestexcept libc_fetestexcept_sse
# define libc_fesetenv libc_fesetenv_sse
@@ -276,6 +297,7 @@
# define libc_feresetround libc_feresetround_sse
#else
# define libc_feholdexcept libc_feholdexcept_387
+# define libc_fesetround libc_fesetround_387
# define libc_feholdexcept_setround libc_feholdexcept_setround_387
# define libc_fetestexcept libc_fetestexcept_387
# define libc_fesetenv libc_fesetenv_387
@@ -286,6 +308,7 @@
#endif /* __SSE2_MATH__ */
#define libc_feholdexceptl libc_feholdexcept_387
+#define libc_fesetroundl libc_fesetround_387
#define libc_feholdexcept_setroundl libc_feholdexcept_setround_387
#define libc_fetestexceptl libc_fetestexcept_387
#define libc_fesetenvl libc_fesetenv_387
Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fma.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fma.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fma.c Sun Nov 4 00:02:10 2012
@@ -167,6 +167,9 @@
if (__builtin_expect ((x == 0 || y == 0) && z == 0, 0))
return x * y + z;
+ fenv_t env;
+ libc_feholdexcept_setround (&env, FE_TONEAREST);
+
/* Multiplication m1 + m2 = x * y using Dekker's algorithm. */
#define C ((1 << (DBL_MANT_DIG + 1) / 2) + 1)
double x1 = x * C;
@@ -185,9 +188,20 @@
t1 = m1 - t1;
t2 = z - t2;
double a2 = t1 + t2;
-
- fenv_t env;
- libc_feholdexcept_setround (&env, FE_TOWARDZERO);
+ feclearexcept (FE_INEXACT);
+
+ /* If the result is an exact zero, ensure it has the correct
+ sign. */
+ if (a1 == 0 && m2 == 0)
+ {
+ libc_feupdateenv (&env);
+ /* Ensure that round-to-nearest value of z + m1 is not
+ reused. */
+ asm volatile ("" : "=m" (z) : "m" (z));
+ return z + m1;
+ }
+
+ libc_fesetround (FE_TOWARDZERO);
/* Perform m2 + a2 addition with round to odd. */
u.d = a2 + m2;
Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-128/s_fmal.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128/s_fmal.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128/s_fmal.c Sun Nov 4 00:02:10 2012
@@ -170,6 +170,10 @@
if (__builtin_expect ((x == 0 || y == 0) && z == 0, 0))
return x * y + z;
+ fenv_t env;
+ feholdexcept (&env);
+ fesetround (FE_TONEAREST);
+
/* Multiplication m1 + m2 = x * y using Dekker's algorithm. */
#define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
long double x1 = x * C;
@@ -188,9 +192,19 @@
t1 = m1 - t1;
t2 = z - t2;
long double a2 = t1 + t2;
-
- fenv_t env;
- feholdexcept (&env);
+ feclearexcept (FE_INEXACT);
+
+ /* If the result is an exact zero, ensure it has the correct
+ sign. */
+ if (a1 == 0 && m2 == 0)
+ {
+ feupdateenv (&env);
+ /* Ensure that round-to-nearest value of z + m1 is not
+ reused. */
+ asm volatile ("" : "=m" (z) : "m" (z));
+ return z + m1;
+ }
+
fesetround (FE_TOWARDZERO);
/* Perform m2 + a2 addition with round to odd. */
u.d = a2 + m2;
Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fma.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fma.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fma.c Sun Nov 4 00:02:10 2012
@@ -42,6 +42,10 @@
if (__builtin_expect ((x == 0 || y == 0) && z == 0, 0))
return x * y + z;
+ fenv_t env;
+ feholdexcept (&env);
+ fesetround (FE_TONEAREST);
+
/* Multiplication m1 + m2 = x * y using Dekker's algorithm. */
#define C ((1ULL << (LDBL_MANT_DIG + 1) / 2) + 1)
long double x1 = (long double) x * C;
@@ -60,9 +64,19 @@
t1 = m1 - t1;
t2 = z - t2;
long double a2 = t1 + t2;
+ feclearexcept (FE_INEXACT);
- fenv_t env;
- feholdexcept (&env);
+ /* If the result is an exact zero, ensure it has the correct
+ sign. */
+ if (a1 == 0 && m2 == 0)
+ {
+ feupdateenv (&env);
+ /* Ensure that round-to-nearest value of z + m1 is not
+ reused. */
+ asm volatile ("" : "=m" (z) : "m" (z));
+ return z + m1;
+ }
+
fesetround (FE_TOWARDZERO);
/* Perform m2 + a2 addition with round to odd. */
a2 = a2 + m2;
Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fmal.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fmal.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_fmal.c Sun Nov 4 00:02:10 2012
@@ -168,6 +168,10 @@
if (__builtin_expect ((x == 0 || y == 0) && z == 0, 0))
return x * y + z;
+ fenv_t env;
+ feholdexcept (&env);
+ fesetround (FE_TONEAREST);
+
/* Multiplication m1 + m2 = x * y using Dekker's algorithm. */
#define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
long double x1 = x * C;
@@ -186,9 +190,19 @@
t1 = m1 - t1;
t2 = z - t2;
long double a2 = t1 + t2;
-
- fenv_t env;
- feholdexcept (&env);
+ feclearexcept (FE_INEXACT);
+
+ /* If the result is an exact zero, ensure it has the correct
+ sign. */
+ if (a1 == 0 && m2 == 0)
+ {
+ feupdateenv (&env);
+ /* Ensure that round-to-nearest value of z + m1 is not
+ reused. */
+ asm volatile ("" : "=m" (z) : "m" (z));
+ return z + m1;
+ }
+
fesetround (FE_TOWARDZERO);
/* Perform m2 + a2 addition with round to odd. */
u.d = a2 + m2;
Modified: fsf/trunk/libc/sysdeps/powerpc/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/powerpc/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 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
@@ -24,14 +24,18 @@
the appropriate bits in the FPSCR... */
enum
{
- FE_INEXACT = 1 << (31 - 6),
-#define FE_INEXACT FE_INEXACT
- FE_DIVBYZERO = 1 << (31 - 5),
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_UNDERFLOW = 1 << (31 - 4),
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_OVERFLOW = 1 << (31 - 3),
-#define FE_OVERFLOW FE_OVERFLOW
+ FE_INEXACT =
+#define FE_INEXACT (1 << (31 - 6))
+ FE_INEXACT,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1 << (31 - 5))
+ FE_DIVBYZERO,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1 << (31 - 4))
+ FE_UNDERFLOW,
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1 << (31 - 3))
+ FE_OVERFLOW,
/* ... except for FE_INVALID, for which we use bit 31. FE_INVALID
actually corresponds to bits 7 through 12 and 21 through 23
@@ -39,8 +43,9 @@
says that it must be a power of 2. Instead we use bit 2 which
is the summary bit for all the FE_INVALID exceptions, which
kind of makes sense. */
- FE_INVALID = 1 << (31 - 2),
-#define FE_INVALID FE_INVALID
+ FE_INVALID =
+#define FE_INVALID (1 << (31 - 2))
+ FE_INVALID,
#ifdef __USE_GNU
/* Breakdown of the FE_INVALID bits. Setting FE_INVALID on an
@@ -50,43 +55,52 @@
enable these exceptions individually. */
/* Operation with SNaN. */
- FE_INVALID_SNAN = 1 << (31 - 7),
-# define FE_INVALID_SNAN FE_INVALID_SNAN
+ FE_INVALID_SNAN =
+# define FE_INVALID_SNAN (1 << (31 - 7))
+ FE_INVALID_SNAN,
/* Inf - Inf */
- FE_INVALID_ISI = 1 << (31 - 8),
-# define FE_INVALID_ISI FE_INVALID_ISI
+ FE_INVALID_ISI =
+# define FE_INVALID_ISI (1 << (31 - 8))
+ FE_INVALID_ISI,
/* Inf / Inf */
- FE_INVALID_IDI = 1 << (31 - 9),
-# define FE_INVALID_IDI FE_INVALID_IDI
+ FE_INVALID_IDI =
+# define FE_INVALID_IDI (1 << (31 - 9))
+ FE_INVALID_IDI,
/* 0 / 0 */
- FE_INVALID_ZDZ = 1 << (31 - 10),
-# define FE_INVALID_ZDZ FE_INVALID_ZDZ
+ FE_INVALID_ZDZ =
+# define FE_INVALID_ZDZ (1 << (31 - 10))
+ FE_INVALID_ZDZ,
/* Inf * 0 */
- FE_INVALID_IMZ = 1 << (31 - 11),
-# define FE_INVALID_IMZ FE_INVALID_IMZ
+ FE_INVALID_IMZ =
+# define FE_INVALID_IMZ (1 << (31 - 11))
+ FE_INVALID_IMZ,
/* Comparison with NaN or SNaN. */
- FE_INVALID_COMPARE = 1 << (31 - 12),
-# define FE_INVALID_COMPARE FE_INVALID_COMPARE
+ FE_INVALID_COMPARE =
+# define FE_INVALID_COMPARE (1 << (31 - 12))
+ FE_INVALID_COMPARE,
/* Invalid operation flag for software (not set by hardware). */
/* Note that some chips don't have this implemented, presumably
because no-one expected anyone to write software for them %-). */
- FE_INVALID_SOFTWARE = 1 << (31 - 21),
-# define FE_INVALID_SOFTWARE FE_INVALID_SOFTWARE
+ FE_INVALID_SOFTWARE =
+# define FE_INVALID_SOFTWARE (1 << (31 - 21))
+ FE_INVALID_SOFTWARE,
/* Square root of negative number (including -Inf). */
/* Note that some chips don't have this implemented. */
- FE_INVALID_SQRT = 1 << (31 - 22),
-# define FE_INVALID_SQRT FE_INVALID_SQRT
+ FE_INVALID_SQRT =
+# define FE_INVALID_SQRT (1 << (31 - 22))
+ FE_INVALID_SQRT,
/* Conversion-to-integer of a NaN or a number too large or too small. */
- FE_INVALID_INTEGER_CONVERSION = 1 << (31 - 23)
-# define FE_INVALID_INTEGER_CONVERSION FE_INVALID_INTEGER_CONVERSION
+ FE_INVALID_INTEGER_CONVERSION =
+# define FE_INVALID_INTEGER_CONVERSION (1 << (31 - 23))
+ FE_INVALID_INTEGER_CONVERSION
# define FE_ALL_INVALID \
(FE_INVALID_SNAN | FE_INVALID_ISI | FE_INVALID_IDI | FE_INVALID_ZDZ \
@@ -103,14 +117,18 @@
appropriate macros. */
enum
{
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = 1,
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = 2,
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = 3
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 1
+ FE_TOWARDZERO,
+ FE_UPWARD =
+#define FE_UPWARD 2
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD 3
+ FE_DOWNWARD
};
/* Type representing exception flags. */
Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 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
@@ -44,4 +44,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/sysdeps/s390/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/s390/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -24,16 +24,21 @@
of the appropriate bits in the FPU control word. */
enum
{
- FE_INVALID = 0x80,
-#define FE_INVALID FE_INVALID
- FE_DIVBYZERO = 0x40,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_OVERFLOW = 0x20,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = 0x10,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_INEXACT = 0x08
-#define FE_INEXACT FE_INEXACT
+ FE_INVALID =
+#define FE_INVALID 0x80
+ FE_INVALID,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x40
+ FE_DIVBYZERO,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x20
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x10
+ FE_UNDERFLOW,
+ FE_INEXACT =
+#define FE_INEXACT 0x08
+ FE_INEXACT
};
/* We dont use the y bit of the DXC in the floating point control register
as glibc has no FE encoding for fe inexact incremented
@@ -48,14 +53,18 @@
enum
{
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
- FE_DOWNWARD = 0x3,
-#define FE_DOWNWARD FE_DOWNWARD
- FE_UPWARD = 0x2,
-#define FE_UPWARD FE_UPWARD
- FE_TOWARDZERO = 0x1
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
+ FE_DOWNWARD =
+#define FE_DOWNWARD 0x3
+ FE_DOWNWARD,
+ FE_UPWARD =
+#define FE_UPWARD 0x2
+ FE_UPWARD,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0x1
+ FE_TOWARDZERO
};
Modified: fsf/trunk/libc/sysdeps/s390/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/s390/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000-2012 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
@@ -37,3 +37,4 @@
/* Success. */
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/sysdeps/sh/sh4/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sh/sh4/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/sh/sh4/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -24,16 +24,21 @@
of the appropriate bits in the FPU control word. */
enum
{
- FE_INEXACT = 0x04,
-#define FE_INEXACT FE_INEXACT
- FE_UNDERFLOW = 0x08,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_OVERFLOW = 0x10,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_DIVBYZERO = 0x20,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INVALID = 0x40,
-#define FE_INVALID FE_INVALID
+ FE_INEXACT =
+#define FE_INEXACT 0x04
+ FE_INEXACT,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x08
+ FE_UNDERFLOW,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x10
+ FE_OVERFLOW,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x20
+ FE_DIVBYZERO,
+ FE_INVALID =
+#define FE_INVALID 0x40
+ FE_INVALID,
};
#define FE_ALL_EXCEPT \
@@ -46,10 +51,12 @@
{
__FE_UNDEFINED = -1,
- FE_TONEAREST = 0x0,
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = 0x1,
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TONEAREST =
+#define FE_TONEAREST 0x0
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0x1
+ FE_TOWARDZERO,
};
Modified: fsf/trunk/libc/sysdeps/sh/sh4/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/sh/sh4/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/sh/sh4/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -39,3 +39,4 @@
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/sysdeps/sparc/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -26,16 +26,21 @@
of the appropriate accrued exception bits from the FSR. */
enum
{
- FE_INVALID = (1 << 9),
-#define FE_INVALID FE_INVALID
- FE_OVERFLOW = (1 << 8),
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = (1 << 7),
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_DIVBYZERO = (1 << 6),
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INEXACT = (1 << 5)
-#define FE_INEXACT FE_INEXACT
+ FE_INVALID =
+#define FE_INVALID (1 << 9)
+ FE_INVALID,
+ FE_OVERFLOW =
+#define FE_OVERFLOW (1 << 8)
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW (1 << 7)
+ FE_UNDERFLOW,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO (1 << 6)
+ FE_DIVBYZERO,
+ FE_INEXACT =
+#define FE_INEXACT (1 << 5)
+ FE_INEXACT
};
#define FE_ALL_EXCEPT \
@@ -46,14 +51,18 @@
for the appropriate macros. */
enum
{
- FE_TONEAREST = (0U << 30),
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = (1U << 30),
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = (2U << 30),
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = (3U << 30)
-#define FE_DOWNWARD FE_DOWNWARD
+ FE_TONEAREST =
+#define FE_TONEAREST (0 << 30)
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO (1 << 30)
+ FE_TOWARDZERO,
+ FE_UPWARD =
+#define FE_UPWARD (-0x7fffffff - 1) /* (2 << 30) */
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD (-0x40000000) /* (3 << 30) */
+ FE_DOWNWARD
};
#define __FE_ROUND_MASK (3U << 30)
Modified: fsf/trunk/libc/sysdeps/sparc/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/sparc/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 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
@@ -39,4 +39,5 @@
compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
#endif
+libm_hidden_ver (__feclearexcept, feclearexcept)
versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/sysdeps/sparc/fpu/fenv_private.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/fpu/fenv_private.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/fpu/fenv_private.h Sun Nov 4 00:02:10 2012
@@ -10,6 +10,15 @@
__fenv_stfsr(etmp);
*(e) = etmp;
etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT);
+ __fenv_ldfsr(etmp);
+}
+
+static __always_inline void
+libc_fesetround (int r)
+{
+ fenv_t etmp;
+ __fenv_stfsr(etmp);
+ etmp = (etmp & ~__FE_ROUND_MASK) | (r);
__fenv_ldfsr(etmp);
}
@@ -79,6 +88,7 @@
}
#define libc_feholdexceptf libc_feholdexcept
+#define libc_fesetroundf libc_fesetround
#define libc_feholdexcept_setroundf libc_feholdexcept_setround
#define libc_fetestexceptf libc_fetestexcept
#define libc_fesetenvf libc_fesetenv
@@ -87,6 +97,7 @@
#define libc_feholdsetroundf libc_feholdsetround
#define libc_feresetroundf libc_feresetround
#define libc_feholdexcept libc_feholdexcept
+#define libc_fesetround libc_fesetround
#define libc_feholdexcept_setround libc_feholdexcept_setround
#define libc_fetestexcept libc_fetestexcept
#define libc_fesetenv libc_fesetenv
@@ -95,6 +106,7 @@
#define libc_feholdsetround libc_feholdsetround
#define libc_feresetround libc_feresetround
#define libc_feholdexceptl libc_feholdexcept
+#define libc_fesetroundl libc_fesetround
#define libc_feholdexcept_setroundl libc_feholdexcept_setround
#define libc_fetestexceptl libc_fetestexcept
#define libc_fesetenvl libc_fesetenv
Added: fsf/trunk/libc/sysdeps/x86/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/Makefile (added)
+++ fsf/trunk/libc/sysdeps/x86/Makefile Sun Nov 4 00:02:10 2012
@@ -1,0 +1,4 @@
+ifeq ($(subdir),elf)
+CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
+ -mno-sse -mno-mmx)
+endif
Modified: fsf/trunk/libc/sysdeps/x86/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/x86/fpu/bits/fenv.h Sun Nov 4 00:02:10 2012
@@ -23,17 +23,22 @@
of the appropriate bits in the FPU control word. */
enum
{
- FE_INVALID = 0x01,
-#define FE_INVALID FE_INVALID
+ FE_INVALID =
+#define FE_INVALID 0x01
+ FE_INVALID,
__FE_DENORM = 0x02,
- FE_DIVBYZERO = 0x04,
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_OVERFLOW = 0x08,
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = 0x10,
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_INEXACT = 0x20
-#define FE_INEXACT FE_INEXACT
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x04
+ FE_DIVBYZERO,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x08
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x10
+ FE_UNDERFLOW,
+ FE_INEXACT =
+#define FE_INEXACT 0x20
+ FE_INEXACT
};
#define FE_ALL_EXCEPT \
@@ -44,14 +49,18 @@
for the appropriate macros. */
enum
{
- FE_TONEAREST = 0,
-#define FE_TONEAREST FE_TONEAREST
- FE_DOWNWARD = 0x400,
-#define FE_DOWNWARD FE_DOWNWARD
- FE_UPWARD = 0x800,
-#define FE_UPWARD FE_UPWARD
- FE_TOWARDZERO = 0xc00
-#define FE_TOWARDZERO FE_TOWARDZERO
+ FE_TONEAREST =
+#define FE_TONEAREST 0
+ FE_TONEAREST,
+ FE_DOWNWARD =
+#define FE_DOWNWARD 0x400
+ FE_DOWNWARD,
+ FE_UPWARD =
+#define FE_UPWARD 0x800
+ FE_UPWARD,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO 0xc00
+ FE_TOWARDZERO
};
Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/fclrexcpt.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/fclrexcpt.c Sun Nov 4 00:02:10 2012
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001-2012 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
@@ -49,3 +49,4 @@
/* Success. */
return 0;
}
+libm_hidden_def (feclearexcept)
Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/strcasestr-nonascii.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/strcasestr-nonascii.c Sun Nov 4 00:02:10 2012
@@ -16,7 +16,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-# include <ctype.h>
+#include <ctype.h>
+#include <xmmintrin.h>
/* Similar to __m128i_strloadu. Convert to lower case for none-POSIX/C
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits