https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108225
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|MOVED |--- Status|RESOLVED |REOPENED --- Comment #23 from Jonathan Wakely <redi at gcc dot gnu.org> --- The problem now is that using a different value of _WIN32_WINNT invalidates what was used during libstdc++'s configure, making _GLIBCXX_HAS_GTHREADS incorrect. Maybe we want something like this: diff --git a/libstdc++-v3/config/os/mingw32-w64/os_defines.h b/libstdc++-v3/config/os/mingw32-w64/os_defines.h index ee02ff82e86..68ac100acc8 100644 --- a/libstdc++-v3/config/os/mingw32-w64/os_defines.h +++ b/libstdc++-v3/config/os/mingw32-w64/os_defines.h @@ -96,4 +96,13 @@ // See libstdc++/94268 #define _GLIBCXX_BUFSIZ 4096 +#if _WIN32_WINNT < 0x0600 +// For the win32 thread model, setting _WIN32_WINNT to an old version might +// invalidate the value of _GLIBCXX_HAS_GTHREADS decided during configure. +# include <gthr.h> +# ifndef __GTHREADS_CXX0X +# undef _GLIBCXX_HAS_GTHREADS +# endif +#endif + #endif