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

[Commits] r23033 - in /fsf/trunk/libc: ./ elf/ math/ nptl/ sysdeps/ieee754/ldbl-128/ sysdeps/ieee754/ldbl-128ibm/



Author: eglibc
Date: Fri May 10 00:01:56 2013
New Revision: 23033

Log:
Import glibc-mainline for 2013-05-10

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/elf/dl-close.c
    fsf/trunk/libc/math/libm-test.inc
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/tst-mutex8.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri May 10 00:01:56 2013
@@ -1,3 +1,31 @@
+2013-05-09  Carlos O'Donell  <carlos@xxxxxxxxxx>
+
+	* elf/dl-close.c (_dl_close_worker): Add comments.
+
+2013-05-09  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #15359]
+	* sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (c): Use 106 bits for
+	high part of pi/2.
+	(__ieee754_rem_pio2l): Update comments.
+
+	[BZ #15429]
+	* sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (c): Use 113 bits for
+	high part of pi/2.
+	(__ieee754_rem_pio2l): Update comments.
+
+	* math/libm-test.inc (M_SQRT_2_2): Remove macro.
+	(csqrt_test): Use M_SQRT1_2l instead of M_SQRT_2_2.
+
+	* math/libm-test.inc (carg_test): Use M_PI_34l instead of 3 *
+	M_PI_4l.
+
+	* math/libm-test.inc (M_PI_34l): Define using decimal constant.
+	(M_PI_34_LOG10El): Likewise.
+	(M_PI2_LOG10El): Likewise.
+	(M_PI4_LOG10El): Likewise.
+	(M_PI_LOG10El): Likewise.
+
 2013-05-08  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
 
 	* sysdeps/powerpc/fpu/libm-test-ulps: Update.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Fri May 10 00:01:56 2013
@@ -15,8 +15,8 @@
   14994, 14996, 15003, 15006, 15007, 15020, 15023, 15036, 15054, 15055,
   15062, 15078, 15084, 15085, 15086, 15160, 15214, 15221, 15232, 15234,
   15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335,
-  15336, 15337, 15342, 15346, 15361, 15366, 15380, 15394, 15405, 15406,
-  15409, 15416, 15418, 15419, 15423, 15426.
+  15336, 15337, 15342, 15346, 15359, 15361, 15366, 15380, 15394, 15405,
+  15406, 15409, 15416, 15418, 15419, 15423, 15426, 15429.
 
 * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
   #15078).

Modified: fsf/trunk/libc/elf/dl-close.c
==============================================================================
--- fsf/trunk/libc/elf/dl-close.c (original)
+++ fsf/trunk/libc/elf/dl-close.c Fri May 10 00:01:56 2013
@@ -183,6 +183,8 @@
       /* Mark all dependencies as used.  */
       if (l->l_initfini != NULL)
 	{
+	  /* We are always the zeroth entry, and since we don't include
+	     ourselves in the dependency analysis start at 1.  */
 	  struct link_map **lp = &l->l_initfini[1];
 	  while (*lp != NULL)
 	    {
@@ -193,6 +195,10 @@
 		  if (!used[(*lp)->l_idx])
 		    {
 		      used[(*lp)->l_idx] = 1;
+		      /* If we marked a new object as used, and we've
+			 already processed it, then we need to go back
+			 and process again from that point forward to
+			 ensure we keep all of its dependencies also.  */
 		      if ((*lp)->l_idx - 1 < done_index)
 			done_index = (*lp)->l_idx - 1;
 		    }

Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Fri May 10 00:01:56 2013
@@ -207,12 +207,11 @@
 #define M_SQRT_PIl		1.7724538509055160272981674833411451L	/* sqrt (M_PIl)  */
 #define M_LOG_SQRT_PIl		0.57236494292470008707171367567652933L	/* log(sqrt(M_PIl))  */
 #define M_LOG_2_SQRT_PIl	1.265512123484645396488945797134706L	/* log(2*sqrt(M_PIl))  */
-#define M_PI_34l		(M_PIl - M_PI_4l)		/* 3*pi/4 */
-#define M_PI_34_LOG10El		(M_PIl - M_PI_4l) * M_LOG10El
-#define M_PI2_LOG10El		M_PI_2l * M_LOG10El
-#define M_PI4_LOG10El		M_PI_4l * M_LOG10El
-#define M_PI_LOG10El		M_PIl * M_LOG10El
-#define M_SQRT_2_2		0.70710678118654752440084436210484903L /* sqrt (2) / 2 */
+#define M_PI_34l		2.356194490192344928846982537459627163L	/* 3*pi/4 */
+#define M_PI_34_LOG10El		1.023282265381381010614337719073516828L
+#define M_PI2_LOG10El		0.682188176920920673742891812715677885L
+#define M_PI4_LOG10El		0.341094088460460336871445906357838943L
+#define M_PI_LOG10El		1.364376353841841347485783625431355770L
 
 #define ulps_file_name "ULPs"	/* Name of the ULPs file.  */
 static FILE *ulps_file;		/* File to document difference.  */
@@ -3031,9 +3030,9 @@
 
   TEST_c_f (carg, plus_infty, minus_infty, -M_PI_4l);
 
-  TEST_c_f (carg, minus_infty, plus_infty, 3 * M_PI_4l);
-
-  TEST_c_f (carg, minus_infty, minus_infty, -3 * M_PI_4l);
+  TEST_c_f (carg, minus_infty, plus_infty, M_PI_34l);
+
+  TEST_c_f (carg, minus_infty, minus_infty, -M_PI_34l);
 
   TEST_c_f (carg, qnan_value, qnan_value, qnan_value);
 
@@ -7081,7 +7080,7 @@
   TEST_c_c (csqrt, -2, 3, 0.89597747612983812471573375529004348L, 1.6741492280355400404480393008490519L);
   /* Principal square root should be returned (i.e., non-negative real
      part).  */
-  TEST_c_c (csqrt, 0, -1, M_SQRT_2_2, -M_SQRT_2_2);
+  TEST_c_c (csqrt, 0, -1, M_SQRT1_2l, -M_SQRT1_2l);
 
   TEST_c_c (csqrt, 0x1.fffffep+127L, 0x1.fffffep+127L, 2.026714405498316804978751017492482558075e+19L, 8.394925938143272988211878516208015586281e+18L);
   TEST_c_c (csqrt, 0x1.fffffep+127L, 1.0L, 1.844674352395372953599975585936590505260e+19L, 2.710505511993121390769065968615872097053e-20L);

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Fri May 10 00:01:56 2013
@@ -1,3 +1,7 @@
+2013-05-09  Andi Kleen  <ak@xxxxxxxxxxxxxxx>
+
+	* tst-mutex8.c (do_test): Check for ENABLE_PI.
+
 2013-04-22  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
 
 	* pthreadP.h (check_sched_policy_attr): New inline function.

Modified: fsf/trunk/libc/nptl/tst-mutex8.c
==============================================================================
--- fsf/trunk/libc/nptl/tst-mutex8.c (original)
+++ fsf/trunk/libc/nptl/tst-mutex8.c Fri May 10 00:01:56 2013
@@ -333,6 +333,13 @@
       puts ("1st mutexattr_settype failed");
       return 1;
     }
+#ifdef ENABLE_PI
+  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
+    {
+      puts ("1st pthread_mutexattr_setprotocol failed");
+      return 1;
+    }
+#endif
   puts ("check recursive mutex");
   res |= check_type ("recursive", &ma);
   if (pthread_mutexattr_destroy (&ma) != 0)
@@ -351,6 +358,13 @@
       puts ("2nd mutexattr_settype failed");
       return 1;
     }
+#ifdef ENABLE_PI
+  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
+    {
+      puts ("2nd pthread_mutexattr_setprotocol failed");
+      return 1;
+    }
+#endif
   puts ("check error-checking mutex");
   res |= check_type ("error-checking", &ma);
   if (pthread_mutexattr_destroy (&ma) != 0)

Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c Fri May 10 00:01:56 2013
@@ -184,13 +184,13 @@
 };
 
 static const long double c[] = {
-/* 93 bits of pi/2 */
+/* 113 bits of pi/2 */
 #define PI_2_1 c[0]
- 1.57079632679489661923132169155131424e+00L, /* 3fff921fb54442d18469898cc5100000 */
+ 0x1.921fb54442d18469898cc51701b8p+0L,
 
 /* pi/2 - PI_2_1 */
 #define PI_2_1t c[1]
- 8.84372056613570112025531863263659260e-29L, /* 3fa1c06e0e68948127044533e63a0106 */
+ 0x3.9a252049c1114cf98e804177d4c8p-116L,
 };
 
 int32_t __ieee754_rem_pio2l(long double x, long double *y)
@@ -213,7 +213,7 @@
     {
       if (hx > 0)
 	{ 
-	  /* 113 + 93 bit PI is ok */
+	  /* 113 + 113 bit PI is ok */
 	  z = x - PI_2_1;
 	  y[0] = z - PI_2_1t;
 	  y[1] = (z - y[0]) - PI_2_1t;
@@ -221,7 +221,7 @@
 	}
       else
         {
-	  /* 113 + 93 bit PI is ok */
+	  /* 113 + 113 bit PI is ok */
 	  z = x + PI_2_1;
 	  y[0] = z + PI_2_1t;
 	  y[1] = (z - y[0]) + PI_2_1t;

Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c Fri May 10 00:01:56 2013
@@ -185,13 +185,13 @@
 };
 
 static const long double c[] = {
-/* 93 bits of pi/2 */
+/* 106 bits of pi/2 */
 #define PI_2_1 c[0]
- 1.57079632679489661923132169155131424e+00L, /* 3fff921fb54442d18469898cc5100000 */
+ 0x1.921fb54442d18469898cc517018p+0L,
 
 /* pi/2 - PI_2_1 */
 #define PI_2_1t c[1]
- 8.84372056613570112025531863263659260e-29L, /* 3fa1c06e0e68948127044533e63a0106 */
+ 0x3.839a252049c1114cf98e804178p-108L,
 };
 
 int32_t __ieee754_rem_pio2l(long double x, long double *y)
@@ -216,7 +216,7 @@
     {
       if (hx > 0)
 	{
-	  /* 113 + 93 bit PI is ok */
+	  /* 106 + 106 bit PI is ok */
 	  z = x - PI_2_1;
 	  y[0] = z - PI_2_1t;
 	  y[1] = (z - y[0]) - PI_2_1t;
@@ -224,7 +224,7 @@
 	}
       else
         {
-	  /* 113 + 93 bit PI is ok */
+	  /* 106 + 106 bit PI is ok */
 	  z = x + PI_2_1;
 	  y[0] = z + PI_2_1t;
 	  y[1] = (z - y[0]) + PI_2_1t;

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