kumquat-buildroot/toolchain/gdb/Config.in
Peter Korsgaard 5931db0de9 gdb: fix kconfig dependency handling with !BR_TOOLCHAIN_BUILDROOT
Newer versions of GDB need pthread debugging support if threads are
enabled, which is always the case for glibc but is a configure option
for uClibc.

We have solved this for internal toolchains by selecting the
BR2_PTHREAD_DEBUG option from the GDB selection if needed, but as this
option isn't available when ctng/external toolchains are used, mconf
prints ugly warnings and the build may fail if an external uClibc
toolchain without pthread debugging support is used.

Fix it by introducing 2 more hidden config options:
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED

The first tells us if the toolchain HAS pthreads debugging support,
and is checked by check_uclibc_feature in helper.mk for external uClibc
based toolchains.

The second tells us if the toolchain is ABLE TO provide pthreads debugging
support if threads are enabled, either because it's an internal toolchain
where we can force enable it or an external glibc/eglibc toolchain or
uClibc with the option enabled.

Crosstool-ng forcibly enables this support, so those will always work.
The preconfigured uClibc-based toolchains we have also all enable it.

Finally, show a comment if this isn't the case so the (external toolchain)
user knows why. This is placed outside the choice option, as menuconfig
has a bug where it doesn't show choice selections which only contain
comments.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-24 14:26:52 +01:00

91 lines
2.7 KiB
Plaintext

comment "Gdb Options"
config BR2_PACKAGE_GDB
bool "Build gdb debugger for the Target"
select BR2_PACKAGE_NCURSES
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_sh && !BR2_sh64
help
Build the full gdb debugger to run on the target.
comment "Gdb debugger for the target needs WCHAR support in toolchain"
depends on !BR2_USE_WCHAR
config BR2_PACKAGE_GDB_SERVER
bool "Build gdb server for the Target"
help
Build the gdbserver stub to run on the target.
A full gdb is needed to debug the progam.
config BR2_PACKAGE_GDB_HOST
bool "Build gdb for the Host"
# cross-gdb is supposed to be part of the external
# toolchain. And the build currently fails.
depends on !BR2_TOOLCHAIN_EXTERNAL
help
Build gdb to run on the host to debug programs run on the target.
choice
prompt "GDB debugger Version"
default BR2_GDB_VERSION_6_6 if BR2_bfin
default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
default BR2_GDB_VERSION_7_3
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST
help
Select the version of gdb you wish to use.
config BR2_GDB_VERSION_6_6
bool "gdb 6.6"
depends on BR2_bfin
config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
depends on BR2_avr32
bool "gdb 6.7.1-avr32-2.1.5"
config BR2_GDB_VERSION_6_8
bool "gdb 6.8"
depends on !(BR2_avr32 || BR2_bfin)
depends on BR2_DEPRECATED
config BR2_GDB_VERSION_7_0_1
bool "gdb 7.0.1"
depends on !BR2_bfin
depends on BR2_DEPRECATED
depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)
config BR2_GDB_VERSION_7_1
bool "gdb 7.1"
depends on !BR2_bfin
depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)
config BR2_GDB_VERSION_7_2
bool "gdb 7.2.x"
depends on !BR2_bfin
depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)
config BR2_GDB_VERSION_7_3
bool "gdb 7.3.x"
depends on !BR2_bfin
depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
select BR2_PTHREAD_DEBUG if (BR2_TOOLCHAIN_BUILDROOT && !BR2_PTHREADS_NONE)
endchoice
comment "gdb 7.x support needs pthread debug support in toolchain"
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_GDB_SERVER || BR2_PACKAGE_GDB_HOST
depends on !BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED
config BR2_GDB_VERSION
string
default "6.6a" if BR2_GDB_VERSION_6_6
default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
default "6.8a" if BR2_GDB_VERSION_6_8
default "7.0.1a" if BR2_GDB_VERSION_7_0_1
default "7.1a" if BR2_GDB_VERSION_7_1
default "7.2a" if BR2_GDB_VERSION_7_2
default "7.3.1" if BR2_GDB_VERSION_7_3