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 <aure...@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 <sch...@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