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".
with_python_libdir
with_guile
enable_source_highlight
+enable_threading
with_intel_pt
with_libipt_prefix
with_libipt_type
--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
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
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'
enable_option_checking
enable_maintainer_mode
enable_largefile
+enable_threading
with_intel_pt
with_gnu_ld
enable_rpath
enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
--disable-largefile omit support for large files
+ --enable-threading include support for parallel processing of data
+ (yes/no)
--disable-rpath do not hardcode runtime library paths
--enable-unit-tests Enable the inclusion of unit tests when compiling
GDB
fi
+ # ----------------------- #
+ # 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
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'
# Define HAVE_KINFO_GETFILE if kinfo_getfile is available.
AC_CHECK_FUNCS(kinfo_getfile)
+ # ----------------------- #
+ # Check for threading. #
+ # ----------------------- #
+
+ AC_ARG_ENABLE(threading,
+ AS_HELP_STRING([--enable-threading], [include support for parallel processing of data (yes/no)]),
+ [case "$enableval" in
+ yes) want_threading=yes ;;
+ no) want_threading=no ;;
+ *) AC_MSG_ERROR([bad value $enableval for threading]) ;;
+ esac],
+ [want_threading=yes])
+
# Check for std::thread. This does not work on some platforms, like
# mingw and DJGPP.
AC_LANG_PUSH([C++])
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.])
+
+ if test "$want_threading" = "yes"; then
+ if test "$gdb_cv_cxx_std_thread" = "yes"; then
+ AC_DEFINE(CXX_STD_THREAD, 1,
+ [Define to 1 if std::thread works.])
+ fi
fi
AC_LANG_POP
enable_dependency_tracking
enable_plugins
enable_largefile
+enable_threading
with_intel_pt
with_gnu_ld
enable_rpath
speeds up one-time build
--enable-plugins Enable support for plugins
--disable-largefile omit support for large files
+ --enable-threading include support for parallel processing of data
+ (yes/no)
--disable-rpath do not hardcode runtime library paths
--enable-unit-tests Enable the inclusion of unit tests when compiling
GDB
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
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'