[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r18251 - in /fsf/trunk/libc: ./ math/



Author: eglibc
Date: Sat Apr 28 00:01:36 2012
New Revision: 18251

Log:
Import glibc-mainline for 2012-04-28

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/README
    fsf/trunk/libc/config.h.in
    fsf/trunk/libc/math/fclrexcpt.c
    fsf/trunk/libc/math/fraiseexcpt.c
    fsf/trunk/libc/math/fsetexcptflg.c
    fsf/trunk/libc/math/libm-test.inc

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat Apr 28 00:01:36 2012
@@ -1,3 +1,27 @@
+2012-04-27  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* README: Cut down references to pre-2.6 Linux kernels and
+	Linuxthreads.  Update lists of configurations in libc and ports
+	and sort alphabetically.  Say "or newer" with Linux kernel version
+	requirements.
+
+	* config.h.in [IS_IN_build]: Allow compiling without optimization.
+
+2012-04-27  Ryan S. Arnold  <rsa@xxxxxxxxxxxxxxxxxx>
+
+	[BZ #887]
+	* math/libm-test.inc (logb_test_downward): New test to expose
+	erroneous negative sign on -0.0 result of logb[l](1) in FE_DOWNWARD
+	rounding mode.
+
+2012-04-27  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #14027]
+	* math/fclrexcpt.c (__feclearexcept): Return zero if nothing needs
+	to be done.
+	* math/fraiseexcpt.c (__feraiseexcept): Likewise.
+	* math/fsetexcptflg.c (__fesetexceptflag): Likewise.
+
 2012-04-26  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/i386/brk.S: Remove file.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sat Apr 28 00:01:36 2012
@@ -9,20 +9,20 @@
 
 * The following bugs are resolved with this release:
 
-  174, 350, 369, 411, 706, 2074, 2541, 2547, 2548, 2551, 2552, 2553, 2554,
-  2562, 2563, 2565, 2566, 2576, 2636, 2678, 3335, 3768, 3866, 3868, 3976,
-  3992, 4026, 4108, 4596, 4822, 5077, 5461, 5805, 5993, 6471, 6486, 6578,
-  6649, 6730, 6770, 6794, 6884, 6890, 6894, 6895, 6907, 6911, 7064, 9739,
-  9902, 10110, 10135, 10140, 10153, 10210, 10254, 10346, 10545, 10716,
-  11174, 11322, 11365, 11451, 11494, 11521, 11959, 12047, 12340, 13058,
-  13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547,
-  13551, 13552, 13553, 13555, 13559, 13566, 13583, 13592, 13618, 13637,
-  13656, 13658, 13673, 13691, 13695, 13704, 13705, 13706, 13726, 13738,
-  13739, 13760, 13761, 13786, 13792, 13806, 13824, 13840, 13841, 13844,
-  13846, 13851, 13852, 13854, 13871, 13872, 13873, 13879, 13883, 13886,
-  13892, 13895, 13908, 13910, 13911, 13912, 13913, 13915, 13916, 13917,
-  13918, 13919, 13920, 13921, 13926, 13927, 13928, 13938, 13963, 13967,
-  13970, 13973
+  174, 350, 369, 411, 706, 887, 2074, 2541, 2547, 2548, 2551, 2552, 2553,
+  2554, 2562, 2563, 2565, 2566, 2576, 2636, 2678, 3335, 3768, 3866, 3868,
+  3976, 3992, 4026, 4108, 4596, 4822, 5077, 5461, 5805, 5993, 6471, 6486,
+  6578, 6649, 6730, 6770, 6794, 6884, 6890, 6894, 6895, 6907, 6911, 7064,
+  9739, 9902, 10110, 10135, 10140, 10153, 10210, 10254, 10346, 10545,
+  10716, 11174, 11322, 11365, 11451, 11494, 11521, 11959, 12047, 12340,
+  13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533,
+  13547, 13551, 13552, 13553, 13555, 13559, 13566, 13583, 13592, 13618,
+  13637, 13656, 13658, 13673, 13691, 13695, 13704, 13705, 13706, 13726,
+  13738, 13739, 13760, 13761, 13786, 13792, 13806, 13824, 13840, 13841,
+  13844, 13846, 13851, 13852, 13854, 13871, 13872, 13873, 13879, 13883,
+  13886, 13892, 13895, 13908, 13910, 13911, 13912, 13913, 13915, 13916,
+  13917, 13918, 13919, 13920, 13921, 13926, 13927, 13928, 13938, 13963,
+  13967, 13970, 13973, 14027
 
 * ISO C11 support:
 

Modified: fsf/trunk/libc/README
==============================================================================
--- fsf/trunk/libc/README (original)
+++ fsf/trunk/libc/README Sat Apr 28 00:01:36 2012
@@ -17,11 +17,11 @@
 When working with Linux kernels, the GNU C Library version from
 version 2.4 on is intended primarily for use with Linux kernel version
 2.6.0 and later.  We only support using the NPTL implementation of
-pthreads, which is now the default configuration.  Most of the C
-library will continue to work on older Linux kernels and many programs
-will not require a 2.6 kernel to run correctly.  However, pthreads and
-related functionality will not work at all on old kernels and we do
-not recommend using glibc 2.4 with any Linux kernel prior to 2.6.
+pthreads, which is now the default configuration.  The library is
+unlikely to build without NPTL, or to work on Linux kernels prior to
+2.6.  The old LinuxThreads add-on implementation of pthreads for older
+Linux kernels is no longer supported, and we are not distributing it
+with this release.
 
 All Linux kernel versions prior to 2.6.16 are known to have some bugs that
 may cause some of the tests related to pthreads in "make check" to fail.
@@ -31,45 +31,39 @@
 Also note that the shared version of the libgcc_s library must be
 installed for the pthread library to work correctly.
 
-The old LinuxThreads add-on implementation of pthreads for older Linux
-kernels is no longer supported, and we are not distributing it with this
-release.  Someone has volunteered to revive its maintenance unofficially
-for at least a short time for the benefit of those using Linux kernels
-older than 2.6, but a working version is not presently available.  When
-it is in working condition, we will make it available alongside future
-glibc releases.  LinuxThreads will not be supported.
-
 The GNU C Library supports these configurations for using Linux kernels:
 
-	i[34567]86-*-linux-gnu
+	i[4567]86-*-linux-gnu
 	x86_64-*-linux-gnu
-	powerpc-*-linux-gnu
+	powerpc-*-linux-gnu	Hardware floating point required
 	powerpc64-*-linux-gnu
 	s390-*-linux-gnu
 	s390x-*-linux-gnu
-	ia64-*-linux-gnu
+	sh[34]-*-linux-gnu	Requires Linux 2.6.11 or newer
 	sparc*-*-linux-gnu
 	sparc64*-*-linux-gnu
-
-	sh[34]-*-linux-gnu	Requires Linux 2.6.11
 
 The code for other CPU configurations supported by volunteers outside of
 the core glibc maintenance effort is contained in the separate `ports'
 add-on.  You can find glibc-ports-VERSION distributed separately in the
 same place where you got the main glibc distribution files.
-Currently these configurations are known to work using the `ports' add-on:
+Currently these configurations have code in the `ports' add-on:
 
-	alpha*-*-linux-gnu	Requires Linux 2.6.9 for NPTL
-	arm-*-linux-gnu		Requires Linux 2.6.15 for NPTL, no SMP support
-	arm-*-linux-gnueabi	Requires Linux 2.6.16-rc1 for NPTL, no SMP
-	mips-*-linux-gnu	Requires Linux 2.6.12 for NPTL
-	mips64-*-linux-gnu	Requires Linux 2.6.12 for NPTL
+	alpha*-*-linux-gnu	Requires Linux 2.6.9 or newer for NPTL
+	am33*-*-linux-gnu	Not currently functional
+	arm-*-linux-gnueabi	Requires Linux 2.6.16-rc1 or newer for NPTL
+	hppa-*-linux-gnu	Requires Linux 2.6.9 or newer for NPTL
+	ia64-*-linux-gnu
+	m68k-*-linux-gnu
+	mips-*-linux-gnu	Requires Linux 2.6.12 or newer for NPTL
+	mips64-*-linux-gnu	Requires Linux 2.6.12 or newer for NPTL
+	powerpc-*-linux-gnu	Software floating point (--without-fp)
+	tilegx-*-linux-gnu
+	tilepro-*-linux-gnu
 
-The ports distribution also contains code for other configurations that
-do not work or have not been maintained recently, but will be of use to
-anyone trying to make a new configuration work.  If you are interested
-in doing a port, please contact the glibc maintainers; see
-http://www.gnu.org/software/libc/ for more information.
+If you are interested in doing a port, please contact the glibc
+maintainers; see http://www.gnu.org/software/libc/ for more
+information.
 
 See the file INSTALL to find out how to configure, build, and install
 the GNU C Library.  You might also consider reading the WWW pages for

Modified: fsf/trunk/libc/config.h.in
==============================================================================
--- fsf/trunk/libc/config.h.in (original)
+++ fsf/trunk/libc/config.h.in Sat Apr 28 00:01:36 2012
@@ -1,4 +1,5 @@
-#if !defined __ASSEMBLER__ && !defined _ISOMAC && !defined __OPTIMIZE__
+#if !defined IS_IN_build && !defined __ASSEMBLER__ && !defined _ISOMAC \
+    && !defined __OPTIMIZE__
 # error "glibc cannot be compiled without optimization"
 #endif
 

Modified: fsf/trunk/libc/math/fclrexcpt.c
==============================================================================
--- fsf/trunk/libc/math/fclrexcpt.c (original)
+++ fsf/trunk/libc/math/fclrexcpt.c Sat Apr 28 00:01:36 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 Ulrich Drepper <drepper@xxxxxxxxxx>, 1997.
 
@@ -23,8 +23,8 @@
 int
 __feclearexcept (int excepts)
 {
-  /* This always fails.  */
-  return 1;
+  /* This always fails unless nothing needs to be done.  */
+  return (excepts != 0);
 }
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feclearexcept, __old_feclearexcept)

Modified: fsf/trunk/libc/math/fraiseexcpt.c
==============================================================================
--- fsf/trunk/libc/math/fraiseexcpt.c (original)
+++ fsf/trunk/libc/math/fraiseexcpt.c Sat Apr 28 00:01:36 2012
@@ -1,5 +1,5 @@
 /* Raise given exceptions.
-   Copyright (C) 1997, 1999, 2000, 2002 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.
 
@@ -23,8 +23,8 @@
 int
 __feraiseexcept (int excepts)
 {
-  /* This always fails.  */
-  return 1;
+  /* This always fails unless nothing needs to be done.  */
+  return (excepts != 0);
 }
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__feraiseexcept, __old_feraiseexcept)

Modified: fsf/trunk/libc/math/fsetexcptflg.c
==============================================================================
--- fsf/trunk/libc/math/fsetexcptflg.c (original)
+++ fsf/trunk/libc/math/fsetexcptflg.c Sat Apr 28 00:01:36 2012
@@ -1,5 +1,5 @@
 /* Set floating-point environment exception handling.
-   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 Ulrich Drepper <drepper@xxxxxxxxxx>, 1997.
 
@@ -23,8 +23,8 @@
 int
 __fesetexceptflag (const fexcept_t *flagp, int excepts)
 {
-  /* This always fails.  */
-  return 1;
+  /* This always fails unless nothing needs to be done.  */
+  return (excepts != 0);
 }
 #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 strong_alias (__fesetexceptflag, __old_fesetexceptflag)

Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Sat Apr 28 00:01:36 2012
@@ -5101,6 +5101,40 @@
   END (logb);
 }
 
+static void
+logb_test_downward (void)
+{
+  int save_round_mode;
+  errno = 0;
+
+  FUNC(logb) (0);
+  if (errno == ENOSYS)
+    /* Function not implemented.  */
+    return;
+
+  START (logb_downward);
+
+  save_round_mode = fegetround ();
+
+  if (!fesetround (FE_DOWNWARD))
+    {
+
+      /* IEEE 754-2008 says (section 5.3.3) that "logB(1) is +0.".  Libm
+         should not return -0 from logb in any rounding mode.  PowerPC32 has
+         failed with this test for power4 logb (and logbl on all PowerPC
+         platforms) in the past due to instruction selection.  GCC PR 52775
+         provides the availability of the fcfid insn in 32-bit mode which
+         eliminates the use of fsub in this instance and prevents the negative
+         signed 0.0.  */
+
+      /* BZ #887  */
+      TEST_f_f (logb, 1.000e+0, plus_zero);
+    }
+
+  fesetround (save_round_mode);
+
+  END (logb_downward);
+}
 
 static void
 lround_test (void)
@@ -8210,6 +8244,7 @@
   log1p_test ();
   log2_test ();
   logb_test ();
+  logb_test_downward ();
   modf_test ();
   ilogb_test ();
   scalb_test ();

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits