aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel
diff options
context:
space:
mode:
authorAlexey Brodkin <abrodkin@synopsys.com>2016-06-20 15:53:14 +0200
committerZoltan HERPAI <wigyori@uid0.hu>2016-06-20 15:53:14 +0200
commitb4d8d652a3e818911ac4b9873bf4f738a51f78e7 (patch)
treed906a109934ed13e2a1b13f912e79ec7f6605777 /package/devel
parent49a74031a157caf97a8eb5f9a6079368ece5a5de (diff)
downloadmaster-187ad058-b4d8d652a3e818911ac4b9873bf4f738a51f78e7.tar.gz
master-187ad058-b4d8d652a3e818911ac4b9873bf4f738a51f78e7.tar.bz2
master-187ad058-b4d8d652a3e818911ac4b9873bf4f738a51f78e7.zip
package/devel/gdb-arc: Add target GDB for ARC
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>
Diffstat (limited to 'package/devel')
-rw-r--r--package/devel/gdb-arc/Makefile94
-rw-r--r--package/devel/gdb-arc/patches/100-no_extern_inline.patch32
-rw-r--r--package/devel/gdb-arc/patches/110-no_testsuite.patch21
-rw-r--r--package/devel/gdb-arc/patches/120-fix-compile-flag-mismatch.patch11
-rw-r--r--package/devel/gdb/Makefile2
5 files changed, 159 insertions, 1 deletions
diff --git a/package/devel/gdb-arc/Makefile b/package/devel/gdb-arc/Makefile
new file mode 100644
index 0000000000..c42b108150
--- /dev/null
+++ b/package/devel/gdb-arc/Makefile
@@ -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))
diff --git a/package/devel/gdb-arc/patches/100-no_extern_inline.patch b/package/devel/gdb-arc/patches/100-no_extern_inline.patch
new file mode 100644
index 0000000000..8c18c6e2e7
--- /dev/null
+++ b/package/devel/gdb-arc/patches/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-arc/patches/110-no_testsuite.patch b/package/devel/gdb-arc/patches/110-no_testsuite.patch
new file mode 100644
index 0000000000..1b284ea767
--- /dev/null
+++ b/package/devel/gdb-arc/patches/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-arc/patches/120-fix-compile-flag-mismatch.patch b/package/devel/gdb-arc/patches/120-fix-compile-flag-mismatch.patch
new file mode 100644
index 0000000000..c8b41f264a
--- /dev/null
+++ b/package/devel/gdb-arc/patches/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/Makefile b/package/devel/gdb/Makefile
index f6d5fec2ff..5678b5bb00 100644
--- a/package/devel/gdb/Makefile
+++ b/package/devel/gdb/Makefile
@@ -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