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: