2
1
Эх сурвалжийг харах

Add in support for downloading and building the latest snapshot of GDB. If you want to debug NPTL binaries, you'll need the latest and greatest. Patches for 6.3 will be forward ported where applicable later this week.

"Steven J. Hill" 20 жил өмнө
parent
commit
67cc4f3e6e

+ 4 - 0
toolchain/gdb/Config.in

@@ -33,11 +33,15 @@ choice
 	config BR2_GDB_VERSION_6_3
 	config BR2_GDB_VERSION_6_3
 		bool "gdb 6.3"
 		bool "gdb 6.3"
 
 
+	config BR2_GDB_VERSION_SNAPSHOT
+		bool "gdb snapshot"
+
 endchoice
 endchoice
 
 
 config BR2_GDB_VERSION
 config BR2_GDB_VERSION
 	string
 	string
 	default "6.2.1"    if BR2_GDB_VERSION_6_2_1
 	default "6.2.1"    if BR2_GDB_VERSION_6_2_1
 	default "6.3"      if BR2_GDB_VERSION_6_3
 	default "6.3"      if BR2_GDB_VERSION_6_3
+	default "snapshot" if BR2_GDB_VERSION_SNAPSHOT
 
 
 
 

+ 19 - 3
toolchain/gdb/gdb.mk

@@ -6,17 +6,33 @@
 GDB_VERSION:=$(strip $(subst ",, $(BR2_GDB_VERSION)))
 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_SITE:=http://ftp.gnu.org/gnu/gdb
 GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2
 GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2
 GDB_CAT:=bzcat
 GDB_CAT:=bzcat
 
 
 GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_VERSION)
 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):
 $(DL_DIR)/$(GDB_SOURCE):
 	$(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE)
 	$(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE)
 
 
 $(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
 $(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
 	$(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
 	$(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
 	toolchain/patch-kernel.sh $(GDB_DIR) toolchain/gdb/$(GDB_VERSION) \*.patch
 	# Copy a config.sub from gcc.  This is only necessary until
 	# Copy a config.sub from gcc.  This is only necessary until
 	# gdb's config.sub supports <arch>-linux-uclibc tuples.
 	# 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) \
 		--target=$(REAL_GNU_TARGET_NAME) \
 		--prefix=/usr \
 		--prefix=/usr \
 		$(DISABLE_NLS) \
 		$(DISABLE_NLS) \
-		--without-uiout --disable-gdbmi \
+		--without-uiout $(DISABLE_GDBMI) \
 		--disable-tui --disable-gdbtk --without-x \
 		--disable-tui --disable-gdbtk --without-x \
 		--disable-sim --enable-gdbserver \
 		--disable-sim --enable-gdbserver \
 		--without-included-gettext \
 		--without-included-gettext \
@@ -111,7 +127,7 @@ $(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked
 		--infodir=/usr/info \
 		--infodir=/usr/info \
 		--includedir=$(STAGING_DIR)/include \
 		--includedir=$(STAGING_DIR)/include \
 		$(DISABLE_NLS) \
 		$(DISABLE_NLS) \
-		--without-uiout --disable-gdbmi \
+		--without-uiout $(DISABLE_GDBMI) \
 		--disable-tui --disable-gdbtk --without-x \
 		--disable-tui --disable-gdbtk --without-x \
 		--without-included-gettext \
 		--without-included-gettext \
 	);
 	);
@@ -155,7 +171,7 @@ $(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.unpacked
 		--host=$(GNU_HOST_NAME) \
 		--host=$(GNU_HOST_NAME) \
 		--target=$(REAL_GNU_TARGET_NAME) \
 		--target=$(REAL_GNU_TARGET_NAME) \
 		$(DISABLE_NLS) \
 		$(DISABLE_NLS) \
-		--without-uiout --disable-gdbmi \
+		--without-uiout $(DISABLE_GDBMI) \
 		--disable-tui --disable-gdbtk --without-x \
 		--disable-tui --disable-gdbtk --without-x \
 		--without-included-gettext \
 		--without-included-gettext \
 		--enable-threads \
 		--enable-threads \

+ 12 - 0
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	},