This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/51906] thread lock test failures on darwin11 under Xcode 4.2
- From: "howarth at nitro dot med.uc.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 28 Jan 2012 16:52:24 +0000
- Subject: [Bug libstdc++/51906] thread lock test failures on darwin11 under Xcode 4.2
- Auto-submitted: auto-generated
- References: <bug-51906-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51906
--- Comment #12 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-01-28 16:52:24 UTC ---
The contents of 3.ii.diff seems to suggest that the problem is the fact that
Lion always defines _GTHREAD_RECURSIVE_MUTEX_INIT and this support is either
buggy on Lion or is exposing a libstdc++ mutex bug. This usage can be seen in
libstdc++-v3/include/mutex as....
#ifdef __GTHREAD_RECURSIVE_MUTEX_INIT
__native_type _M_mutex = __GTHREAD_RECURSIVE_MUTEX_INIT;
__recursive_mutex_base() = default;
#else
__native_type _M_mutex;
__recursive_mutex_base()
{
// XXX EAGAIN, ENOMEM, EPERM, EBUSY(may), EINVAL(may)
__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION(&_M_mutex);
}
~__recursive_mutex_base()
{ _S_destroy(&_M_mutex); }
Note that if you compile 3.ii.lion_10.6 on SL, the same execution failure is
seen there.