https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107221
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |13.0 Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Same place it's always been defined, in gthr.h which is included by <ext/concurrence.h> And every other header includes <bits/c++config.h> i.e. all of these: #include <exception> // std::exception #include <new> // std::terminate #include <cstdlib> // std::malloc, std::free, std::strtoul #include <climits> // INT_MAX #include <bits/stl_function.h> // std::less #include "unwind-cxx.h" #if _GLIBCXX_HOSTED # include <string_view> // std::string_view # include <cstring> // std::strchr, std::memset # include <ext/concurrence.h> // __gnu_cxx::__mutex, __gnu_cxx::__scoped_lock #endif That's why I removed the unnecessary initial #include of it. This should fix it: --- a/libstdc++-v3/libsupc++/eh_alloc.cc +++ b/libstdc++-v3/libsupc++/eh_alloc.cc @@ -236,7 +236,7 @@ namespace void *pool::allocate (std::size_t size) noexcept { - __gnu_cxx::__scoped_lock sentry(emergency_mutex); + __scoped_lock sentry(emergency_mutex); // We need an additional size_t member plus the padding to // ensure proper alignment of data. size += offsetof (allocated_entry, data);