http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52839
--- Comment #17 from Alan Modra <amodra at gmail dot com> 2012-04-05 12:05:01 UTC --- I spent quite a bit of time today looking at libpthread and can't spot a problem in pthread_mutex_lock and pthread_mutex_unlock. I wonder if the problem is that libstdc++ is using both atomics and pthread_mutex protected manipulation of the same variable? That of course would fail. Looking at libstdc++ with objdump, I do see quite a few occurrences of lwarx even though _GLIBCXX_ATOMIC_BUILTINS is undefined. These are the functions: atomic_flag_test_and_set_explicit _ZL33__gxx_dependent_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception _ZNSt15__exception_ptr13exception_ptr9_M_addrefEv _ZNSt15__exception_ptr13exception_ptr10_M_releaseEv _ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE _ZL22free_any_cxa_exceptionP17_Unwind_Exception _ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception __cxa_guard_acquire __cxa_guard_abort __cxa_guard_release