https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105730
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- It seems like a problem with symbol resolution either during linking, or when loading the dynamic library. The old _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11 symbol is an alias for __gnu_cxx::__nothrow_wait_cv::wait which calls the new std::condition_variable::wait(unique_lock<mutex>&)@@GLIBCXX_3.4.30 symbol. But here it's calling itself recursively, leading to a stack overflow segfault. The call from __gnu_cxx::__nothrow_wait_cv::wait *should* bind to the new symbol with version @@GLIBCXX_3.4.30 instead of the old one which is an alias to itself.