package/devel/gdb-arc: Add target GDB for ARC

ARC port of GDB is not yet upstream so we need to use
sources from Synopsys GitHub repo.

Given Synopys' commitment to upstream ARC support in GDB
in the nearest future it might be simpler to add a separate
package for ARC GDB instead of patching generic GDB package.
This way once ARC GDB stuff gets uptreamed we'll only need
to remove that new "gdb-arc" package.

Note 1 very minor change in generic gdb package was done -
it now depends on !arc (while "gdb-arc" depends on "arc").

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
This commit is contained in:
Alexey Brodkin 2016-06-08 09:50:55 +03:00 committed by John Crispin
parent 8cc65914df
commit 1f0a9715d2
5 changed files with 159 additions and 1 deletions

View file

@ -0,0 +1,94 @@
#
# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=gdb-arc
PKG_VERSION:=arc-2016.03-gdb
PKG_RELEASE:=1
PKG_SOURCE:=gdb-arc-2016.03-gdb.tar.gz
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_VERSION)
PKG_MD5SUM:=775caaf6385c16f20b6f53c0a2b95f79
PKG_BUILD_DIR:=$(BUILD_DIR)/binutils-gdb-arc-2016.03-gdb
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_LICENSE:=GPL-3.0+
include $(INCLUDE_DIR)/package.mk
define Package/gdb-arc/Default
SECTION:=devel
CATEGORY:=Development
DEPENDS:=+!USE_MUSL:libthread-db +PACKAGE_zlib:zlib @arc
URL:=http://www.gnu.org/software/gdb/
endef
define Package/gdb-arc
$(call Package/gdb-arc/Default)
TITLE:=GNU Debugger for ARC
DEPENDS+=+libreadline +libncurses +zlib
endef
define Package/gdb-arc/description
GDB, the GNU Project debugger, allows you to see what is going on `inside'
another program while it executes -- or what another program was doing at the
moment it crashed.
endef
define Package/gdbserver-arc
$(call Package/gdb-arc/Default)
TITLE:=Remote server for GNU Debugger
endef
define Package/gdbserver-arc/description
GDBSERVER is a program that allows you to run GDB on a different machine than the
one which is running the program being debugged.
endef
# XXX: add --disable-werror to prevent build failure with arm
CONFIGURE_ARGS+= \
--with-system-readline \
--without-expat \
--without-lzma \
--disable-werror \
--disable-binutils \
--disable-ld \
--disable-gas \
--disable-sim
CONFIGURE_VARS+= \
ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline"
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
all
endef
define Build/Install
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
install-gdb
endef
define Package/gdb-arc/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gdb $(1)/usr/bin/
endef
define Package/gdbserver-arc/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gdbserver $(1)/usr/bin/
endef
$(eval $(call BuildPackage,gdb-arc))
$(eval $(call BuildPackage,gdbserver-arc))

View file

@ -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)))

View file

@ -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

View file

@ -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`

View file

@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/gdb/Default
SECTION:=devel
CATEGORY:=Development
DEPENDS:=+!USE_MUSL:libthread-db +PACKAGE_zlib:zlib
DEPENDS:=+!USE_MUSL:libthread-db +PACKAGE_zlib:zlib @!arc
URL:=http://www.gnu.org/software/gdb/
endef