This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/51906] thread lock test failures on darwin11 under Xcode 4.2


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]