Sync with upstream master

This commit is contained in:
Siddhesh Poyarekar 2013-10-15 11:09:58 +05:30
parent c2021d0b30
commit f03231b069
5 changed files with 7 additions and 139 deletions

View File

@ -1,46 +0,0 @@
commit ab8473b63982c814cdf509b8061fe0152cf3fd39
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Tue Oct 1 14:29:00 2013 +0530
Fix PI mutex check in pthread_cond_broadcast and pthread_cond_signal
The check had a typo - it checked for PTHREAD_MUTEX_ROBUST instead of
PTHREAD_MUTEX_NORMAL_ROBUST_NP. It has now been replaced by the
already existing convenience macro USE_REQUEUE_PI.
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
index 0702ec0..7ba9efa 100644
--- a/nptl/pthread_cond_broadcast.c
+++ b/nptl/pthread_cond_broadcast.c
@@ -63,10 +63,7 @@ __pthread_cond_broadcast (cond)
#if (defined lll_futex_cmp_requeue_pi \
&& defined __ASSUME_REQUEUE_PI)
- int pi_flag = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NP;
- pi_flag &= mut->__data.__kind;
-
- if (pi_flag == PTHREAD_MUTEX_PRIO_INHERIT_NP)
+ if (USE_REQUEUE_PI (mut))
{
if (lll_futex_cmp_requeue_pi (&cond->__data.__futex, 1, INT_MAX,
&mut->__data.__lock, futex_val,
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
index 102d0b3..ffc35dc 100644
--- a/nptl/pthread_cond_signal.c
+++ b/nptl/pthread_cond_signal.c
@@ -49,14 +49,9 @@ __pthread_cond_signal (cond)
#if (defined lll_futex_cmp_requeue_pi \
&& defined __ASSUME_REQUEUE_PI)
- int pi_flag = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NP;
pthread_mutex_t *mut = cond->__data.__mutex;
- /* Do not use requeue for pshared condvars. */
- if (mut != (void *) ~0l)
- pi_flag &= mut->__data.__kind;
-
- if (__builtin_expect (pi_flag == PTHREAD_MUTEX_PRIO_INHERIT_NP, 0)
+ if (USE_REQUEUE_PI (mut)
/* This can only really fail with a ENOSYS, since nobody can modify
futex while we have the cond_lock. */
&& lll_futex_cmp_requeue_pi (&cond->__data.__futex, 1, 0,

View File

@ -31,12 +31,3 @@ diff -rup a/resolv/res_send.c b/resolv/res_send.c
while (ns < MAXNS
&& EXT(statp).nsmap[ns] != MAXNS)
ns++;
@@ -441,7 +441,7 @@ __libc_res_nsend(res_state statp, const
malloc(sizeof (struct sockaddr_in6));
if (EXT(statp).nsaddrs[n] != NULL) {
memset (mempcpy(EXT(statp).nsaddrs[n],
- &statp->nsaddr_list[n],
+ &statp->nsaddr_list[ns],
sizeof (struct sockaddr_in)),
'\0',
sizeof (struct sockaddr_in6)

View File

@ -1,73 +0,0 @@
diff -rup c/sysdeps/ieee754/dbl-64/slowexp.c d/sysdeps/ieee754/dbl-64/slowexp.c
--- c/sysdeps/ieee754/dbl-64/slowexp.c 2013-06-04 16:40:55.000000000 +0530
+++ d/sysdeps/ieee754/dbl-64/slowexp.c 2013-06-04 21:02:49.377439607 +0530
@@ -29,6 +29,8 @@
/**************************************************************************/
#include <math_private.h>
+#include <stap-probe.h>
+
#ifndef USE_LONG_DOUBLE_FOR_MP
# include "mpa.h"
void __mpexp (mp_no *x, mp_no *y, int p);
@@ -60,13 +62,22 @@ __slowexp (double x)
__mp_dbl (&mpw, &w, p);
__mp_dbl (&mpz, &z, p);
if (w == z)
- return w;
+ {
+ /* Track how often we get to the slow exp code plus
+ its input/output values. */
+ LIBC_PROBE (slowexp_p6, 2, &x, &w);
+ return w;
+ }
else
{
p = 32;
__dbl_mp (x, &mpx, p);
__mpexp (&mpx, &mpy, p);
__mp_dbl (&mpy, &res, p);
+
+ /* Track how often we get to the uber-slow exp code plus
+ its input/output values. */
+ LIBC_PROBE (slowexp_p32, 2, &x, &res);
return res;
}
#else
diff -rup c/sysdeps/ieee754/dbl-64/slowpow.c d/sysdeps/ieee754/dbl-64/slowpow.c
--- c/sysdeps/ieee754/dbl-64/slowpow.c 2013-06-04 16:40:55.000000000 +0530
+++ d/sysdeps/ieee754/dbl-64/slowpow.c 2013-06-04 21:05:21.776433149 +0530
@@ -34,6 +34,8 @@
#include "mpa.h"
#include <math_private.h>
+#include <stap-probe.h>
+
#ifndef SECTION
# define SECTION
#endif
@@ -97,7 +99,12 @@ __slowpow (double x, double y, double z)
__sub (&mpp, &eps, &mpr1, p);
__mp_dbl (&mpr1, &res1, p);
if (res == res1)
- return res;
+ {
+ /* Track how often we get to the slow pow code plus
+ its input/output values. */
+ LIBC_PROBE (slowpow_p10, 4, &x, &y, &z, &res);
+ return res;
+ }
/* If we don't, then we repeat using a higher precision. 768 bits of
precision ought to be enough for anybody. */
@@ -109,5 +116,10 @@ __slowpow (double x, double y, double z)
__mul (&mpy, &mpz, &mpw, p);
__mpexp (&mpw, &mpp, p);
__mp_dbl (&mpp, &res, p);
+
+ /* Track how often we get to the uber-slow pow code plus
+ its input/output values. */
+ LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res);
+
return res;
}

View File

@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.18-186-gfd96752
%define glibcsrcdir glibc-2.18-303-g1e14558
%define glibcversion 2.18.90
%define glibcrelease 10%{?dist}
%define glibcrelease 11%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@ -141,9 +141,6 @@ Patch0006: %{name}-arm-hardfloat-3.patch
Patch0008: %{name}-fedora-getrlimit-PLT.patch
Patch0009: %{name}-fedora-include-bits-ldbl.patch
# stap, needs to be sent upstream
Patch0010: %{name}-stap-libm.patch
# Needs to be sent upstream
Patch0029: %{name}-rh841318.patch
@ -221,8 +218,6 @@ Patch2026: %{name}-rh841787.patch
# Upstream BZ 14185
Patch2027: %{name}-rh819430.patch
Patch2028: %{name}-rh1007590.patch
##############################################################################
# End of glibc patches.
##############################################################################
@ -519,7 +514,6 @@ package or when debugging this package.
%patch2007 -p1
%patch0008 -p1
%patch0009 -p1
%patch0010 -p1
%patch2011 -p1
%patch0012 -p1
%patch2013 -p1
@ -548,7 +542,6 @@ package or when debugging this package.
%patch0041 -p1
%patch0042 -p1
%patch0043 -p1
%patch2028 -p1
%patch0044 -p1
%patch0045 -p1
%patch0046 -p1
@ -1637,7 +1630,10 @@ rm -f *.filelist*
%endif
%changelog
* Thu Oct 3 2013 Carlos O'Donell <carlos@redhat.com> - 2.18.90-9
* Tue Oct 15 2013 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-11
- Sync with upstream master.
* Thu Oct 3 2013 Carlos O'Donell <carlos@redhat.com> - 2.18.90-10
- Allow applications to use pthread_atfork without explicitly
requiring libpthread.so. (#1013801)
- Support `--list-archive FILE' in localedef utility.

View File

@ -1 +1 @@
c667b38ec4bf60aff4a83d756e14e7aa glibc-2.18-186-gfd96752.tar.gz
60f9a7e0483ab7d38ea30f99826b7bff glibc-2.18-303-g1e14558.tar.gz