http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51906
--- Comment #38 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-02-03
02:39:01 UTC ---
(In reply to comment #37)
Actually that above approach won't work because the pthread.h header on
darwin11 always sources...
#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) ||
defined(_DARWIN_C_SOURCE)
#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
{_PTHREAD_ERRORCHECK_MUTEX_SIG_init, {0}}
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER {_PTHREAD_RECURSIVE_MUTEX_SIG_init,
{0}}
#endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
regardless of MACOSX_DEPLOYMENT_TARGET. This actually seems like another Apple
bug to me since there really should be a wrapper like...
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
// code only compiled when targeting Mac OS X and not iPhone
// note use of 1070 instead of __MAC_10_7
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
// code in here to run targeting Lion
#else
// code here can assume targeting pre-Lion.
#endif
#endif
I think we really have to unconditionally initialize the mutex on darwin.