summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/debug/gdb.in.gdbserver20
-rw-r--r--scripts/build/debug/300-gdb.sh8
2 files changed, 28 insertions, 0 deletions
diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver
index ecc2c4a..50c3b8b 100644
--- a/config/debug/gdb.in.gdbserver
+++ b/config/debug/gdb.in.gdbserver
@@ -9,6 +9,11 @@ config GDB_GDBSERVER
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"
@@ -17,6 +22,21 @@ config GDB_GDBSERVER_STATIC
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
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index de258ea..c2f0eab 100644
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -369,6 +369,14 @@ do_debug_gdb_build() {
gdbserver_extra_config=("${extra_config[@]}")
+ if [ "${CT_GDB_GDBSERVER_HAS_IPA_LIB}" = "y" ]; then
+ if [ "${CT_GDB_GDBSERVER_BUILD_IPA_LIB}" = "y" ]; then
+ gdbserver_extra_config+=( --enable-inprocess-agent )
+ else
+ gdbserver_extra_config+=( --disable-inprocess-agent )
+ fi
+ fi
+
CT_DoExecLog CFG \
LDFLAGS="${gdbserver_LDFLAGS}" \
"${gdb_src_dir}/gdb/gdbserver/configure" \