summaryrefslogtreecommitdiff
path: root/config/debug
diff options
context:
space:
mode:
Diffstat (limited to 'config/debug')
-rw-r--r--config/debug/duma.in20
-rw-r--r--config/debug/gdb.in335
-rw-r--r--config/debug/gdb.in.cross25
-rw-r--r--config/debug/gdb.in.gdbserver47
-rw-r--r--config/debug/gdb.in.native70
-rw-r--r--config/debug/ltrace.in34
-rw-r--r--config/debug/strace.in97
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