[OpenWrt-Devel] [PATCH] package/devel/gdb: Add support of ARC gdb
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Wed Jun 1 11:32:38 EDT 2016
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------
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
+ ;;
--
2.5.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list