diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 6a664e4..5a9a595 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 1709f22..1257726 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -288,6 +288,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 6a664e4..5a9a595 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index fb74bc9..5e43e26 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -287,6 +287,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 6a664e4..5a9a595 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Aug 11 10:01:54 UTC 2014 - schwab@suse.de + +- pthread-mutexattr-gettype-kind.patch: Filter out + PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype + (bnc#888131, BZ #15790) + ------------------------------------------------------------------- Thu Jul 31 08:06:50 UTC 2014 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 683fdb7..acad5fe 100644 --- a/glibc.spec +++ b/glibc.spec @@ -288,6 +288,8 @@ Patch2004: pthread-mutex-trylock-elision.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# PATCH-FIX-UPSTREAM Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) +Patch2007: pthread-mutexattr-gettype-kind.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -515,6 +517,7 @@ rm nscd/s-stamp %patch2004 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 %patch3000 diff --git a/pthread-mutexattr-gettype-kind.patch b/pthread-mutexattr-gettype-kind.patch new file mode 100644 index 0000000..2bf8709 --- /dev/null +++ b/pthread-mutexattr-gettype-kind.patch @@ -0,0 +1,111 @@ +From 867dbf6ba31c0a0f5c0366f9ed71b0afc3727a23 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Mon, 11 Aug 2014 11:18:26 +0200 +Subject: [PATCH] Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in + pthread_mutexattr_gettype (BZ #15790) + + [BZ #15790] + * nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): + Filter out PTHREAD_MUTEX_NO_ELISION_NP from value returned in + kind. + * nptl/Makefile (tests): Add tst-pthread-mutexattr. + * nptl/tst-pthread-mutexattr.c: New file. +--- + nptl/Makefile | 2 +- + nptl/pthread_mutexattr_gettype.c | 3 +- + nptl/tst-pthread-mutexattr.c | 60 ++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 63 insertions(+), 2 deletions(-) + create mode 100644 nptl/tst-pthread-mutexattr.c + +Index: glibc-2.19/nptl/Makefile +=================================================================== +--- glibc-2.19.orig/nptl/Makefile ++++ glibc-2.19/nptl/Makefile +@@ -253,7 +253,7 @@ tests = tst-typesizes \ + tst-exit1 tst-exit2 tst-exit3 \ + tst-stdio1 tst-stdio2 \ + tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ +- tst-pthread-attr-affinity \ ++ tst-pthread-attr-affinity tst-pthread-mutexattr \ + tst-unload \ + tst-dlsym1 \ + tst-sysconf \ +Index: glibc-2.19/nptl/pthread_mutexattr_gettype.c +=================================================================== +--- glibc-2.19.orig/nptl/pthread_mutexattr_gettype.c ++++ glibc-2.19/nptl/pthread_mutexattr_gettype.c +@@ -28,7 +28,8 @@ pthread_mutexattr_gettype (attr, kind) + + iattr = (const struct pthread_mutexattr *) attr; + +- *kind = iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS; ++ *kind = (iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS ++ & ~PTHREAD_MUTEX_NO_ELISION_NP); + + return 0; + } +Index: glibc-2.19/nptl/tst-pthread-mutexattr.c +=================================================================== +--- /dev/null ++++ glibc-2.19/nptl/tst-pthread-mutexattr.c +@@ -0,0 +1,60 @@ ++/* Make sure that pthread_mutexattr_gettype returns a valid kind. ++ ++ Copyright (C) 2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ pthread_mutexattr_t attr; ++ int kind; ++ int error; ++ ++ error = pthread_mutexattr_init (&attr); ++ if (error) ++ { ++ printf ("pthread_mutexattr_init: %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_DEFAULT); ++ if (error) ++ { ++ printf ("pthread_mutexattr_settype (1): %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_gettype (&attr, &kind); ++ if (error) ++ { ++ printf ("pthread_mutexattr_gettype: %s\n", strerror (error)); ++ return 1; ++ } ++ error = pthread_mutexattr_settype (&attr, kind); ++ if (error) ++ { ++ printf ("pthread_mutexattr_settype (2): %s\n", strerror (error)); ++ return 1; ++ } ++ return 0; ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c"