diff options
Diffstat (limited to 'toolchain/gdb')
8 files changed, 375 insertions, 0 deletions
| diff --git a/toolchain/gdb/snapshot/100-uclibc-conf.patch b/toolchain/gdb/snapshot/100-uclibc-conf.patch new file mode 100644 index 000000000..d86e2875d --- /dev/null +++ b/toolchain/gdb/snapshot/100-uclibc-conf.patch @@ -0,0 +1,94 @@ +diff -urN gdb-6.3.50.20050915/bfd/config.bfd gdb-6.3.50.20050915-patched/bfd/config.bfd +--- gdb-6.3.50.20050915/bfd/config.bfd	2005-08-30 11:06:00.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/bfd/config.bfd	2005-09-15 20:08:49.000000000 -0500 +@@ -725,7 +725,7 @@ +     targ_defvec=hp300hpux_vec +     targ_underscore=yes +     ;; +-  m68*-*-linux*aout*) ++  m68*-*-linux*aout* | m68*-*-linux-uclibc*) +     targ_defvec=m68klinux_vec +     targ_selvecs=bfd_elf32_m68k_vec +     targ_underscore=yes +diff -urN gdb-6.3.50.20050915/bfd/configure gdb-6.3.50.20050915-patched/bfd/configure +--- gdb-6.3.50.20050915/bfd/configure	2005-08-26 04:47:43.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/bfd/configure	2005-09-15 20:09:54.000000000 -0500 +@@ -3585,6 +3585,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]+$' +diff -urN gdb-6.3.50.20050915/libtool.m4 gdb-6.3.50.20050915-patched/libtool.m4 +--- gdb-6.3.50.20050915/libtool.m4	2005-07-15 21:36:38.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/libtool.m4	2005-09-15 20:13:33.000000000 -0500 +@@ -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 +diff -urN gdb-6.3.50.20050915/ltconfig gdb-6.3.50.20050915-patched/ltconfig +--- gdb-6.3.50.20050915/ltconfig	2005-07-15 21:36:38.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/ltconfig	2005-09-15 21:23:35.000000000 -0500 +@@ -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 +diff -urN gdb-6.3.50.20050915/opcodes/configure gdb-6.3.50.20050915-patched/opcodes/configure +--- gdb-6.3.50.20050915/opcodes/configure	2005-08-17 22:49:00.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/opcodes/configure	2005-09-15 21:22:20.000000000 -0500 +@@ -3596,6 +3596,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/snapshot/200-uclibc-readline-conf.patch b/toolchain/gdb/snapshot/200-uclibc-readline-conf.patch new file mode 100644 index 000000000..288161ee5 --- /dev/null +++ b/toolchain/gdb/snapshot/200-uclibc-readline-conf.patch @@ -0,0 +1,16 @@ +diff -urN gdb-6.3.50.20050915/readline/configure gdb-6.3.50.20050915-patched/readline/configure +--- gdb-6.3.50.20050915/readline/configure	2005-07-03 03:22:47.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/readline/configure	2005-09-15 22:25:00.000000000 -0500 +@@ -6723,7 +6723,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/snapshot/400-mips-coredump.patch-2.4.23-29 b/toolchain/gdb/snapshot/400-mips-coredump.patch-2.4.23-29 new file mode 100644 index 000000000..b7136bf8a --- /dev/null +++ b/toolchain/gdb/snapshot/400-mips-coredump.patch-2.4.23-29 @@ -0,0 +1,30 @@ +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. +-- +diff -urN gdb-6.3.50.20050915/gdb/mips-linux-tdep.c gdb-6.3.50.20050915-patched/gdb/mips-linux-tdep.c +--- gdb-6.3.50.20050915/gdb/mips-linux-tdep.c	2005-04-02 16:59:34.000000000 -0600 ++++ gdb-6.3.50.20050915-patched/gdb/mips-linux-tdep.c	2005-09-15 22:33:13.000000000 -0500 +@@ -54,12 +54,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/snapshot/400-mips-nptl-support.patch b/toolchain/gdb/snapshot/400-mips-nptl-support.patch new file mode 100644 index 000000000..50be6ac41 --- /dev/null +++ b/toolchain/gdb/snapshot/400-mips-nptl-support.patch @@ -0,0 +1,143 @@ +2005-03-17  Daniel Jacobowitz  <dan@codesourcery.com> + +	* linux-mips-low.c: Include "gdb_proc_service.h". +	(PTRACE_GET_THREAD_AREA): Define. +	(ps_get_thread_area): New function. +	* Makefile.in: Update dependencies for linux-mips-low.o, +	linux-i386-low.o, and linux-x86-64-low.o. + +2005-03-17  Daniel Jacobowitz  <dan@codesourcery.com> + +	* linux-mips-low.c: Include "gdb_proc_service.h". +	(PTRACE_GET_THREAD_AREA): Define. +	(ps_get_thread_area): New function. +	* Makefile.in (mips-linux-nat.o): Update dependencies. +-- +diff -urN gdb-6.3.50.20050915/gdb/Makefile.in gdb-6.3.50.20050915-patched/gdb/Makefile.in +--- gdb-6.3.50.20050915/gdb/Makefile.in	2005-09-10 13:11:01.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/Makefile.in	2005-09-15 19:24:39.000000000 -0500 +@@ -2282,7 +2282,7 @@ + 	$(gdb_string_h) $(mips_tdep_h) $(solib_svr4_h) + mips-irix-tdep.o: mips-irix-tdep.c $(defs_h) $(osabi_h) $(elf_bfd_h) + mips-linux-nat.o: mips-linux-nat.c $(defs_h) $(mips_tdep_h) $(target_h) \ +-	$(linux_nat_h) ++	$(linux_nat_h) $(gdb_proc_service_h) + mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \ + 	$(solib_svr4_h) $(osabi_h) $(mips_tdep_h) $(gdb_string_h) \ + 	$(gdb_assert_h) $(frame_h) $(regcache_h) $(trad_frame_h) \ +diff -urN gdb-6.3.50.20050915/gdb/gdbserver/Makefile.in gdb-6.3.50.20050915-patched/gdb/gdbserver/Makefile.in +--- gdb-6.3.50.20050915/gdb/gdbserver/Makefile.in	2005-05-28 17:09:04.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/gdbserver/Makefile.in	2005-09-15 19:20:01.000000000 -0500 +@@ -267,15 +267,18 @@ + linux-arm-low.o: linux-arm-low.c $(linux_low_h) $(server_h) + linux-cris-low.o: linux-cris-low.c $(linux_low_h) $(server_h) + linux-crisv32-low.o: linux-crisv32-low.c $(linux_low_h) $(server_h) +-linux-i386-low.o: linux-i386-low.c $(linux_low_h) $(server_h) ++linux-i386-low.o: linux-i386-low.c $(linux_low_h) $(server_h) \ ++	$(gdb_proc_service_h) + linux-ia64-low.o: linux-ia64-low.c $(linux_low_h) $(server_h) + linux-m32r-low.o: linux-m32r-low.c $(linux_low_h) $(server_h) +-linux-mips-low.o: linux-mips-low.c $(linux_low_h) $(server_h) ++linux-mips-low.o: linux-mips-low.c $(linux_low_h) $(server_h) \ ++	$(gdb_proc_service_h) + linux-ppc-low.o: linux-ppc-low.c $(linux_low_h) $(server_h) + linux-ppc64-low.o: linux-ppc64-low.c $(linux_low_h) $(server_h) + linux-s390-low.o: linux-s390-low.c $(linux_low_h) $(server_h) + linux-sh-low.o: linux-sh-low.c $(linux_low_h) $(server_h) +-linux-x86-64-low.o: linux-x86-64-low.c $(linux_low_h) $(server_h) ++linux-x86-64-low.o: linux-x86-64-low.c $(linux_low_h) $(server_h) \ ++	$(gdb_proc_service_h) +  + reg-arm.o : reg-arm.c $(regdef_h) + reg-arm.c : $(srcdir)/../regformats/reg-arm.dat $(regdat_sh) +diff -urN gdb-6.3.50.20050915/gdb/gdbserver/linux-mips-low.c gdb-6.3.50.20050915-patched/gdb/gdbserver/linux-mips-low.c +--- gdb-6.3.50.20050915/gdb/gdbserver/linux-mips-low.c	2005-06-12 20:59:22.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/gdbserver/linux-mips-low.c	2005-09-15 19:16:54.000000000 -0500 +@@ -22,6 +22,26 @@ + #include "server.h" + #include "linux-low.h" +  ++#include <sys/ptrace.h> ++ ++/* Correct for all GNU/Linux targets (for quite some time).  */ ++#define GDB_GREGSET_T elf_gregset_t ++#define GDB_FPREGSET_T elf_fpregset_t ++ ++#ifndef HAVE_ELF_FPREGSET_T ++/* Make sure we have said types.  Not all platforms bring in <linux/elf.h> ++   via <sys/procfs.h>.  */ ++#ifdef HAVE_LINUX_ELF_H ++#include <linux/elf.h> ++#endif ++#endif ++ ++#include "../gdb_proc_service.h" ++ ++#ifndef PTRACE_GET_THREAD_AREA ++#define PTRACE_GET_THREAD_AREA 25 ++#endif ++ + #ifdef HAVE_SYS_REG_H + #include <sys/reg.h> + #endif +@@ -140,6 +160,23 @@ +   return 0; + } +  ++/* Fetch the thread-local storage pointer for libthread_db.  */ ++ ++ps_err_e ++ps_get_thread_area (const struct ps_prochandle *ph, ++                    lwpid_t lwpid, int idx, void **base) ++{ ++  if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0) ++    return PS_ERR; ++ ++  /* IDX is the bias from the thread pointer to the beginning of the ++     thread descriptor.  It has to be subtracted due to implementation ++     quirks in libthread_db.  */ ++  *base = (void *) ((char *)*base - idx); ++ ++  return PS_OK; ++} ++ + struct linux_target_ops the_low_target = { +   mips_num_regs, +   mips_regmap, +diff -urN gdb-6.3.50.20050915/gdb/mips-linux-nat.c gdb-6.3.50.20050915-patched/gdb/mips-linux-nat.c +--- gdb-6.3.50.20050915/gdb/mips-linux-nat.c	2005-09-10 13:11:04.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/mips-linux-nat.c	2005-09-15 19:16:54.000000000 -0500 +@@ -24,6 +24,12 @@ + #include "target.h" + #include "linux-nat.h" +  ++#include "gdb_proc_service.h" ++ ++#ifndef PTRACE_GET_THREAD_AREA ++#define PTRACE_GET_THREAD_AREA 25 ++#endif ++ + /* Pseudo registers can not be read.  ptrace does not provide a way to +    read (or set) MIPS_PS_REGNUM, and there's no point in reading or +    setting MIPS_ZERO_REGNUM.  We also can not set BADVADDR, CAUSE, or +@@ -72,3 +78,20 @@ + { +   add_target (linux_target ()); + } ++ ++/* Fetch the thread-local storage pointer for libthread_db.  */ ++ ++ps_err_e ++ps_get_thread_area (const struct ps_prochandle *ph, ++                    lwpid_t lwpid, int idx, void **base) ++{ ++  if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0) ++    return PS_ERR; ++ ++  /* IDX is the bias from the thread pointer to the beginning of the ++     thread descriptor.  It has to be subtracted due to implementation ++     quirks in libthread_db.  */ ++  *base = (void *) ((char *)*base - idx); ++ ++  return PS_OK; ++} diff --git a/toolchain/gdb/snapshot/500-thread-timeout.patch b/toolchain/gdb/snapshot/500-thread-timeout.patch new file mode 100644 index 000000000..6db0a7a47 --- /dev/null +++ b/toolchain/gdb/snapshot/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 <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)); + diff --git a/toolchain/gdb/snapshot/680-debian_sim-destdir.patch b/toolchain/gdb/snapshot/680-debian_sim-destdir.patch new file mode 100644 index 000000000..0c105785f --- /dev/null +++ b/toolchain/gdb/snapshot/680-debian_sim-destdir.patch @@ -0,0 +1,26 @@ +Fix some missing uses of DESTDIR in the sim/ directories.  The Debian +packages use DESTDIR to build. +-- +diff -ur gdb-6.3.50.20050915/sim/Makefile.in gdb-6.3.50.20050915-patched/sim/Makefile.in +--- gdb-6.3.50.20050915/sim/Makefile.in	2005-01-28 18:53:13.000000000 -0600 ++++ gdb-6.3.50.20050915-patched/sim/Makefile.in	2005-09-15 23:17:42.000000000 -0500 +@@ -93,6 +93,7 @@ + 	"CC=$(CC)" \ + 	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + 	"CFLAGS=$(CFLAGS)" \ ++	"DESTDIR=$(DESTDIR)" \ + 	"RANLIB=$(RANLIB)" \ + 	"MAKEINFO=$(MAKEINFO)" \ + 	"INSTALL=$(INSTALL)" \ +diff -ur gdb-6.3.50.20050915/sim/erc32/Makefile.in gdb-6.3.50.20050915-patched/sim/erc32/Makefile.in +--- gdb-6.3.50.20050915/sim/erc32/Makefile.in	2000-03-07 09:32:49.000000000 -0600 ++++ gdb-6.3.50.20050915-patched/sim/erc32/Makefile.in	2005-09-15 23:18:22.000000000 -0500 +@@ -53,7 +53,7 @@ + # Copy the files into directories where they will be run. + install-sis: installdirs + 	n=`echo sis | sed '$(program_transform_name)'`; \ +-	$(INSTALL_PROGRAM) sis$(EXEEXT) $(bindir)/$$n$(EXEEXT) ++	$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) +  + clean-sis: + 	rm -f sis end end.h diff --git a/toolchain/gdb/snapshot/690-debian_member-field-symtab.patch b/toolchain/gdb/snapshot/690-debian_member-field-symtab.patch new file mode 100644 index 000000000..54d43ad64 --- /dev/null +++ b/toolchain/gdb/snapshot/690-debian_member-field-symtab.patch @@ -0,0 +1,20 @@ +Status: unsubmitted + +This patch was for Debian bug #239535.  It needs to be tested, and +submitted. +-- +diff -ur gdb-6.3.50.20050915/gdb/valops.c gdb-6.3.50.20050915-patched/gdb/valops.c +--- gdb-6.3.50.20050915/gdb/valops.c	2005-05-26 23:39:32.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/valops.c	2005-09-15 23:21:49.000000000 -0500 +@@ -2256,8 +2256,10 @@ + 	return 1; +     } +  ++  /* Check each baseclass.  Call check_typedef, which will follow typedefs ++     and do opaque/stub type resolution.  */ +   for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--) +-    if (check_field_in (TYPE_BASECLASS (type, i), name)) ++    if (check_field_in (check_typedef (TYPE_BASECLASS (type, i)), name)) +       return 1; +  +   return 0; diff --git a/toolchain/gdb/snapshot/770-debian_vfork-done-spelling.patch b/toolchain/gdb/snapshot/770-debian_vfork-done-spelling.patch new file mode 100644 index 000000000..d700f768c --- /dev/null +++ b/toolchain/gdb/snapshot/770-debian_vfork-done-spelling.patch @@ -0,0 +1,12 @@ +diff -ur gdb-6.3.50.20050915/gdb/linux-nat.c gdb-6.3.50.20050915-patched/gdb/linux-nat.c +--- gdb-6.3.50.20050915/gdb/linux-nat.c	2005-09-10 13:11:02.000000000 -0500 ++++ gdb-6.3.50.20050915-patched/gdb/linux-nat.c	2005-09-15 19:57:23.000000000 -0500 +@@ -458,7 +458,7 @@ + 	 generally not encounter vfork (vfork is defined to fork + 	 in libpthread.so). +  +-	 The holding part is very easy if we have VFORKDONE events; ++	 The holding part is very easy if we have VFORK_DONE events; + 	 but keeping track of both processes is beyond GDB at the + 	 moment.  So we don't expose the parent to the rest of GDB. + 	 Instead we quietly hold onto it until such time as we can | 
