1e3738db42
As we are about to switch to 8.0 as the default gdb version, we need to adjust how the gdb dependencies are handled. Indeed, from 8.0 onwards, gdb needs a C++11 capable compiler, i.e at least gcc 4.8. Until now, Config.in.host was making sure that gdb 8.0 was not selectable if the cross-compilation toolchain did not have C++ support with gcc >= 4.8. This worked fine because the default version of gdb, used as the target gdb version when no host gdb is built, was 7.11, and did not require C++11. With the switch to 8.0 as the default version, when target gdb is enabled but not host gdb, 8.0 is used, which means we need a C++11 capable compiler. The dependencies in Config.in.host are no longer sufficient. So instead, we remove the target-related dependencies from Config.in.host and move them properly to Config.in. The overall logic is the following: - In Config.in.host, BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS ensures that we have at least host gcc 4.8 if we're on ARC, because the ARC gdb needs C++11. We remove the target toolchain related dependencies from here. - In Config.in.host, the version selection ensures that 8.0 cannot be selected if the host toolchain does not have at least gcc 4.8. We remove the target toolchain related dependencies from here. - In Config.in.host, we introduce a BR2_PACKAGE_GDB_NEEDS_CXX11 option, that indicates whether the currently selected version of gdb requires C++11 support in the toolchain to build the target variant. Even though this option is more related to the target variant of gdb, we keep it in Config.in.host so that it appears next to the definition of BR2_GDB_VERSION, to make sure they are kept in sync. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
92 lines
2.7 KiB
Plaintext
92 lines
2.7 KiB
Plaintext
config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
|
|
bool
|
|
default y
|
|
# The ARC version needs C++11, thus gcc >= 4.8, like gdb-8.0.x
|
|
depends on BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_arc
|
|
depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
|
|
depends on !BR2_microblaze
|
|
depends on !BR2_nios2
|
|
depends on !BR2_or1k
|
|
|
|
comment "Host GDB Options"
|
|
depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
|
|
depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
|
|
|
|
config BR2_PACKAGE_HOST_GDB
|
|
bool "Build cross gdb for the host"
|
|
# When the external toolchain gdbserver is used, we shouldn't
|
|
# allow to build a cross-gdb, as the one of the external
|
|
# toolchain should be used.
|
|
depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
|
|
depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
|
|
help
|
|
Build a cross gdb that runs on the host machine and debugs
|
|
programs running on the target. It requires 'gdbserver'
|
|
installed on the target, see BR2_PACKAGE_GDB_SERVER to
|
|
enable it.
|
|
|
|
if BR2_PACKAGE_HOST_GDB
|
|
|
|
config BR2_PACKAGE_HOST_GDB_TUI
|
|
bool "TUI support"
|
|
help
|
|
This option enables terminal user interface (TUI) for gdb
|
|
|
|
config BR2_PACKAGE_HOST_GDB_PYTHON
|
|
bool "Python support"
|
|
help
|
|
This option enables the Python support in the cross gdb.
|
|
|
|
config BR2_PACKAGE_HOST_GDB_SIM
|
|
bool "Simulator support"
|
|
depends on !BR2_arc
|
|
help
|
|
This option enables the simulator support in the cross gdb.
|
|
|
|
choice
|
|
prompt "GDB debugger Version"
|
|
default BR2_GDB_VERSION_7_11
|
|
depends on !BR2_arc
|
|
help
|
|
Select the version of gdb you wish to use.
|
|
|
|
config BR2_GDB_VERSION_7_10
|
|
bool "gdb 7.10.x"
|
|
|
|
config BR2_GDB_VERSION_7_11
|
|
bool "gdb 7.11.x"
|
|
|
|
config BR2_GDB_VERSION_7_12
|
|
bool "gdb 7.12.x"
|
|
|
|
config BR2_GDB_VERSION_8_0
|
|
bool "gdb 8.0.x"
|
|
# Needs a C++11 compiler
|
|
depends on BR2_HOST_GCC_AT_LEAST_4_8
|
|
|
|
endchoice
|
|
|
|
endif
|
|
|
|
# Tells whether the currently selected gdb version requires C++11
|
|
# support in the toolchain. When host-gdb is not enabled, the target
|
|
# gdb built is 7.11, which doesn't require C++11 support. So it's only
|
|
# if host-gdb is built, with the version set to 8.0 that C++11 support
|
|
# is needed in the toolchain to build gdb for the target.
|
|
#
|
|
# Even though this option is related to target gdb dependencies, we
|
|
# keep it next to the BR2_GDB_VERSION so that they are kept in sync.
|
|
config BR2_PACKAGE_GDB_NEEDS_CXX11
|
|
bool
|
|
default y if BR2_GDB_VERSION_8_0
|
|
|
|
# If cross-gdb is not enabled, the latest working version is chosen.
|
|
config BR2_GDB_VERSION
|
|
string
|
|
default "arc-2018.03-rc2-gdb" if BR2_arc
|
|
default "7.10.1" if BR2_GDB_VERSION_7_10
|
|
default "7.11.1" if BR2_GDB_VERSION_7_11 || !BR2_PACKAGE_HOST_GDB
|
|
default "7.12.1" if BR2_GDB_VERSION_7_12
|
|
default "8.0.1" if BR2_GDB_VERSION_8_0
|
|
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
|