https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108225
--- Comment #22 from cqwrteur <unlvsur at live dot com> --- (In reply to cqwrteur from comment #19) > (In reply to cqwrteur from comment #18) > > (In reply to cqwrteur from comment #17) > > > (In reply to Eric Botcazou from comment #16) > > > > > #if _WIN32_WINNT >= 0x0600 > > > > > #define __GTHREAD_HAS_COND 1 > > > > > #define __GTHREADS_CXX0X 1 > > > > > #endif > > > > > > > > > > I suggest remove this macro in the header due to potential breakage > > > > > > > > > > #if _WIN32_WINNT >= 0x0600 > > > > > #endif > > > > > > > > That's nonsensical. > > > > > > The problem is that libstdc++ would instantly break if someone randomly > > > defines _WIN32_WINNT (like gdb does). > > > > The solution would probably be for libstdc++ to guard against > > __GHTREAD_HAS_COND instead > > https://sourceware.org/bugzilla/show_bug.cgi?id=29966 not working d-pool.cc:21: /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/x86_64-w64-mingw32/include/c++/13.0.0/bits/std_mutex.h:164:5: error: '__gthread_cond_t' does not name a type; did you mean '__gthread_once_t'? 164 | __gthread_cond_t* native_handle() noexcept { return &_M_cond; } | ^~~~~~~~~~~~~~~~ | __gthread_once_t /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/x86_64-w64-mingw32/include/c++/13.0.0/bits/std_mutex.h:208:5: error: '__gthread_cond_t' does not name a type; did you mean '__gthread_once_t'? 208 | __gthread_cond_t _M_cond; | ^~~~~~~~~~~~~~~~ | __gthread_once_t /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/x86_64-w64-mingw32/include/c++/13.0.0/bits/std_mutex.h: In constructor 'std::__condvar::__condvar()': /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/x86_64-w64-mingw32/include/c++/13.0.0/bits/std_mutex.h:151:37: error: '_M_cond' was not declared in this scope 151 | __GTHREAD_COND_INIT_FUNCTION(&_M_cond); | ^~~~~~~ CC ldcref.o