https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108225
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WONTFIX Status|WAITING |RESOLVED --- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to cqwrteur from comment #3) > libstdc++ completely ignores __GTHREAD_HAS_COND macro which cause build > failure for gdb If GDB requires <mutex> then it requires working C++11 thread support, which has never worked for the win32 thread model with -D_WIN32_WINNT=0x0500. With GCC 12, gthr-win32.h simply doesn't support std::mutex, period. With GCC 13 it supports it for modern Windows versions: /* Condition variables are supported on Vista and Server 2008 or later. */ #if _WIN32_WINNT >= 0x0600 #define __GTHREAD_HAS_COND 1 #define __GTHREADS_CXX0X 1 #endif For older Windows versions, the win32 thread model doesn't support std::mutex etc. There is no C++11 threading support for Win95 using --enable-threads=win32. If you don't like it, either don't compile for Win95 or use a different thread model. Ranting and raving that unsupported things don't work is a waste of time.