2017-11-02 19:14:05 +01:00
|
|
|
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
|
|
|
|
|
2016-08-08 20:34:59 +02:00
|
|
|
comment "Host GDB Options"
|
2017-11-02 19:14:05 +01:00
|
|
|
depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
|
|
|
|
depends on BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
|
2016-08-08 20:34:59 +02:00
|
|
|
|
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"
|
2013-04-07 02:04:34 +02:00
|
|
|
# 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
|
2017-11-02 19:14:05 +01:00
|
|
|
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
|
|
|
|
|
2014-08-29 21:42:31 +02:00
|
|
|
config BR2_PACKAGE_HOST_GDB_TUI
|
2014-09-15 22:50:08 +02:00
|
|
|
bool "TUI support"
|
2014-08-29 21:42:31 +02:00
|
|
|
help
|
|
|
|
This option enables terminal user interface (TUI) for gdb
|
|
|
|
|
2014-09-15 22:50:09 +02:00
|
|
|
config BR2_PACKAGE_HOST_GDB_PYTHON
|
|
|
|
bool "Python support"
|
|
|
|
help
|
|
|
|
This option enables the Python support in the cross gdb.
|
|
|
|
|
2016-05-31 23:01:36 +02:00
|
|
|
config BR2_PACKAGE_HOST_GDB_SIM
|
|
|
|
bool "Simulator support"
|
gdb: drop support for Microblaze
Microblaze support was never upstreamed in gdb. We currently use a gdb
from the Xilinx Github repository, but this gdb is based on 7.6, and
has never been updated in the last 4 years. There are no other active
branches at https://github.com/Xilinx/gdb/branches.
Xilinx has a slightly newer gdb, based on 7.7, available at
https://github.com/Xilinx/meta-xilinx/tree/master/recipes-microblaze/gdb. However,
it's apparently only available in the form of stack of big patches
(https://github.com/Xilinx/meta-xilinx/tree/master/recipes-microblaze/gdb/files).
Currently, gdb on Microblaze fails to build in various conditions:
* Against glibc, with "error: conflicting types for 'ps_lgetfpregs'"
* Against musl, with "error: unknown type name 'elf_gregset_t'"
While those issues can probably be fixed, the fact that there is no
active upstream significantly reduces the incentive to fix those
problems.
Therefore, let's drop support for gdb on Microblaze entirely.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-08-03 23:58:12 +02:00
|
|
|
depends on !BR2_arc
|
2016-05-31 23:01:36 +02:00
|
|
|
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"
|
2018-06-24 15:53:08 +02:00
|
|
|
default BR2_GDB_VERSION_8_0
|
2013-07-30 11:37:13 +02:00
|
|
|
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.
|
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GDB_VERSION_7_12
|
|
|
|
bool "gdb 7.12.x"
|
2016-12-14 14:40:56 +01:00
|
|
|
|
2017-06-05 22:46:48 +02:00
|
|
|
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
|
|
|
|
|
package/gdb: add version 8.1
https://sourceware.org/ml/gdb-announce/2018/msg00001.html
gdb 8.1 has a new optional dependency on mpfr, which according to the
NEWS file:
GDB now uses the GNU MPFR library, if available, to emulate target
floating-point arithmetic during expression evaluation when the
target uses different floating-point formats than the host. At
least version 3.1 of GNU MPFR is required.
So for the target gdb, this is unnecessary, and therefore we
forcefully disable mpfr support by passing --without-mpfr.
For the host gdb, it would potentially be useful, but since it's a new
feature that isn't essential, we for now keep it disabled as well. An
option may be added later if needed.
To avoid gnulib issues with uClibc/musl, we need to pass additional
configure/make variables, like is done in OpenEmbedded [1].
[1] http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gdb/gdb_8.1.bb?id=02664a8dcd1ebb6cd77248e1b97a78390ea06033#n9
We re-add the same patches as the ones present for gdb 8.0.1, except
0004-nat-linux-ptrace.c-add-missing-gdb_byte-cast.patch, which was
merged upstream.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: change mpfr handling.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-06-24 15:53:07 +02:00
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
2014-01-29 22:44:41 +01:00
|
|
|
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
|
2018-06-24 15:53:08 +02:00
|
|
|
# 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
|
2018-06-24 15:53:08 +02:00
|
|
|
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
|
package/gdb: add version 8.1
https://sourceware.org/ml/gdb-announce/2018/msg00001.html
gdb 8.1 has a new optional dependency on mpfr, which according to the
NEWS file:
GDB now uses the GNU MPFR library, if available, to emulate target
floating-point arithmetic during expression evaluation when the
target uses different floating-point formats than the host. At
least version 3.1 of GNU MPFR is required.
So for the target gdb, this is unnecessary, and therefore we
forcefully disable mpfr support by passing --without-mpfr.
For the host gdb, it would potentially be useful, but since it's a new
feature that isn't essential, we for now keep it disabled as well. An
option may be added later if needed.
To avoid gnulib issues with uClibc/musl, we need to pass additional
configure/make variables, like is done in OpenEmbedded [1].
[1] http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gdb/gdb_8.1.bb?id=02664a8dcd1ebb6cd77248e1b97a78390ea06033#n9
We re-add the same patches as the ones present for gdb 8.0.1, except
0004-nat-linux-ptrace.c-add-missing-gdb_byte-cast.patch, which was
merged upstream.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: change mpfr handling.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-06-24 15:53:07 +02:00
|
|
|
default y if BR2_GDB_VERSION_8_1
|
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
|
|
|
|
2014-01-29 22:44:41 +01: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
|
2018-06-25 17:45:35 +02:00
|
|
|
default "arc-2018.03-gdb" if BR2_arc
|
2017-01-22 20:17:10 +01:00
|
|
|
default "7.12.1" if BR2_GDB_VERSION_7_12
|
2018-06-24 15:53:08 +02:00
|
|
|
default "8.0.1" if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
|
package/gdb: add version 8.1
https://sourceware.org/ml/gdb-announce/2018/msg00001.html
gdb 8.1 has a new optional dependency on mpfr, which according to the
NEWS file:
GDB now uses the GNU MPFR library, if available, to emulate target
floating-point arithmetic during expression evaluation when the
target uses different floating-point formats than the host. At
least version 3.1 of GNU MPFR is required.
So for the target gdb, this is unnecessary, and therefore we
forcefully disable mpfr support by passing --without-mpfr.
For the host gdb, it would potentially be useful, but since it's a new
feature that isn't essential, we for now keep it disabled as well. An
option may be added later if needed.
To avoid gnulib issues with uClibc/musl, we need to pass additional
configure/make variables, like is done in OpenEmbedded [1].
[1] http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/gdb/gdb_8.1.bb?id=02664a8dcd1ebb6cd77248e1b97a78390ea06033#n9
We re-add the same patches as the ones present for gdb 8.0.1, except
0004-nat-linux-ptrace.c-add-missing-gdb_byte-cast.patch, which was
merged upstream.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: change mpfr handling.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-06-24 15:53:07 +02:00
|
|
|
default "8.1" if BR2_GDB_VERSION_8_1
|
2017-04-22 19:17:54 +02:00
|
|
|
depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
|