Hi Jonathan, > The <condition_variable>, <mutex>, and <shared_mutex> headers use > std::errc constants, but don't use std::system_error itself. They only > use the __throw_system_error(int) function, which is defined in > <bits/functexcept.h>. > > By including the header for the errc constants instead of the whole of > <system_error> we avoid depending on the whole std::string definition.
it seems this patch broke many tests on Solaris, e.g. FAIL: 29_atomics/atomic/requirements/types_neg.cc (test for excess errors) Excess errors: /var/gcc/regression/master/11.4-gcc/build/i386-pc-solaris2.11/libstdc++-v3/include/bits/std_mutex.h:157: error: 'EBUSY' was not declared in this scope Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University