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 <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.
This commit is contained in:
Iain Sandoe 2022-12-03 17:09:35 +00:00
parent e76a44bf68
commit a044c9d259

View file

@ -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.