1config BR2_PACKAGE_GDB_ARCH_SUPPORTS
2	bool
3	default y
4	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
5	depends on !BR2_microblaze
6
7comment "gdb needs a glibc or uclibc toolchain"
8	depends on BR2_or1k
9	depends on BR2_TOOLCHAIN_USES_MUSL
10
11comment "gdb/gdbserver needs a toolchain w/ threads, threads debug"
12	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
13	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG
14
15comment "gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8"
16	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
17
18config BR2_PACKAGE_GDB
19	bool "gdb"
20	depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG
21	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
22	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
23	depends on BR2_INSTALL_LIBSTDCPP
24	# The or1k musl port is incomplete, elf_gregset_t definition is missing:
25	# https://git.musl-libc.org/cgit/musl/tree/arch/or1k/bits/user.h?h=v1.2.3
26	depends on !BR2_or1k || !BR2_TOOLCHAIN_USES_MUSL
27	# When the external toolchain gdbserver is copied to the
28	# target, we don't allow building a separate gdbserver. The
29	# one from the external toolchain should be used.
30	select BR2_PACKAGE_GDB_SERVER if \
31		(!BR2_PACKAGE_GDB_DEBUGGER && !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)
32	help
33	  GDB, the GNU Project debugger, allows you to see what is
34	  going on `inside' another program while it executes -- or
35	  what another program was doing at the moment it crashed.
36
37	  This option allows to build gdbserver and/or the gdb
38	  debugger for the target.
39
40	  For embedded development, the most common solution is to
41	  build only 'gdbserver' for the target, and use a cross-gdb
42	  on the host. See BR2_PACKAGE_HOST_GDB in the Toolchain menu
43	  to enable one. Notice that external toolchains often provide
44	  their own pre-built cross-gdb and gdbserver binaries.
45
46	  http://www.gnu.org/software/gdb/
47
48if BR2_PACKAGE_GDB
49
50config BR2_PACKAGE_GDB_SERVER
51	bool "gdbserver"
52	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
53	help
54	  Build the gdbserver stub to run on the target.
55	  A full gdb is needed to debug the progam.
56
57config BR2_PACKAGE_GDB_DEBUGGER
58	bool "full debugger"
59	depends on BR2_USE_WCHAR
60	depends on !BR2_sh
61	select BR2_PACKAGE_GMP
62	select BR2_PACKAGE_MPFR if (BR2_GDB_VERSION_14 || BR2_arc)
63	select BR2_PACKAGE_NCURSES
64	select BR2_PACKAGE_ZLIB
65
66comment "full gdb on target needs a toolchain w/ wchar"
67	depends on !BR2_sh
68	depends on !BR2_USE_WCHAR
69
70if BR2_PACKAGE_GDB_DEBUGGER
71
72config BR2_PACKAGE_GDB_TUI
73	bool "TUI support"
74	help
75	  This option enables terminal user interface (TUI) for gdb
76
77	  "The GDB Text User Interface (TUI) is a terminal interface
78	  which uses the curses library to show the source file, the
79	  assembly output, the program registers and GDB commands in
80	  separate text windows."
81
82	  https://sourceware.org/gdb/current/onlinedocs/gdb/TUI.html
83
84config BR2_PACKAGE_GDB_PYTHON
85	bool "Python support"
86	depends on BR2_PACKAGE_PYTHON3
87	help
88	  This option enables Python support in the target gdb.
89
90endif
91
92endif
93