[LEDE-DEV] [PATCH] package/devel/gdb: Add support of ARC gdb

John Crispin john at phrozen.org
Fri Jun 3 02:09:28 PDT 2016


Hi,

On 01/06/2016 17:32, Alexey Brodkin wrote:
> As of today gdb port for ARC is not yet in upstream even though
> we're working hard on that.
> 
> Still to allow ARC users to debug user-space apps on top of
> Linux kernel we're adding here support for building GDB from
> sources hosted on our GitHub here:
> https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/releases/tag/arc-2016.03-gdb
> 
> Likewise for host GDB sources that come from unified git repository
> (which is the case for upstream binutils/gdb today) we need to disable
> building of binutils in gdb:
> ------>8------
> --disable-binutils
> --disable-ld
> --disable-gas
> ------>8------
> 

these work for !arc targets. disabling them for all targets because they
are broken on arc seem weird even if they might not be used.

rather than cluttering the makefile how about marking the packahe broken
for arc and adding a new one called gdb-arc that depends on arc only.
this will allow us to keep gdb clean and just drop the gdb-arc package
once the fixes treacled down the tree.

	John


> Also we disable sim because if the following breakage while
> building with it:
> ------------>8------------
> /usr/bin/env bash ./../common/genmloop.sh -shell /usr/bin/env bash \
>     -mono -fast -pbb -switch sem5-switch.c \
>     -cpu a5f -infile ./mloop5.in \
>     -outfile-suffix 5
> unknown option: bash
> Makefile:699: recipe for target 'stamp-5mloop' failed
> make[7]: *** [stamp-5mloop] Error 1
> ------------>8------------
> 
> Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: John Crispin <john at phrozen.org>
> Cc: Felix Fietkau <nbd at nbd.name>
> ---
>  package/devel/gdb/Makefile                         | 23 ++++++++++++++--
>  .../001-gdb-pr14523-mips-signal-number.patch       |  0
>  .../gdb/patches/{ => 7.11}/100-musl_fix.patch      |  0
>  .../patches/arc-2016.03/100-no_extern_inline.patch | 32 ++++++++++++++++++++++
>  .../gdb/patches/arc-2016.03/110-no_testsuite.patch | 21 ++++++++++++++
>  .../120-fix-compile-flag-mismatch.patch            | 11 ++++++++
>  .../arc-2016.03/200-arc-fix-target-mask.patch      | 13 +++++++++
>  7 files changed, 98 insertions(+), 2 deletions(-)
>  rename package/devel/gdb/patches/{ => 7.11}/001-gdb-pr14523-mips-signal-number.patch (100%)
>  rename package/devel/gdb/patches/{ => 7.11}/100-musl_fix.patch (100%)
>  create mode 100644 package/devel/gdb/patches/arc-2016.03/100-no_extern_inline.patch
>  create mode 100644 package/devel/gdb/patches/arc-2016.03/110-no_testsuite.patch
>  create mode 100644 package/devel/gdb/patches/arc-2016.03/120-fix-compile-flag-mismatch.patch
>  create mode 100644 package/devel/gdb/patches/arc-2016.03/200-arc-fix-target-mask.patch
> 
> diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
> index f6d5fec..2e6b332 100644
> --- a/package/devel/gdb/Makefile
> +++ b/package/devel/gdb/Makefile
> @@ -8,12 +8,27 @@
>  include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=gdb
> +
> +ifeq ($(CONFIG_arc),y)
> +PKG_VERSION:=arc-2016.03-gdb
> +
> +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
> +PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_VERSION)
> +PKG_MD5SUM:=775caaf6385c16f20b6f53c0a2b95f79
> +GDB_DIR:=binutils-$(PKG_NAME)-$(PKG_VERSION)
> +else
>  PKG_VERSION:=7.11
> -PKG_RELEASE:=1
>  
>  PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
>  PKG_SOURCE_URL:=@GNU/gdb
>  PKG_MD5SUM:=b5c784685e1cde65ba135feea86b6d75
> +GDB_DIR:=$(PKG_NAME)-$(PKG_VERSION)
> +endif
> +
> +PKG_RELEASE:=1
> +
> +PATCH_DIR:=./patches/$(PKG_VERSION)
> +PKG_BUILD_DIR:=$(BUILD_DIR)/$(GDB_DIR)
>  
>  PKG_BUILD_PARALLEL:=1
>  PKG_INSTALL:=1
> @@ -55,7 +70,11 @@ CONFIGURE_ARGS+= \
>  	--with-system-readline \
>  	--without-expat \
>  	--without-lzma \
> -	--disable-werror
> +	--disable-werror \
> +	--disable-binutils \
> +	--disable-ld \
> +	--disable-gas \
> +	--disable-sim
>  
>  CONFIGURE_VARS+= \
>  	ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline"
> diff --git a/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch b/package/devel/gdb/patches/7.11/001-gdb-pr14523-mips-signal-number.patch
> similarity index 100%
> rename from package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch
> rename to package/devel/gdb/patches/7.11/001-gdb-pr14523-mips-signal-number.patch
> diff --git a/package/devel/gdb/patches/100-musl_fix.patch b/package/devel/gdb/patches/7.11/100-musl_fix.patch
> similarity index 100%
> rename from package/devel/gdb/patches/100-musl_fix.patch
> rename to package/devel/gdb/patches/7.11/100-musl_fix.patch
> diff --git a/package/devel/gdb/patches/arc-2016.03/100-no_extern_inline.patch b/package/devel/gdb/patches/arc-2016.03/100-no_extern_inline.patch
> new file mode 100644
> index 0000000..8c18c6e
> --- /dev/null
> +++ b/package/devel/gdb/patches/arc-2016.03/100-no_extern_inline.patch
> @@ -0,0 +1,32 @@
> +--- a/sim/common/sim-arange.c
> ++++ b/sim/common/sim-arange.c
> +@@ -280,11 +280,7 @@ sim_addr_range_delete (ADDR_RANGE *ar, a
> +   build_search_tree (ar);
> + }
> + 
> +-#endif /* DEFINE_NON_INLINE_P */
> +-
> +-#if DEFINE_INLINE_P
> +-
> +-SIM_ARANGE_INLINE int
> ++int
> + sim_addr_range_hit_p (ADDR_RANGE *ar, address_word addr)
> + {
> +   ADDR_RANGE_TREE *t = ar->range_tree;
> +@@ -301,4 +297,4 @@ sim_addr_range_hit_p (ADDR_RANGE *ar, ad
> +   return 0;
> + }
> + 
> +-#endif /* DEFINE_INLINE_P */
> ++#endif /* DEFINE_NON_INLINE_P */
> +--- a/sim/common/sim-arange.h
> ++++ b/sim/common/sim-arange.h
> +@@ -73,7 +73,7 @@ extern void sim_addr_range_delete (ADDR_
> + 
> + /* Return non-zero if ADDR is in range AR, traversing the entire tree.
> +    If no range is specified, that is defined to mean "everything".  */
> +-SIM_ARANGE_INLINE int
> ++extern int
> + sim_addr_range_hit_p (ADDR_RANGE * /*ar*/, address_word /*addr*/);
> + #define ADDR_RANGE_HIT_P(ar, addr) \
> +   ((ar)->range_tree == NULL || sim_addr_range_hit_p ((ar), (addr)))
> diff --git a/package/devel/gdb/patches/arc-2016.03/110-no_testsuite.patch b/package/devel/gdb/patches/arc-2016.03/110-no_testsuite.patch
> new file mode 100644
> index 0000000..1b284ea
> --- /dev/null
> +++ b/package/devel/gdb/patches/arc-2016.03/110-no_testsuite.patch
> @@ -0,0 +1,21 @@
> +--- a/gdb/configure
> ++++ b/gdb/configure
> +@@ -870,8 +870,7 @@ MAKEINFOFLAGS
> + YACC
> + YFLAGS
> + XMKMF'
> +-ac_subdirs_all='testsuite
> +-gdbtk
> ++ac_subdirs_all='gdbtk
> + multi-ice
> + gdbserver'
> + 
> +@@ -5610,7 +5610,7 @@ $as_echo "$with_auto_load_safe_path" >&6
> + 
> + 
> + 
> +-subdirs="$subdirs testsuite"
> ++subdirs="$subdirs"
> + 
> + 
> + # Check whether to support alternative target configurations
> diff --git a/package/devel/gdb/patches/arc-2016.03/120-fix-compile-flag-mismatch.patch b/package/devel/gdb/patches/arc-2016.03/120-fix-compile-flag-mismatch.patch
> new file mode 100644
> index 0000000..c8b41f2
> --- /dev/null
> +++ b/package/devel/gdb/patches/arc-2016.03/120-fix-compile-flag-mismatch.patch
> @@ -0,0 +1,11 @@
> +--- a/gdb/gdbserver/configure
> ++++ b/gdb/gdbserver/configure
> +@@ -2468,7 +2468,7 @@ $as_echo "$as_me: error: \`$ac_var' was
> +       ac_cache_corrupted=: ;;
> +     ,);;
> +     *)
> +-      if test "x$ac_old_val" != "x$ac_new_val"; then
> ++      if test "`echo x$ac_old_val`" != "`echo x$ac_new_val`"; then
> + 	# differences in whitespace do not lead to failure.
> + 	ac_old_val_w=`echo x $ac_old_val`
> + 	ac_new_val_w=`echo x $ac_new_val`
> diff --git a/package/devel/gdb/patches/arc-2016.03/200-arc-fix-target-mask.patch b/package/devel/gdb/patches/arc-2016.03/200-arc-fix-target-mask.patch
> new file mode 100644
> index 0000000..7e51d58
> --- /dev/null
> +++ b/package/devel/gdb/patches/arc-2016.03/200-arc-fix-target-mask.patch
> @@ -0,0 +1,13 @@
> +diff --git a/bfd/config.bfd b/bfd/config.bfd
> +index 5145d4a..a9c9c99 100644
> +--- a/bfd/config.bfd
> ++++ b/bfd/config.bfd
> +@@ -275,7 +275,7 @@ case "${targ}" in
> +     targ_defvec=am33_elf32_linux_vec
> +     ;;
> + 
> +-  arc*-*-elf* | arc*-*-linux-uclibc*)
> ++  arc*-*-elf* | arc*-*-linux-*)
> +     targ_defvec=arc_elf32_le_vec
> +     targ_selvecs=arc_elf32_be_vec
> +     ;;
> 



More information about the Lede-dev mailing list