import gdb-6.4
authorMike Frysinger <vapier@gentoo.org>
Fri, 2 Dec 2005 22:31:12 +0000 (22:31 -0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 2 Dec 2005 22:31:12 +0000 (22:31 -0000)
toolchain/gdb/6.4/100-uclibc-conf.patch [new file with mode: 0644]
toolchain/gdb/6.4/200-uclibc-readline-conf.patch [new file with mode: 0644]
toolchain/gdb/6.4/400-mips-coredump.patch-2.4.23-29 [new file with mode: 0644]
toolchain/gdb/6.4/500-thread-timeout.patch [new file with mode: 0644]
toolchain/gdb/Config.in
toolchain/gdb/gdb.mk

diff --git a/toolchain/gdb/6.4/100-uclibc-conf.patch b/toolchain/gdb/6.4/100-uclibc-conf.patch
new file mode 100644 (file)
index 0000000..9d8fd4e
--- /dev/null
@@ -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 (file)
index 0000000..ffe792d
--- /dev/null
@@ -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 (file)
index 0000000..4e17ba7
--- /dev/null
@@ -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 (file)
index 0000000..6db0a7a
--- /dev/null
@@ -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 <unistd.h>
+ #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));
+
index 3ca91e97a6a7a99028ff85d17a6a058fc0b9fef1..737eb07f650caccf2e36eabbf28e544fb40b8042 100644 (file)
@@ -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
-
-
index 6ae6fab368a9374f1d1be30166f318b354f26f0c..af67b74344a020e7a49b382533ed5e18ec3fb1d8 100644 (file)
@@ -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