https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62023
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- That exception comes from here in src/c++11/thread.cc void thread::_M_start_thread(__shared_base_type __b) { if (!__gthread_active_p()) #if __EXCEPTIONS throw system_error(make_error_code(errc::operation_not_permitted), "Enable multithreading to use std::thread"); Which means the __gthread_active_p() function in libgcc/gthr-posix.h is returning false (I think the "Not owner" part is a red herring, due to the errc::operation_not_permitted enum having the wrong value on Solaris)