From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1698) id 5E25B38493D0; Sun, 4 Dec 2022 14:56:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E25B38493D0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1670165768; bh=ZFKGtDrA18vDAXgBKgYKenFRMmwKpMAhPFAzTT6L1v0=; h=From:To:Subject:Date:From; b=DzUgyxMm19edpPr3jcrSV6Sj7abMUb4JN2Mx0Ol8VsGEOAdKBRmPtlzLI3Nc2hibr WLLisuXTq+7MZZ1eTncUWnWb2nmalDR9Gfe6mtDAJNI6eLLrxwcejXsHJcp4opAQZE HXOnm2/PrMGQZyZtjWKTd7qYnqhzK+E2Tn+zppH0= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Iain D Sandoe To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-4482] libstdc++, Darwin: Limit recursive mutex init to OS versions needing it. X-Act-Checkin: gcc X-Git-Author: Iain Sandoe X-Git-Refname: refs/heads/master X-Git-Oldrev: e76a44bf68b79278cb2c20e4ce87657a247adcfe X-Git-Newrev: a044c9d25972b22c6b4c8ec27f2de5fd622573cc Message-Id: <20221204145608.5E25B38493D0@sourceware.org> Date: Sun, 4 Dec 2022 14:56:08 +0000 (GMT) List-Id: https://gcc.gnu.org/g:a044c9d25972b22c6b4c8ec27f2de5fd622573cc commit r13-4482-ga044c9d25972b22c6b4c8ec27f2de5fd622573cc Author: Iain Sandoe Date: Sat Dec 3 17:09:35 2022 +0000 libstdc++, Darwin: Limit recursive mutex init to OS versions needing it. The problem described in pr 51906 was fixed in the next OS release. Limit the workaround to systems that need it. Signed-off-by: Iain Sandoe libstdc++-v3/ChangeLog: * config/os/bsd/darwin/os_defines.h (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro to OS versions that need it. Diff: --- libstdc++-v3/config/os/bsd/darwin/os_defines.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/config/os/bsd/darwin/os_defines.h b/libstdc++-v3/config/os/bsd/darwin/os_defines.h index 38fdfb5f6f0..5b611d32e0d 100644 --- a/libstdc++-v3/config/os/bsd/darwin/os_defines.h +++ b/libstdc++-v3/config/os/bsd/darwin/os_defines.h @@ -39,8 +39,12 @@ // implementation is not itself a weak definition). #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((__weak__)) -// Static initializer macro is buggy in darwin, see libstdc++/51906 +#if defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \ + && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1080) +// Static initializer macro is absent for Darwin < 11 and buggy in Darwin 11, +// see libstdc++/51906. Fixed in Darwin 12 (OS X 10.8). #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC +#endif // Configure checks for nanosleep fail on Darwin, but nanosleep and // sched_yield are always available, so use them.