[Buildroot] [PATCH for-next 1/2] package/gdb: enable gdbserver support for riscv

Arnout Vandecappelle arnout at mind.be
Sun Jun 13 10:19:41 UTC 2021



On 06/06/2021 17:03, Romain Naour wrote:
> It turn out that gdbserver support for riscv is available since 10.1 release, since commit [1]
> 
> When BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS is not enabled, gdb will use the stable version (9.x)
> where gdbserver for riscv is not available.
> 
> When BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS enabled, only allow gdb 10.1 in version choice and
> allow enabling gdbserver for the target.

 Instead of all this complexity, I think it would be easier to just force gdb to
version 10 on riscv:

config BR2_GDB_VERSION
        string
        default "arc-2020.09-release-gdb" if BR2_arc
        default "4ecb98fbc2f94dbe01b69384afbc515107de73df" if BR2_csky
        default "8.3.1"    if BR2_GDB_VERSION_8_3
        default "9.2"      if BR2_GDB_VERSION_9_2 || (!BR2_PACKAGE_HOST_GDB &&
!BR2_riscv)
        default "10.1"     if BR2_GDB_VERSION_10 || (!BR2_PACKAGE_HOST_GDB &&
BR2_riscv)
        depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB

 IMHO that will make the maintainance easier going forward: when 10 becomes the
default, we can simply drop the riscv condition and nothing more needs to be done.

 Marked as Changes Requested.

 Regards,
 Arnout

> 
> [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=bf84f7066626c78884436e1c39fb60f04c665f21
> 
> Signed-off-by: Romain Naour <romain.naour at gmail.com>
> ---
> git tag --contains bf84f7066626c78884436e1c39fb60f04c665f21
> returns gdb-10.1-release tag as the oldest containing this commit.
> ---
>  package/gdb/Config.in      | 6 +++---
>  package/gdb/Config.in.host | 3 ++-
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/package/gdb/Config.in b/package/gdb/Config.in
> index 262740fc4c..68a24e0b36 100644
> --- a/package/gdb/Config.in
> +++ b/package/gdb/Config.in
> @@ -19,8 +19,8 @@ config BR2_PACKAGE_GDB
>  	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
>  	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>  	depends on BR2_INSTALL_LIBSTDCPP
> -	# no gdbserver on riscv
> -	select BR2_PACKAGE_GDB_DEBUGGER if BR2_riscv
> +	# no gdbserver on riscv until 10.1 release
> +	select BR2_PACKAGE_GDB_DEBUGGER if BR2_riscv && !BR2_GDB_VERSION_10
>  	# 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.
> @@ -47,7 +47,7 @@ if BR2_PACKAGE_GDB
>  config BR2_PACKAGE_GDB_SERVER
>  	bool "gdbserver"
>  	depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
> -	depends on !BR2_riscv
> +	depends on !BR2_riscv || BR2_riscv && BR2_GDB_VERSION_10
>  	help
>  	  Build the gdbserver stub to run on the target.
>  	  A full gdb is needed to debug the progam.
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 07e75b2c0e..5aead236d0 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -4,7 +4,6 @@ config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
>  	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
>  	depends on !BR2_microblaze
>  	depends on !BR2_or1k
> -	depends on !BR2_riscv
>  	depends on !BR2_nds32
>  
>  comment "Host GDB Options"
> @@ -70,9 +69,11 @@ choice
>  
>  config BR2_GDB_VERSION_8_3
>  	bool "gdb 8.3.x"
> +	depends on !BR2_riscv
>  
>  config BR2_GDB_VERSION_9_2
>  	bool "gdb 9.2.x"
> +	depends on !BR2_riscv
>  
>  config BR2_GDB_VERSION_10
>  	bool "gdb 10.x"
> 



More information about the buildroot mailing list