https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114838
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- It's guarded with _GLIBCXX_HAS_GTHREADS which is defined by configure when __GTHREADS_CXX0X is defined by <gthr.h>, which for gthr-win32.h means: #if _WIN32_WINNT >= 0x0600 #define __GTHREAD_HAS_COND 1 #define __GTHREADS_CXX0X 1 #endif So libstdc++ assumes that __GTHREADS_CXX0X is fixed at build-time, not something that changes from one compilation to the next.