diff options
Diffstat (limited to 'config/debug')
-rw-r--r-- | config/debug/duma.in | 20 | ||||
-rw-r--r-- | config/debug/gdb.in | 335 | ||||
-rw-r--r-- | config/debug/gdb.in.cross | 25 | ||||
-rw-r--r-- | config/debug/gdb.in.gdbserver | 47 | ||||
-rw-r--r-- | config/debug/gdb.in.native | 70 | ||||
-rw-r--r-- | config/debug/ltrace.in | 34 | ||||
-rw-r--r-- | config/debug/strace.in | 97 |
7 files changed, 120 insertions, 508 deletions
diff --git a/config/debug/duma.in b/config/debug/duma.in index 9947ca2..bc69e17 100644 --- a/config/debug/duma.in +++ b/config/debug/duma.in @@ -1,7 +1,7 @@ # D.U.M.A. - Detect Unintended Memory Access - Memory checker -## depends on ! BACKEND ## depends on ! BARE_METAL +## depends on ! LIBC_BIONIC ## help D.U.M.A. - Detect Unintended Memory Access ## help A memory bound checker, with additional features. @@ -18,21 +18,3 @@ config DUMA_CUSTOM_WRAPPER prompt "Install custom D.U.M.A wrapper" default y depends on DUMA_SO - -choice - bool - prompt "D.U.M.A. version" -# Don't remove next line -# CT_INSERT_VERSION_BELOW - -config DUMA_V_2_5_15 - bool - prompt "2_5_15" - -endchoice - -config DUMA_VERSION - string -# Don't remove next line -# CT_INSERT_VERSION_STRING_BELOW - default "2_5_15" if DUMA_V_2_5_15 diff --git a/config/debug/gdb.in b/config/debug/gdb.in index c8652ca..741eeae 100644 --- a/config/debug/gdb.in +++ b/config/debug/gdb.in @@ -4,308 +4,37 @@ source "config/debug/gdb.in.cross" source "config/debug/gdb.in.native" -source "config/debug/gdb.in.gdbserver" -comment "gdb version" -config GDB_CUSTOM - bool - prompt "Custom gdb" - depends on EXPERIMENTAL - select GDB_7_12_or_later - help - The choosen gdb version shall be not downloaded. Instead use - a custom location to get the source. - -if GDB_CUSTOM - -config GDB_CUSTOM_LOCATION - string - prompt "Full path to custom gdb source" - help - Enter the path to the directory or tarball of your source for gcc. - - If the path is a tarball, it should extract to: <name>-<version>/ - where the name is this component, gcc, and the version is set - below in the custom version string. - -config GDB_CUSTOM_VERSION - string - prompt "Custom GDB version" - help - Enter the version number for your custom gdb. - -config GDB_VERSION - string - default GDB_CUSTOM_VERSION - -endif # GDB_CUSTOM - -if ! GDB_CUSTOM - -config DEBUG_GDB_SHOW_LINARO - bool - prompt "Show Linaro versions" - depends on OBSOLETE - help - Linaro is maintaining some advanced/more stable/experimental versions - of gdb, especially for the ARM architecture. - - Those versions have not been blessed by the gdb community (nor have they - been cursed either!), but they look to be pretty much stable, and even - more stable than the upstream versions. YMMV... - - If you do not know what this Linaro stuff is, then simply say 'n' here, - and rest in peace. OTOH, if you know what you are doing, you will be - able to use and enjoy :-) the Linaro versions by saying 'y' here. - - Linaro: http://www.linaro.org/ - -choice - bool - prompt "gdb version" -# Don't remove next line -# CT_INSERT_VERSION_BELOW - -config GDB_V_7_12_1 - bool - prompt "7.12.1" - select GDB_7_12_or_later - -config GDB_V_7_11_1 - bool - prompt "7.11.1" - select GDB_7_2_or_later - -config GDB_V_7_10_1 - bool - prompt "7.10.1 (OBSOLETE)" - select GDB_7_2_or_later - depends on OBSOLETE - -config GDB_V_7_10 - bool - prompt "7.10 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_9_1 - bool - prompt "7.9.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_9 - bool - prompt "7.9 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_8 - bool - prompt "linaro-7.8-2014.09 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_8_2 - bool - prompt "7.8.2 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - - -config GDB_V_7_8_1 - bool - prompt "7.8.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_8 - bool - prompt "7.8 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_7_1 - bool - prompt "linaro-7.7.1-2014.06 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_7_1 - bool - prompt "7.7.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_7 - bool - prompt "linaro-7.7-2014.05 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_7 - bool - prompt "7.7 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_6 - bool - prompt "linaro-7.6.1-2013.10 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - select GDB_7_2_or_later - -config GDB_V_7_6_1 - bool - prompt "7.6.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_5 - bool - prompt "linaro-7.5-2012.12 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_5_1 - bool - prompt "7.5.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_4 - bool - prompt "linaro-7.4-2012.06 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_4_1 - bool - prompt "7.4.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_4 - bool - prompt "7.4 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_linaro_7_3 - bool - prompt "linaro-7.3-2011.12 (OBSOLETE)" - depends on DEBUG_GDB_SHOW_LINARO - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_3_1 - bool - prompt "7.3.1 (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_3a - bool - prompt "7.3a (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_2a - bool - prompt "7.2a (OBSOLETE)" - depends on OBSOLETE - select GDB_7_2_or_later - -config GDB_V_7_1a - bool - prompt "7.1a (OBSOLETE)" - depends on OBSOLETE - select GDB_7_0_or_later - -config GDB_V_7_0_1a - bool - prompt "7.0.1a (OBSOLETE)" - depends on OBSOLETE - select GDB_7_0_or_later - -config GDB_V_7_0a - bool - prompt "7.0a (OBSOLETE)" - depends on OBSOLETE - select GDB_7_0_or_later - -config GDB_V_6_8a - bool - prompt "6.8a (OBSOLETE)" - depends on OBSOLETE - -endchoice - -endif # ! GDB_CUSTOM - -config GDB_7_12_or_later - bool - select GDB_7_2_or_later - -config GDB_7_2_or_later - bool - select GDB_7_0_or_later - -config GDB_7_0_or_later - bool - select GDB_HAS_PKGVERSION_BUGURL - select GDB_HAS_PYTHON - select GDB_INSTALL_GDBINIT - -config GDB_HAS_PKGVERSION_BUGURL - bool - -config GDB_HAS_PYTHON - bool - -config GDB_INSTALL_GDBINIT - bool - -if ! GDB_CUSTOM - -config GDB_VERSION - string -# Don't remove next line -# CT_INSERT_VERSION_STRING_BELOW - default "7.12.1" if GDB_V_7_12_1 - default "7.11.1" if GDB_V_7_11_1 - default "7.10.1" if GDB_V_7_10_1 - default "7.10" if GDB_V_7_10 - default "7.9.1" if GDB_V_7_9_1 - default "7.9" if GDB_V_7_9 - default "7.8.2" if GDB_V_7_8_2 - default "linaro-7.8-2014.09" if GDB_V_linaro_7_8 - default "7.8.1" if GDB_V_7_8_1 - default "7.8" if GDB_V_7_8 - default "linaro-7.7.1-2014.06-1" if GDB_V_linaro_7_7_1 - default "7.7.1" if GDB_V_7_7_1 - default "linaro-7.7-2014.05" if GDB_V_linaro_7_7 - default "7.7" if GDB_V_7_7 - default "linaro-7.6.1-2013.10" if GDB_V_linaro_7_6 - default "7.6.1" if GDB_V_7_6_1 - default "linaro-7.5-2012.12" if GDB_V_linaro_7_5 - default "7.5.1" if GDB_V_7_5_1 - default "linaro-7.4-2012.06" if GDB_V_linaro_7_4 - default "7.4.1" if GDB_V_7_4_1 - default "7.4" if GDB_V_7_4 - default "linaro-7.3-2011.12" if GDB_V_linaro_7_3 - default "7.3.1" if GDB_V_7_3_1 - default "7.3a" if GDB_V_7_3a - default "7.2a" if GDB_V_7_2a - default "7.1a" if GDB_V_7_1a - default "7.0.1a" if GDB_V_7_0_1a - default "7.0a" if GDB_V_7_0a - default "6.8a" if GDB_V_6_8a - -endif # ! GDB_CUSTOM +# GDB 8.0 now requires C++ for build. GDB 7.12 offered a configure +# switch to fall back to C. We want to use that option because +# the conversion in 7.12 was incomplete and had some breakages. +config GDB_HAS_DISABLE_CXX_BUILD + def_bool y + depends on GDB_7_12_or_later && !GDB_8_0_or_later + +# GDB 8.0 requires not just any C++, but recent enough to support C++11. +# Yes, in 2019 there are still LTS systems still lacking such support. +# I am looking at you, CentOS 6: no cookie for you, use an older GDB. +config GDB_DEP_CXX11 + def_bool y + depends on !CONFIGURE_has_cxx11 + select GDB_REQUIRE_older_than_8_0 + +# GDB10 and newer require std::future<> which was not implemented on some +# architectures until GCC9; see GCC PR 64735. +config GDB_DEP_NO_STD_FUTURE + def_bool y + depends on !GCC_9_or_later + select GDB_REQUIRE_older_than_10 + +# Does GDB need ps_get_thread_area with const qualifier? +config GDB_CONST_GET_THREAD_AREA + bool + default y if GDB_older_than_7_12 + +# As of GDB 10.x gdbserver is now at the toplevel of the distributed +# tarball (instead of a subdirectory of gdb) +config GDB_GDBSERVER_TOPLEVEL + def_bool y + depends on GDB_10_or_later diff --git a/config/debug/gdb.in.cross b/config/debug/gdb.in.cross index 945f8eb..7ecc2e3 100644 --- a/config/debug/gdb.in.cross +++ b/config/debug/gdb.in.cross @@ -17,8 +17,8 @@ if GDB_CROSS config GDB_CROSS_STATIC bool prompt "Build a static cross gdb" - depends on CONFIGURE_has_static_link - select WANTS_STATIC_LINK + depends on CONFIGURE_has_static_link || CROSS_NATIVE || CANADIAN + select WANTS_STATIC_LINK if NATIVE || CROSS help A static cross gdb can be useful if you debug on a machine that is not the one that is used to compile the toolchain. @@ -37,9 +37,8 @@ config GDB_CROSS_SIM config GDB_CROSS_PYTHON bool prompt "Enable python scripting" - depends on GDB_HAS_PYTHON - depends on ! GDB_CROSS_STATIC - default y + depends on !GDB_CROSS_STATIC + default y if !CROSS_NATIVE && !CANADIAN help Say 'y' if you want to use Python scripting inside gdb. Say 'n' if you do not want to. @@ -50,6 +49,22 @@ config GDB_CROSS_PYTHON have been reports of problems when linking gdb to the static libpython.a. This should be fixed in gdb >=7.3. YMMV. +config GDB_CROSS_PYTHON_BINARY + string "Python binary to use" + depends on GDB_CROSS_PYTHON + help + The path to a binary passed to GDB configure. You may need to + specify this if Python is not available under the default name + (i.e. 'python'). By default, crosstool-NG will try python, python3 + and python2, in that order. + + To use this option in a canadian/cross-native build, you will + need to provide a helper script that will report the compilation + and linking flags for the host's Python, since configure script + will not be able to run the interpreter and query it. See the + help message in gdb's configure script for the --with-python option + for further guidance. + config GDB_CROSS_EXTRA_CONFIG_ARRAY string prompt "Cross-gdb extra config" diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver deleted file mode 100644 index 2f5576b..0000000 --- a/config/debug/gdb.in.gdbserver +++ /dev/null @@ -1,47 +0,0 @@ -# Menu for the native gdbserver - -config GDB_GDBSERVER - bool - prompt "gdbserver" - default y - depends on ! BARE_METAL - help - Build and install a gdbserver for the target, to run on the target. - -if GDB_GDBSERVER - -config GDB_GDBSERVER_HAS_IPA_LIB - bool - depends on GDB_7_2_or_later - default y - -config GDB_GDBSERVER_STATIC - bool - prompt "Build a static gdbserver" - depends on CONFIGURE_has_static_link - default y - help - In case you have trouble with dynamic loading of shared libraries, - you will find that a static gdbserver comes in handy. - -config GDB_GDBSERVER_BUILD_IPA_LIB - bool - prompt "Build the IPA library" - depends on GDB_GDBSERVER_HAS_IPA_LIB && !GDB_GDBSERVER_STATIC - help - gdbserver >= 7.2 comes with an optional library to use tracepoints, - the In Process Agent (IPA) library, libinproctrace.so. - - Say 'y' if you indend to use tracepoints when debugging your - programs with gdbserver. - - Note: Currently, building this library is not possible when the - gdbserver is built statically. This is a limitation in - crosstool-NG, so do not bug upstream about it... - -endif # GDB_GDBSERVER - -if BARE_METAL -comment "In bare-metal, you'll need to " -comment "provide your own gdbserver stub." -endif # BARE_METAL diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native index 915debd..fc79084 100644 --- a/config/debug/gdb.in.native +++ b/config/debug/gdb.in.native @@ -1,23 +1,83 @@ -# Menu for the native GDB +# Menu for the native GDB binaries (GDB itself and gdbserver) config GDB_NATIVE bool prompt "Native gdb" depends on ! BARE_METAL - depends on ! BACKEND + depends on ! LIBC_BIONIC + depends on CC_LANG_CXX || !GDB_8_0_or_later + select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC_NG && GDB_8_0_or_later + select LIBC_UCLIBC_IPV6 if LIBC_UCLIBC_NG && GDB_8_3_or_later select EXPAT_TARGET select NCURSES_TARGET + select GMP_TARGET if GDB_11_or_later help Build and install a native gdb for the target, to run on the target. -if GDB_NATIVE +config GDB_GDBSERVER + bool + prompt "gdbserver" + default y + depends on ! BARE_METAL + select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC_NG && GDB_8_0_or_later + select LIBC_UCLIBC_IPV6 if LIBC_UCLIBC_NG && GDB_8_3_or_later + help + Build and install a gdbserver for the target, to run on the target. + +if GDB_NATIVE || GDB_GDBSERVER + +config GDB_NATIVE_BUILD_IPA_LIB + bool + prompt "Build the IPA library" + depends on LIBC_GLIBC + depends on !GDB_NATIVE_STATIC + help + gdbserver >= 7.2 comes with an optional library to use tracepoints, + the In Process Agent (IPA) library, libinproctrace.so. This library + uses some GNU extensions from the C library. + + Say 'y' if you intend to use tracepoints when debugging your + programs with gdbserver. + + Note: Currently, building this library is not possible when the + gdbserver is built statically. This is a limitation in + crosstool-NG, so do not bug upstream about it... config GDB_NATIVE_STATIC bool - prompt "Build a static native gdb" - depends on CONFIGURE_has_static_link + prompt "Build a static gdb binaries" + depends on EXPERIMENTAL help In case you have trouble with dynamic loading of shared libraries, you will find that a static gdb comes in handy. + However, it has been noticed at least on x86 that enabling this + option produces an invalid gdb binary. It is linked with + "-static -Wl,--dynamic-list=..." which + # (a) requests invalid program interpreter + # (b) crashes glibc/uClibc-ng and does not work with musl + # See https://sourceware.org/ml/libc-alpha/2017-03/msg00267.html + + It is possible it would work with other architectures, hence it is + not completely removed. Use with care and report to the mailing list + if the resulting binaries work. + + For further details, see: + https://sourceware.org/bugzilla/show_bug.cgi?id=19617 + https://sourceware.org/bugzilla/show_bug.cgi?id=21086 + +config GDB_NATIVE_STATIC_LIBSTDCXX + bool + prompt "Link against static libstdc+++" + depends on !GDB_NATIVE_STATIC + default n + help + Say 'y' if you do not want gdbserver to require libstdc++.so on the + target. + endif # GDB_NATIVE + +if BARE_METAL +comment "In bare-metal, you'll need to " +comment "provide your own gdbserver stub." +endif # BARE_METAL diff --git a/config/debug/ltrace.in b/config/debug/ltrace.in index fc5822d..75bdf4f 100644 --- a/config/debug/ltrace.in +++ b/config/debug/ltrace.in @@ -1,41 +1,9 @@ # ltrace -## depends on ! BACKEND -## ## select LIBELF_TARGET +## depends on ! LIBC_BIONIC ## ## help ltrace is a program that simply runs the specified command until it exits. ## help It intercepts and records the dynamic library calls which are called by ## help the executed process and the signals which are received by that process. ## help It can also intercept and print the system calls executed by the program. - -choice - bool - prompt "ltrace version" -# Don't remove next line -# CT_INSERT_VERSION_BELOW - -config LTRACE_V_0_7_3 - bool - prompt "0.7.3" - -config LTRACE_V_0_5_3 - bool - prompt "0.5.3 (OBSOLETE)" - depends on OBSOLETE - select LTRACE_0_5_3_CONFIGURE - -endchoice - -config LTRACE_VERSION - string -# Don't remove next line -# CT_INSERT_VERSION_STRING_BELOW - default "0.7.3" if LTRACE_V_0_7_3 - default "0.5.3" if LTRACE_V_0_5_3 - -# Ltrace 0.5.3 had a unique hand-crafted configure script that has to be -# run differently from any preceding or following releases. This serves -# as a reminder to remove that code once 0.5.3 support is dropped. -config LTRACE_0_5_3_CONFIGURE - bool diff --git a/config/debug/strace.in b/config/debug/strace.in index 4cf6980..6f335b2 100644 --- a/config/debug/strace.in +++ b/config/debug/strace.in @@ -1,98 +1,3 @@ # strace -## depends on ! BACKEND - -choice - bool - prompt "strace version" -# Don't remove next line -# CT_INSERT_VERSION_BELOW - -config STRACE_V_4_16 - bool - prompt "4.16" - -config STRACE_V_4_15 - bool - prompt "4.15" - -config STRACE_V_4_14 - bool - prompt "4.14 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_13 - bool - prompt "4.13 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_12 - bool - prompt "4.12 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_11 - bool - prompt "4.11 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_10 - bool - prompt "4.10 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_9 - bool - prompt "4.9 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_8 - bool - prompt "4.8 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_7 - bool - prompt "4.7 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_6 - bool - prompt "4.6 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_5_20 - bool - prompt "4.5.20 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_5_19 - bool - prompt "4.5.19 (OBSOLETE)" - depends on OBSOLETE - -config STRACE_V_4_5_18 - bool - prompt "4.5.18 (OBSOLETE)" - depends on OBSOLETE - -endchoice - -config STRACE_VERSION - string -# Don't remove next line -# CT_INSERT_VERSION_STRING_BELOW - default "4.16" if STRACE_V_4_16 - default "4.15" if STRACE_V_4_15 - default "4.14" if STRACE_V_4_14 - default "4.13" if STRACE_V_4_13 - default "4.12" if STRACE_V_4_12 - default "4.11" if STRACE_V_4_11 - default "4.10" if STRACE_V_4_10 - default "4.9" if STRACE_V_4_9 - default "4.8" if STRACE_V_4_8 - default "4.7" if STRACE_V_4_7 - default "4.6" if STRACE_V_4_6 - default "4.5.20" if STRACE_V_4_5_20 - default "4.5.19" if STRACE_V_4_5_19 - default "4.5.18" if STRACE_V_4_5_18 +## depends on ! LIBC_BIONIC |