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.

Reply via email to