http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51906
--- Comment #33 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-01-31 15:27:47 UTC --- Unsurprising. That code only statically-allocates a mutex, doesn't use C++ non-static data member initializers and doesn't use a recursive mutex (from the info you've given it seems that all the failures relate to recursive mutexes.)