diff --git a/toolchain/gdb/snapshot/100-uclibc-conf.patch b/toolchain/gdb/snapshot/100-uclibc-conf.patch new file mode 100644 index 0000000000..d86e2875dd --- /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 0000000000..288161ee5e --- /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 0000000000..b7136bf8a2 --- /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 0000000000..50be6ac410 --- /dev/null +++ b/toolchain/gdb/snapshot/400-mips-nptl-support.patch @@ -0,0 +1,143 @@ +2005-03-17 Daniel Jacobowitz + + * 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 + + * 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 ++ ++/* 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 ++ via . */ ++#ifdef HAVE_LINUX_ELF_H ++#include ++#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 + #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 0000000000..6db0a7a474 --- /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 + #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 0000000000..0c105785ff --- /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 0000000000..54d43ad64d --- /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 0000000000..d700f768ca --- /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