kumquat-buildroot/package/gdb/Config.in.host

102 lines
3.0 KiB
Plaintext
Raw Normal View History

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
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
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
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
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.
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
choice
prompt "GDB debugger Version"
default BR2_GDB_VERSION_8_0
depends on !BR2_arc
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
help
Select the version of gdb you wish to use.
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
config BR2_GDB_VERSION_8_1
bool "gdb 8.1.x"
# Needs a C++11 compiler
depends on BR2_HOST_GCC_AT_LEAST_4_8
config BR2_GDB_VERSION_8_2
bool "gdb 8.2.x"
# Needs a C++11 compiler
depends on BR2_HOST_GCC_AT_LEAST_4_8
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
endchoice
endif
package/gdb: rework dependency for C++11 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>
2018-06-24 15:53:06 +02:00
# 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 8.0, which requires C++11 support, which is why
# BR2_PACKAGE_GDB_NEEDS_CXX11 is 'y' when BR2_PACKAGE_HOST_GDB is not
# enabled. When host-gdb is built, with the version set to 8.0 or 8.1
# then C++11 support is needed in the toolchain to build gdb for the
# target.
package/gdb: rework dependency for C++11 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>
2018-06-24 15:53:06 +02:00
#
# 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_PACKAGE_HOST_GDB
package/gdb: rework dependency for C++11 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>
2018-06-24 15:53:06 +02:00
default y if BR2_GDB_VERSION_8_0
default y if BR2_GDB_VERSION_8_1
default y if BR2_GDB_VERSION_8_2
default y if BR2_arc
package/gdb: rework dependency for C++11 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>
2018-06-24 15:53:06 +02:00
# If cross-gdb is not enabled, the latest working version is chosen.
gdb: convert to the package infrastructure This commit converts gdb to the package infrastructure, and therefore moves it from toolchain/gdb to package/gdb. The target package is now visible in "Package selection for the target" => "Debugging, profiling and benchmark". The main option, "gdb", forcefully selects the "gdbserver" sub-option by default. Another sub-option, "full debugger" allows to install the complete gdb on the target. When this option is enabled, then "gdbserver" is no longer forcefully selected. This ensures that at least gdbserver or the full debugger gets built/installed, so that the package is not a no-op. The host debugger is still enabled through a configuration option in "Toolchain". It is now visible regardless of the toolchain type (it used to be hidden for External Toolchains). The configuration options relative to the host debugger are now in package/gdb/Config.in.host, similar to how we have package/binutils/Config.in.host. Since gdb is now a proper package, it is no longer allowed to 'select BR2_PTHREADS_DEBUG' to ensure thread debugging is available when needed. Instead, it now 'depends on BR2_TOOLCHAIN_HAS_THREADS_DEBUG'. This option, in turn, is selected by the different toolchain backends when appropriate. The 'BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED' option is removed, since we no longer need to know when it is allowed to 'select BR2_PTHREADS_DEBUG'. Also, the 'BR2_PTHREADS_DEBUG' option is moved to appear right below the thread implementation selection (in the case of the Buildroot toolchain backend). Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-07 02:04:33 +02:00
config BR2_GDB_VERSION
string
default "arc-2018.03-gdb" if BR2_arc
default "7.12.1" if BR2_GDB_VERSION_7_12
default "8.0.1" if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
default "8.1.1" if BR2_GDB_VERSION_8_1
default "8.2" if BR2_GDB_VERSION_8_2
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB