>>>>> "Jakub" == Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
Jakub> What would be IMHO a good idea would be to use configure test for Jakub> #include <thread> Jakub> int t = std::thread::hardware_concurrency (); Jakub> and in that case use that as a fallback to the previous implementation, Jakub> that will be strictly an improvement. FWIW, gdb had to do this. The check is in gdbsupport/common.m4. I've appended it for convenience. Tom # Check for std::thread. This does not work on some platforms, like # mingw and DJGPP. AC_LANG_PUSH([C++]) AX_PTHREAD([threads=yes], [threads=no]) if test "$threads" = "yes"; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$PTHREAD_CFLAGS $save_CXXFLAGS" AC_CACHE_CHECK([for std::thread], gdb_cv_cxx_std_thread, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include <thread> void callback() { }]], [[std::thread t(callback);]])], gdb_cv_cxx_std_thread=yes, gdb_cv_cxx_std_thread=no)]) # This check must be here, while LIBS includes any necessary # threading library. AC_CHECK_FUNCS([pthread_sigmask pthread_setname_np]) LIBS="$save_LIBS" CXXFLAGS="$save_CXXFLAGS" fi if test "$gdb_cv_cxx_std_thread" = "yes"; then AC_DEFINE(CXX_STD_THREAD, 1, [Define to 1 if std::thread works.]) fi AC_LANG_POP