Commit c56b58b4 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

debug: provide an option to copy the gdbserver to the target



When an external toolchain is used, it is very likely that it contains
a pre-built version of a gdbserver that has the same version as the
cross-gdb included in the external toolchain. So, we now provide an
option that allows to copy this pre-built gdbserver to the target.

As the location of the gdbserver in the external toolchain is not
standardized, we only support the CodeSourcery and Crosstool-NG
layouts for the moment. Other locations can be added later.

Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent c85f7f40
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -14,10 +14,18 @@ comment "Gdb debugger for the target needs WCHAR support in toolchain"

config BR2_PACKAGE_GDB_SERVER
	bool "Build gdb server for the Target"
	depends on !BR2_TOOLCHAIN_EXTERNAL
	help
	    Build the gdbserver stub to run on the target.
	    A full gdb is needed to debug the progam.

config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
	bool "Copy gdb server to the Target"
	depends on BR2_TOOLCHAIN_EXTERNAL
	help
	  Copy the gdbserver provided by the external toolchain to the
	  target.

config BR2_PACKAGE_GDB_HOST
	bool "Build gdb for the Host"
	# cross-gdb is supposed to be part of the external
+14 −0
Original line number Diff line number Diff line
@@ -375,6 +375,20 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
	if [ -L $${ARCH_SYSROOT_DIR}/lib64 ] ; then \
		$(call create_lib64_symlinks) ; \
	fi ; \
	if test x"$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" == x"y"; then \
		gdbserver_found=0 ; \
		for d in $${ARCH_SYSROOT_DIR} $${ARCH_SYSROOT_DIR}/../debug-root/ ; do \
			if test -f $${d}/usr/bin/gdbserver ; then \
				install -m 0755 -D $${d}/usr/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \
				gdbserver_found=1 ; \
				break ; \
			fi ; \
		done ; \
		if [ $${gdbserver_found} -eq 0 ] ; then \
			echo "Could not find gdbserver in external toolchain" ; \
			exit 1 ; \
		fi ; \
	fi ; \
	touch $@

# Build toolchain wrapper for preprocessor, C and C++ compiler, and setup