https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108225
--- Comment #25 from Jonathan Wakely <redi at gcc dot gnu.org> --- For --enable-threads=posix the value of _WIN32_WINNT doesn't matter, so we don't want to disable _GLIBCXX_HAS_GTHREADS in that case. That's why we need to include <gthr.h>, to find out if it's actually affected by _WIN32_WINNT. But IMHO we don't want to include <gthr.h> unconditionally in every single libstdc++ header (because they all include <bits/c++config.h> which includes this os_defines.h header). So only do it if _WIN32_WINNT has been set to some ancient value, because otherwise the problem doesn't exist.