comment "gdb/gdbserver needs a toolchain w/ threads, threads debug"
	depends on !BR2_aarch64 && !BR2_nios2
	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG

config BR2_PACKAGE_GDB
	bool "gdb"
	# When the external toolchain gdbserver is copied to the
	# target, we don't allow building a separate gdbserver. The
	# one from the external toolchain should be used.
	select BR2_PACKAGE_GDB_SERVER if \
	       (!BR2_PACKAGE_GDB_DEBUGGER && !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)
	depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG
	depends on !BR2_aarch64 && !BR2_nios2
	help
	  GDB, the GNU Project debugger, allows you to see what is
	  going on `inside' another program while it executes -- or
	  what another program was doing at the moment it crashed.

	  This option allows to build gdbserver and/or the gdb
	  debugger for the target.

	  For embedded development, the most common solution is to
	  build only 'gdbserver' for the target, and use a cross-gdb
	  on the host. See BR2_PACKAGE_HOST_GDB in the Toolchain menu
	  to enable one. Notice that external toolchains often provide
	  their own pre-built cross-gdb and gdbserver binaries.

	  http://www.gnu.org/software/gdb/

if BR2_PACKAGE_GDB

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

config BR2_PACKAGE_GDB_DEBUGGER
	bool "full debugger"
	select BR2_PACKAGE_NCURSES
	depends on BR2_USE_WCHAR
	depends on !BR2_sh && !BR2_sh64 && !BR2_avr32 && !BR2_microblaze && !BR2_bfin

comment "full gdb on target needs a toolchain w/ wchar"
	depends on !BR2_sh && !BR2_sh64 && !BR2_avr32 && !BR2_microblaze && !BR2_bfin
	depends on !BR2_USE_WCHAR

endif
