diff --git a/config/debug/gdb.in.cross b/config/debug/gdb.in.cross index 8309d8fc..1c55100b 100644 --- a/config/debug/gdb.in.cross +++ b/config/debug/gdb.in.cross @@ -3,10 +3,18 @@ config STATIC_TOOLCHAIN select GDB_CROSS_STATIC if GDB_CROSS +comment "Cross-gdb - disabled (requires expat; re-run ./configure to enable)" + depends on !CONFIGURE_has_expat + +comment "Static cross-gdb - disabled (requires static expat; re-run ./configure to enable)" + depends on STATIC_TOOLCHAIN && !CONFIGURE_has_static_expat + config GDB_CROSS bool prompt "Cross-gdb" default y + depends on CONFIGURE_has_expat + depends on !STATIC_TOOLCHAIN || CONFIGURE_has_static_expat select GDB_GDBSERVER if ! BARE_METAL help Build and install a cross-gdb for the target, to run on host. @@ -16,6 +24,7 @@ if GDB_CROSS config GDB_CROSS_STATIC bool prompt "Build a static cross gdb" + depends on CONFIGURE_has_static_expat help A static cross gdb can be usefull if you debug on a machine that is not the one that is used to compile the toolchain. diff --git a/configure b/configure index 6823db0c..05ff8592 100755 --- a/configure +++ b/configure @@ -462,6 +462,34 @@ has_or_warn lib="libstdc++.a" \ err="static 'libstdc++' is needed to statically link the toolchain's executables" \ kconfig=has_static_libstdcxx +expat_libs="$( for x in so dylib a; do \ + printf "libexpat.$x "; \ + done \ + )" +has_or_warn inc="expat.h" \ + lib="${expat_libs}" \ + err="The 'expat' header file and library are needed to link cross-gdb's executables" \ + kconfig=has_expat + +# Yes, we may be checking twice for libexpat.a +# The first is because we need one instance of libexpat (shared or static) +# because it is needed for cross-gdb; the second is because the static version +# is required for static-linking, and if missing, the option is removed. +has_or_warn lib="libexpat.a" \ + err="static 'expat' is needed to statically link cross-gdb's executables" \ + kconfig=has_static_expat + +for v in 7 6 5 4; do + python_incs="${python_incs}$( printf "python2.$v/Python.h " )" + python_libs="${python_libs}$( for x in so dylib a; do \ + printf "libpython2.$v.$x "; \ + done \ + )" +done +has_or_warn inc="${python_incs}" \ + lib="${python_libs}" \ + err="The 'python' header file and library are needed for some features of cross-gdb" + #--------------------------------------------------------------------- # Compute the version string diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh index e7d771f3..6f93cdd4 100644 --- a/scripts/build/debug/300-gdb.sh +++ b/scripts/build/debug/300-gdb.sh @@ -139,6 +139,7 @@ do_debug_gdb_build() { --prefix="${CT_PREFIX_DIR}" \ --with-build-sysroot="${CT_SYSROOT_DIR}" \ --with-sysroot="${CT_SYSROOT_DIR}" \ + --with-expat=yes \ --disable-werror \ "${cross_extra_config[@]}"