]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++, Darwin: Limit recursive mutex init to OS versions needing it.
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 3 Dec 2022 17:09:35 +0000 (17:09 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Wed, 24 Apr 2024 18:37:55 +0000 (19:37 +0100)
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 <iain@sandoe.co.uk>
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.

(cherry picked from commit a044c9d25972b22c6b4c8ec27f2de5fd622573cc)

libstdc++-v3/config/os/bsd/darwin/os_defines.h

index 0b3bb7950b100018a39c649d14c8925e59f911d5..394d7209711b126e9b2dd567472f50d3557a859d 100644 (file)
 // -flat_namespace to work around the way that it doesn't.
 #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.