[OE-core] [PATCH] glibc: Make it possible to use PTHREAD_MUTEX_INITIALIZER with -std=c11
Peter Kjellerstedt
pkj at axis.com
Wed Jan 29 08:32:12 UTC 2020
This avoids the following error when building with -std=c11:
In file included from /usr/include/bits/thread-shared-types.h:74,
from /usr/include/bits/pthreadtypes.h:23,
from /usr/include/pthread.h:26,
from bug25271.c:1:
bug25271.c:3:21: error: ‘PTHREAD_MUTEX_DEFAULT’ undeclared here (not in a function)
3 | pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
---
...-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch | 48 +++++++++++++++++++
meta/recipes-core/glibc/glibc_2.31.bb | 1 +
2 files changed, 49 insertions(+)
create mode 100644 meta/recipes-core/glibc/glibc/0030-nptl-Avoid-using-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch
diff --git a/meta/recipes-core/glibc/glibc/0030-nptl-Avoid-using-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch b/meta/recipes-core/glibc/glibc/0030-nptl-Avoid-using-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch
new file mode 100644
index 0000000000..215c717773
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0030-nptl-Avoid-using-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch
@@ -0,0 +1,48 @@
+From 1ad498474920d9cb879f934dd5781b872bb65fec Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer at redhat.com>
+Date: Mon, 27 Jan 2020 14:53:00 +0100
+Subject: [PATCH] nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition
+ [BZ #25271]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 1c3f9acf1f1f75faa7a28bf39af64afd ("nptl: Add struct_mutex.h")
+replaced a zero constant with the identifier PTHREAD_MUTEX_DEFAULT
+in the macro PTHREAD_MUTEX_INITIALIZER. However, that constant
+is not available in ISO C11 mode:
+
+In file included from /usr/include/bits/thread-shared-types.h:74,
+ from /usr/include/bits/pthreadtypes.h:23,
+ from /usr/include/pthread.h:26,
+ from bug25271.c:1:
+bug25271.c:3:21: error: ‘PTHREAD_MUTEX_DEFAULT’ undeclared here (not in a function)
+ 3 | pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~
+
+This commit change the constant to the equivalent
+PTHREAD_MUTEX_TIMED_NP, which is in the POSIX extension namespace
+and thus always available.
+
+Tested on x86_64-linux-gnu and i686-linux-gnu. Verified that a
+minimal example now builds in -std=c11 mode.
+
+Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1229855]
+Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
+---
+ sysdeps/nptl/pthread.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
+index 7825737840..44dd707896 100644
+--- a/sysdeps/nptl/pthread.h
++++ b/sysdeps/nptl/pthread.h
+@@ -84,7 +84,7 @@ enum
+
+
+ #define PTHREAD_MUTEX_INITIALIZER \
+- { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_DEFAULT) } }
++ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } }
+ #ifdef __USE_GNU
+ # define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }
diff --git a/meta/recipes-core/glibc/glibc_2.31.bb b/meta/recipes-core/glibc/glibc_2.31.bb
index 9f299a7bc3..0c12eb5517 100644
--- a/meta/recipes-core/glibc/glibc_2.31.bb
+++ b/meta/recipes-core/glibc/glibc_2.31.bb
@@ -40,6 +40,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \
file://0028-inject-file-assembly-directives.patch \
file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
+ file://0030-nptl-Avoid-using-PTHREAD_MUTEX_DEFAULT-in-macro-defi.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build-${TARGET_SYS}"
--
2.21.1
More information about the Openembedded-core
mailing list