From 261b07488b9dfe69090e6980f6de9d0f4f3f03ca Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Fri, 26 Nov 2021 11:31:18 -0300 Subject: New --enable-threading configure option to control use of threads in GDB/GDBserver Add the --enable-threading configure option so multithreading can be disabled at configure time. This is useful for statically-linked builds of GDB/GDBserver, since the thread library doesn't play well with that setup. If you try to run a statically-linked GDB built with threading, it will crash when setting up the number of worker threads. This new option is also convenient when debugging GDB in a system with lots of threads, where the thread discovery code in GDB will emit too many messages, like so: [New Thread 0xfffff74d3a50 (LWP 2625599)] If you have X threads, that message will be repeated X times. The default for --enable-threading is "yes". --- gdb/configure | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'gdb/configure') diff --git a/gdb/configure b/gdb/configure index 448167f..d13ab37 100755 --- a/gdb/configure +++ b/gdb/configure @@ -910,6 +910,7 @@ with_python with_python_libdir with_guile enable_source_highlight +enable_threading with_intel_pt with_libipt_prefix with_libipt_type @@ -1597,6 +1598,8 @@ Optional Features: --disable-rpath do not hardcode runtime library paths --enable-source-highlight enable source-highlight for source listings + --enable-threading include support for parallel processing of data + (yes/no) --enable-werror treat compile warnings as errors --enable-build-warnings enable build-time compiler warnings if gcc is used --enable-gdb-build-warnings @@ -14065,6 +14068,22 @@ fi done + # ----------------------- # + # Check for threading. # + # ----------------------- # + + # Check whether --enable-threading was given. +if test "${enable_threading+set}" = set; then : + enableval=$enable_threading; case "$enableval" in + yes) want_threading=yes ;; + no) want_threading=no ;; + *) as_fn_error $? "bad value $enableval for threading" "$LINENO" 5 ;; + esac +else + want_threading=yes +fi + + # Check for std::thread. This does not work on some platforms, like # mingw and DJGPP. ac_ext=cpp @@ -14762,10 +14781,13 @@ done LIBS="$save_LIBS" CXXFLAGS="$save_CXXFLAGS" fi - if test "$gdb_cv_cxx_std_thread" = "yes"; then + + if test "$want_threading" = "yes"; then + if test "$gdb_cv_cxx_std_thread" = "yes"; then $as_echo "#define CXX_STD_THREAD 1" >>confdefs.h + fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' -- cgit v1.1