diff --git a/package/gdb/Config.in b/package/gdb/Config.in index 6eea73b071..9a71c008a0 100644 --- a/package/gdb/Config.in +++ b/package/gdb/Config.in @@ -10,15 +10,23 @@ comment "gdb/gdbserver needs a toolchain w/ threads, threads debug" depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG +comment "gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8" + depends on BR2_PACKAGE_GDB_NEEDS_CXX11 + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + config BR2_PACKAGE_GDB bool "gdb" depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11 + depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11 # 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_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11 + depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11 help GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host index 0011966d88..8736908b6b 100644 --- a/package/gdb/Config.in.host +++ b/package/gdb/Config.in.host @@ -3,7 +3,6 @@ config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS 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_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_arc depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT) depends on !BR2_microblaze depends on !BR2_nios2 @@ -63,14 +62,24 @@ config BR2_GDB_VERSION_7_12 config BR2_GDB_VERSION_8_0 bool "gdb 8.0.x" # Needs a C++11 compiler - depends on BR2_INSTALL_LIBSTDCPP depends on BR2_HOST_GCC_AT_LEAST_4_8 - depends on BR2_TOOLCHAIN_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