http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51008
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-07 14:24:43 UTC --- Created attachment 25735 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25735 use __GTHREAD_RECURSIVE_MUTEX_DESTROY_FUNCTION if defined here's a proof of concept, that would allow your private gthr to define the macro and work. we could then gradually transition Win32 and other gthr impls to use that and remove the sfinae hacks