mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 06:32:11 +02:00
glibc: fix pthread_cond_destroy hangs with process-shared mutex
This bug can cause pthread_cond_destroy hang with process-shared mutex. And it is since glibc-2.32, will be fixed in glibc-2.34. (From OE-Core rev: 7d9c50a12d1b47474536c214f44dc4ff72c54402) Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
a9d032345f
commit
3f8d6c0637
@@ -0,0 +1,49 @@
|
||||
From c4ad832276f4dadfa40904109b26a521468f66bc Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu, 4 Feb 2021 15:00:20 +0100
|
||||
Subject: [PATCH] nptl: Remove private futex optimization [BZ #27304]
|
||||
|
||||
It is effectively used, unexcept for pthread_cond_destroy, where we do
|
||||
not want it; see bug 27304. The internal locks do not support a
|
||||
process-shared mode.
|
||||
|
||||
This fixes commit dc6cfdc934db9997c33728082d63552b9eee4563 ("nptl:
|
||||
Move pthread_cond_destroy implementation into libc").
|
||||
|
||||
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/bugzilla/show_bug.cgi?id=27304]
|
||||
Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
|
||||
---
|
||||
sysdeps/nptl/lowlevellock-futex.h | 14 +-------------
|
||||
1 file changed, 1 insertion(+), 13 deletions(-)
|
||||
|
||||
diff --git a/sysdeps/nptl/lowlevellock-futex.h b/sysdeps/nptl/lowlevellock-futex.h
|
||||
index ecb729da6b..ca96397a4a 100644
|
||||
--- a/sysdeps/nptl/lowlevellock-futex.h
|
||||
+++ b/sysdeps/nptl/lowlevellock-futex.h
|
||||
@@ -50,20 +50,8 @@
|
||||
#define LLL_SHARED FUTEX_PRIVATE_FLAG
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
-
|
||||
-# if IS_IN (libc) || IS_IN (rtld)
|
||||
-/* In libc.so or ld.so all futexes are private. */
|
||||
-# define __lll_private_flag(fl, private) \
|
||||
- ({ \
|
||||
- /* Prevent warnings in callers of this macro. */ \
|
||||
- int __lll_private_flag_priv __attribute__ ((unused)); \
|
||||
- __lll_private_flag_priv = (private); \
|
||||
- ((fl) | FUTEX_PRIVATE_FLAG); \
|
||||
- })
|
||||
-# else
|
||||
-# define __lll_private_flag(fl, private) \
|
||||
+# define __lll_private_flag(fl, private) \
|
||||
(((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
|
||||
-# endif
|
||||
|
||||
# define lll_futex_syscall(nargs, futexp, op, ...) \
|
||||
({ \
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@@ -47,6 +47,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
|
||||
file://0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch \
|
||||
file://0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch \
|
||||
file://CVE-2021-27645.patch \
|
||||
file://0001-nptl-Remove-private-futex-optimization-BZ-27304.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
B = "${WORKDIR}/build-${TARGET_SYS}"
|
||||
|
||||
Reference in New Issue
Block a user