mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
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>
This commit is contained in:
@@ -52,25 +52,33 @@ choice
|
||||
bool "gdb 7.0.1"
|
||||
depends on !BR2_bfin
|
||||
depends on BR2_DEPRECATED
|
||||
select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
|
||||
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
|
||||
select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
|
||||
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
|
||||
select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
|
||||
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
|
||||
select BR2_PTHREAD_DEBUG if !BR2_PTHREADS_NONE
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user