From 2ed0efef422a52d8c4f0e6be1b06ee674819e757 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 2 Dec 2005 22:31:12 +0000 Subject: [PATCH] import gdb-6.4 --- toolchain/gdb/6.4/100-uclibc-conf.patch | 78 +++++++++++++++++++ .../gdb/6.4/200-uclibc-readline-conf.patch | 15 ++++ .../gdb/6.4/400-mips-coredump.patch-2.4.23-29 | 28 +++++++ toolchain/gdb/6.4/500-thread-timeout.patch | 34 ++++++++ toolchain/gdb/Config.in | 6 +- toolchain/gdb/gdb.mk | 4 + 6 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 toolchain/gdb/6.4/100-uclibc-conf.patch create mode 100644 toolchain/gdb/6.4/200-uclibc-readline-conf.patch create mode 100644 toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-29 create mode 100644 toolchain/gdb/6.4/500-thread-timeout.patch diff --git a/toolchain/gdb/6.4/100-uclibc-conf.patch b/toolchain/gdb/6.4/100-uclibc-conf.patch new file mode 100644 index 0000000000..9d8fd4e69c --- /dev/null +++ b/toolchain/gdb/6.4/100-uclibc-conf.patch @@ -0,0 +1,78 @@ +--- gdb-6.3/bfd/configure.orig Fri Oct 8 16:53:56 2004 ++++ gdb-6.3/bfd/configure Sun Feb 27 18:32:58 2005 +@@ -3583,6 +3583,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +--- gdb-6.3/libtool.m4.orig Wed Jul 21 21:21:41 2004 ++++ gdb-6.3/libtool.m4 Mon Feb 28 00:08:11 2005 +@@ -653,6 +653,11 @@ + fi + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + newsos6) + [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'] + lt_cv_file_magic_cmd=/usr/bin/file +--- gdb-6.3/ltconfig.orig Tue Oct 5 15:34:42 2004 ++++ gdb-6.3/ltconfig Sun Feb 27 18:14:41 2005 +@@ -602,7 +602,7 @@ + + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in +-linux-gnu*) ;; ++linux-gnu*|linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1270,6 +1270,24 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ # Note: copied from linux-gnu, and may not be appropriate. ++ hardcode_into_libs=yes ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + need_lib_prefix=no + need_version=no +--- gdb-6.3/opcodes/configure.orig Fri Sep 17 08:13:38 2004 ++++ gdb-6.3/opcodes/configure Mon Feb 28 00:09:42 2005 +@@ -3595,6 +3595,11 @@ + fi + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + newsos6) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file diff --git a/toolchain/gdb/6.4/200-uclibc-readline-conf.patch b/toolchain/gdb/6.4/200-uclibc-readline-conf.patch new file mode 100644 index 0000000000..ffe792dd05 --- /dev/null +++ b/toolchain/gdb/6.4/200-uclibc-readline-conf.patch @@ -0,0 +1,15 @@ +--- gdb-6.1.1-dist/readline/configure 2003-05-27 18:29:47.000000000 -0500 ++++ gdb-6.1.1/readline/configure 2004-08-09 14:20:23.000000000 -0500 +@@ -6249,7 +6249,12 @@ + + + echo "$as_me:$LINENO: checking for mbstate_t" >&5 ++echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6 + echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 ++if test "${bash_cv_have_mbstate_t+set}" != set; then ++ bash_cv_have_mbstate_t=yes ++ echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6 ++fi + if test "${bash_cv_have_mbstate_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else diff --git a/toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-29 b/toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-29 new file mode 100644 index 0000000000..4e17ba7bea --- /dev/null +++ b/toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-29 @@ -0,0 +1,28 @@ +Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking +coredump handling by gdb for current kernels. Update the hardcoded constants +to reflect the change. +--- gdb-6.2.1/gdb/mips-linux-tdep.c-orig 2004-10-29 14:23:55.000000000 -0500 ++++ gdb-6.2.1/gdb/mips-linux-tdep.c 2004-10-29 14:26:44.000000000 -0500 +@@ -53,12 +53,22 @@ + + #define EF_REG0 6 + #define EF_REG31 37 ++ ++#if 0 + #define EF_LO 38 + #define EF_HI 39 + #define EF_CP0_EPC 40 + #define EF_CP0_BADVADDR 41 + #define EF_CP0_STATUS 42 + #define EF_CP0_CAUSE 43 ++#else ++#define EF_CP0_STATUS 38 ++#define EF_LO 39 ++#define EF_HI 40 ++#define EF_CP0_BADVADDR 41 ++#define EF_CP0_CAUSE 42 ++#define EF_CP0_EPC 43 ++#endif + + #define EF_SIZE 180 + diff --git a/toolchain/gdb/6.4/500-thread-timeout.patch b/toolchain/gdb/6.4/500-thread-timeout.patch new file mode 100644 index 0000000000..6db0a7a474 --- /dev/null +++ b/toolchain/gdb/6.4/500-thread-timeout.patch @@ -0,0 +1,34 @@ +--- gdb-6.3.org/gdb/gdbserver/thread-db.c 2004-10-17 02:42:00.000000000 +0900 ++++ gdb-6.3/gdb/gdbserver/thread-db.c 2005-01-27 12:19:29.000000000 +0900 +@@ -21,6 +21,7 @@ + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + ++#include + #include "server.h" + + #include "linux-low.h" +@@ -142,6 +143,7 @@ + td_event_msg_t msg; + td_err_e err; + struct inferior_linux_data *tdata; ++ int timeout; + + if (debug_threads) + fprintf (stderr, "Thread creation event.\n"); +@@ -152,7 +154,13 @@ + In the LinuxThreads implementation, this is safe, + because all events come from the manager thread + (except for its own creation, of course). */ +- err = td_ta_event_getmsg (thread_agent, &msg); ++ for (timeout = 0; timeout < 50000; timeout++) ++ { ++ err = td_ta_event_getmsg (thread_agent, &msg); ++ if (err != TD_NOMSG) ++ break; ++ usleep(1000); ++ } + if (err != TD_OK) + fprintf (stderr, "thread getmsg err: %s\n", + thread_db_err_str (err)); + diff --git a/toolchain/gdb/Config.in b/toolchain/gdb/Config.in index 3ca91e97a6..737eb07f65 100644 --- a/toolchain/gdb/Config.in +++ b/toolchain/gdb/Config.in @@ -33,6 +33,9 @@ choice config BR2_GDB_VERSION_6_3 bool "gdb 6.3" + config BR2_GDB_VERSION_6_4 + bool "gdb 6.4" + config BR2_GDB_VERSION_SNAPSHOT bool "gdb snapshot" @@ -42,6 +45,5 @@ 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 "6.4" if BR2_GDB_VERSION_6_4 default "snapshot" if BR2_GDB_VERSION_SNAPSHOT - - diff --git a/toolchain/gdb/gdb.mk b/toolchain/gdb/gdb.mk index 6ae6fab368..af67b74344 100644 --- a/toolchain/gdb/gdb.mk +++ b/toolchain/gdb/gdb.mk @@ -26,6 +26,7 @@ endif $(DL_DIR)/$(GDB_SOURCE): $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE) +gdb-unpacked: $(GDB_DIR)/.unpacked $(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE) $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - ifeq ($(GDB_VERSION),snapshot) @@ -39,6 +40,9 @@ endif # Should probably integrate this into the patch. touch $(GDB_DIR)/.unpacked +gdb-dirclean: + rm -rf $(GDB_DIR) + ###################################################################### # # gdb target -- 2.30.2