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

r6474 - in glibc-package/branches/glibc-branch-jessie/debian: . patches patches/any



Author: aurel32
Date: 2015-08-15 08:05:49 +0000 (Sat, 15 Aug 2015)
New Revision: 6474

Added:
   glibc-package/branches/glibc-branch-jessie/debian/patches/any/cvs-forced-elision.diff
Modified:
   glibc-package/branches/glibc-branch-jessie/debian/changelog
   glibc-package/branches/glibc-branch-jessie/debian/patches/series
Log:
patches/any/cvs-forced-elision.diff: Fix pthread_mutex_trylock with
lock elision.  Closes: #759197, #788999.

Modified: glibc-package/branches/glibc-branch-jessie/debian/changelog
===================================================================
--- glibc-package/branches/glibc-branch-jessie/debian/changelog	2015-08-15 07:45:05 UTC (rev 6473)
+++ glibc-package/branches/glibc-branch-jessie/debian/changelog	2015-08-15 08:05:49 UTC (rev 6474)
@@ -1,3 +1,11 @@
+glibc (2.19-19) UNRELEASED; urgency=medium
+
+  [ Aurelien Jarno ]
+  * patches/any/cvs-forced-elision.diff: Fix pthread_mutex_trylock with
+    lock elision.  Closes: #759197, #788999.
+
+ -- Aurelien Jarno <aurel32@debian.org>  Sat, 15 Aug 2015 10:02:18 +0200
+
 glibc (2.19-18) unstable; urgency=medium
 
   [ Aurelien Jarno ]

Added: glibc-package/branches/glibc-branch-jessie/debian/patches/any/cvs-forced-elision.diff
===================================================================
--- glibc-package/branches/glibc-branch-jessie/debian/patches/any/cvs-forced-elision.diff	                        (rev 0)
+++ glibc-package/branches/glibc-branch-jessie/debian/patches/any/cvs-forced-elision.diff	2015-08-15 08:05:49 UTC (rev 6474)
@@ -0,0 +1,54 @@
+2014-12-11  Andreas Schwab  <schwab@suse.de>
+
+	[BZ #16657]
+	* nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
+	FORCE_ELISION instead of DO_ELISION.
+	* sysdeps/unix/sysv/linux/x86/force-elision.h (DO_ELISION):
+	Remove.
+ 
+--- a/nptl/pthread_mutex_trylock.c
++++ b/nptl/pthread_mutex_trylock.c
+@@ -26,8 +26,8 @@
+ #define lll_trylock_elision(a,t) lll_trylock(a)
+ #endif
+ 
+-#ifndef DO_ELISION
+-#define DO_ELISION(m) 0
++#ifndef FORCE_ELISION
++#define FORCE_ELISION(m, s)
+ #endif
+ 
+ /* We don't force elision in trylock, because this can lead to inconsistent
+@@ -69,7 +69,7 @@
+       break;
+ 
+     case PTHREAD_MUTEX_TIMED_ELISION_NP:
+-    elision:
++    elision: __attribute__((unused))
+       if (lll_trylock_elision (mutex->__data.__lock,
+ 			       mutex->__data.__elision) != 0)
+         break;
+@@ -77,8 +77,7 @@
+       return 0;
+ 
+     case PTHREAD_MUTEX_TIMED_NP:
+-      if (DO_ELISION (mutex))
+-	goto elision;
++      FORCE_ELISION (mutex, goto elision);
+       /*FALL THROUGH*/
+     case PTHREAD_MUTEX_ADAPTIVE_NP:
+     case PTHREAD_MUTEX_ERRORCHECK_NP:
+--- a/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h
++++ b/nptl/sysdeps/unix/sysv/linux/x86/force-elision.h
+@@ -16,11 +16,6 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-/* Check for elision on this lock without upgrading.  */
+-#define DO_ELISION(m)							\
+-  (__pthread_force_elision						\
+-   && (m->__data.__kind & PTHREAD_MUTEX_NO_ELISION_NP) == 0)		\
+-
+ /* Automatically enable elision for existing user lock kinds.  */
+ #define FORCE_ELISION(m, s)						\
+   if (__pthread_force_elision						\

Modified: glibc-package/branches/glibc-branch-jessie/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-branch-jessie/debian/patches/series	2015-08-15 07:45:05 UTC (rev 6473)
+++ glibc-package/branches/glibc-branch-jessie/debian/patches/series	2015-08-15 08:05:49 UTC (rev 6474)
@@ -272,3 +272,4 @@
 any/cvs-vfprintf.diff
 any/cvs-wscanf.diff
 any/cvs-ldconfig-aux-cache.diff
+any/cvs-forced-elision.diff


Reply to: