diff options
-rw-r--r-- | toolchain/gdb/Config.in | 4 | ||||
-rw-r--r-- | toolchain/gdb/gdb.mk | 22 | ||||
-rw-r--r-- | toolchain/gdb/snapshot/400-mips32r2-rdhwr-disassemble-hack.patch | 12 |
3 files changed, 35 insertions, 3 deletions
diff --git a/toolchain/gdb/Config.in b/toolchain/gdb/Config.in index 1e44dbde7..3ca91e97a 100644 --- a/toolchain/gdb/Config.in +++ b/toolchain/gdb/Config.in @@ -33,11 +33,15 @@ choice config BR2_GDB_VERSION_6_3 bool "gdb 6.3" + config BR2_GDB_VERSION_SNAPSHOT + bool "gdb snapshot" + endchoice config BR2_GDB_VERSION string default "6.2.1" if BR2_GDB_VERSION_6_2_1 default "6.3" if BR2_GDB_VERSION_6_3 + default "snapshot" if BR2_GDB_VERSION_SNAPSHOT diff --git a/toolchain/gdb/gdb.mk b/toolchain/gdb/gdb.mk index 86264b583..6ae6fab36 100644 --- a/toolchain/gdb/gdb.mk +++ b/toolchain/gdb/gdb.mk @@ -6,17 +6,33 @@ GDB_VERSION:=$(strip $(subst ",, $(BR2_GDB_VERSION))) #" +ifeq ($(GDB_VERSION),snapshot) +# Be aware that this changes daily.... +GDB_SITE:=ftp://sources.redhat.com/pub/gdb/snapshots/current +GDB_SOURCE:=gdb.tar.bz2 +GDB_CAT:=bzcat +GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_VERSION) +else GDB_SITE:=http://ftp.gnu.org/gnu/gdb GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2 GDB_CAT:=bzcat GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_VERSION) +# NOTE: This option should not be used with newer gdb versions. +DISABLE_GDBMI:=--disable-gdbmi +endif + $(DL_DIR)/$(GDB_SOURCE): $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE) $(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE) $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - +ifeq ($(GDB_VERSION),snapshot) + GDB_REAL_DIR=$(shell \ + tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1) + ln -sf $(TOOL_BUILD_DIR)/$(shell tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1) $(GDB_DIR) +endif toolchain/patch-kernel.sh $(GDB_DIR) toolchain/gdb/$(GDB_VERSION) \*.patch # Copy a config.sub from gcc. This is only necessary until # gdb's config.sub supports <arch>-linux-uclibc tuples. @@ -54,7 +70,7 @@ $(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked --target=$(REAL_GNU_TARGET_NAME) \ --prefix=/usr \ $(DISABLE_NLS) \ - --without-uiout --disable-gdbmi \ + --without-uiout $(DISABLE_GDBMI) \ --disable-tui --disable-gdbtk --without-x \ --disable-sim --enable-gdbserver \ --without-included-gettext \ @@ -111,7 +127,7 @@ $(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked --infodir=/usr/info \ --includedir=$(STAGING_DIR)/include \ $(DISABLE_NLS) \ - --without-uiout --disable-gdbmi \ + --without-uiout $(DISABLE_GDBMI) \ --disable-tui --disable-gdbtk --without-x \ --without-included-gettext \ ); @@ -155,7 +171,7 @@ $(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.unpacked --host=$(GNU_HOST_NAME) \ --target=$(REAL_GNU_TARGET_NAME) \ $(DISABLE_NLS) \ - --without-uiout --disable-gdbmi \ + --without-uiout $(DISABLE_GDBMI) \ --disable-tui --disable-gdbtk --without-x \ --without-included-gettext \ --enable-threads \ diff --git a/toolchain/gdb/snapshot/400-mips32r2-rdhwr-disassemble-hack.patch b/toolchain/gdb/snapshot/400-mips32r2-rdhwr-disassemble-hack.patch new file mode 100644 index 000000000..1d6be1b65 --- /dev/null +++ b/toolchain/gdb/snapshot/400-mips32r2-rdhwr-disassemble-hack.patch @@ -0,0 +1,12 @@ +diff -ur gdb-6.3.50.20050827/opcodes/mips-opc.c gdb-6.3.50.20050827-patched/opcodes/mips-opc.c +--- gdb-6.3.50.20050827/opcodes/mips-opc.c 2005-08-25 13:12:43.000000000 -0500 ++++ gdb-6.3.50.20050827-patched/opcodes/mips-opc.c 2005-08-29 17:48:10.000000000 -0500 +@@ -954,7 +954,7 @@ + {"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, I1 }, + {"remu", "d,v,t", 0, (int) M_REMU_3, INSN_MACRO, 0, I1 }, + {"remu", "d,v,I", 0, (int) M_REMU_3I, INSN_MACRO, 0, I1 }, +-{"rdhwr", "t,K", 0x7c00003b, 0xffe007ff, WR_t, 0, I33 }, ++{"rdhwr", "t,K", 0x7c00003b, 0xffe007ff, WR_t, 0, I33|I1 }, + {"rdpgpr", "d,w", 0x41400000, 0xffe007ff, WR_d, 0, I33 }, + {"rfe", "", 0x42000010, 0xffffffff, 0, 0, I1|T3 }, + {"rnas.qh", "X,Q", 0x78200025, 0xfc20f83f, WR_D|RD_T|FP_D, RD_MACC, MX }, |