diff --git a/gdb-6.5-gcore-i386-on-amd64.patch b/gdb-6.5-gcore-i386-on-amd64.patch index 90130fc..b4fb9c5 100644 --- a/gdb-6.5-gcore-i386-on-amd64.patch +++ b/gdb-6.5-gcore-i386-on-amd64.patch @@ -23,10 +23,10 @@ Port to GDB-6.8pre. -Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c +Index: gdb-6.8.50.20081214/gdb/amd64-linux-nat.c =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/amd64-linux-nat.c 2008-03-01 05:39:36.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/amd64-linux-nat.c 2008-12-02 23:06:16.000000000 +0100 +--- gdb-6.8.50.20081214.orig/gdb/amd64-linux-nat.c 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/amd64-linux-nat.c 2008-12-14 21:24:19.000000000 +0100 @@ -50,6 +50,9 @@ #include "amd64-tdep.h" #include "i386-linux-tdep.h" @@ -182,11 +182,21 @@ Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c /* Register the target. */ linux_nat_add_target (t); linux_nat_set_new_thread (t, amd64_linux_new_thread); -Index: gdb-6.8.50.20081128/gdb/config.in +Index: gdb-6.8.50.20081214/gdb/config.in =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/config.in 2008-08-06 21:41:31.000000000 +0200 -+++ gdb-6.8.50.20081128/gdb/config.in 2008-12-02 23:06:16.000000000 +0100 -@@ -456,6 +456,9 @@ +--- gdb-6.8.50.20081214.orig/gdb/config.in 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/config.in 2008-12-14 21:34:50.000000000 +0100 +@@ -136,6 +136,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_ELF_HP_H + ++/* Define if struct elf_prstatus32 is available. */ ++#undef HAVE_ELF_PRSTATUS32 ++ + /* Define to 1 if your system has the etext variable. */ + #undef HAVE_ETEXT + +@@ -465,6 +468,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_POLL_H @@ -196,7 +206,7 @@ Index: gdb-6.8.50.20081128/gdb/config.in /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PROCFS_H -@@ -483,6 +486,9 @@ +@@ -492,6 +498,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H @@ -206,11 +216,11 @@ Index: gdb-6.8.50.20081128/gdb/config.in /* Define to 1 if you have the header file. */ #undef HAVE_SYS_USER_H -Index: gdb-6.8.50.20081128/gdb/configure +Index: gdb-6.8.50.20081214/gdb/configure =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/configure 2008-11-21 23:35:57.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/configure 2008-12-02 23:08:29.000000000 +0100 -@@ -12026,6 +12026,157 @@ _ACEOF +--- gdb-6.8.50.20081214.orig/gdb/configure 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/configure 2008-12-14 21:33:30.000000000 +0100 +@@ -12026,6 +12026,268 @@ _ACEOF fi @@ -364,26 +374,141 @@ Index: gdb-6.8.50.20081128/gdb/configure +fi + +done ++ ++echo "$as_me:$LINENO: checking for struct elf_prstatus32.pr_reg" >&5 ++echo $ECHO_N "checking for struct elf_prstatus32.pr_reg... $ECHO_C" >&6 ++if test "${ac_cv_member_struct_elf_prstatus32_pr_reg+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++int ++main () ++{ ++static struct elf_prstatus32 ac_aggr; ++if (ac_aggr.pr_reg) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_member_struct_elf_prstatus32_pr_reg=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++int ++main () ++{ ++static struct elf_prstatus32 ac_aggr; ++if (sizeof ac_aggr.pr_reg) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_member_struct_elf_prstatus32_pr_reg=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_member_struct_elf_prstatus32_pr_reg=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_member_struct_elf_prstatus32_pr_reg" >&5 ++echo "${ECHO_T}$ac_cv_member_struct_elf_prstatus32_pr_reg" >&6 ++if test $ac_cv_member_struct_elf_prstatus32_pr_reg = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ELF_PRSTATUS32 1 ++_ACEOF ++ ++fi + # elf_hp.h is for HP/UX 64-bit shared library support. # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h) # unconditionally, so what's the point in checking these? -Index: gdb-6.8.50.20081128/gdb/configure.ac +Index: gdb-6.8.50.20081214/gdb/configure.ac =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/configure.ac 2008-11-21 23:35:58.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/configure.ac 2008-12-02 23:07:33.000000000 +0100 -@@ -686,6 +686,7 @@ AC_SUBST(PYTHON_CFLAGS) +--- gdb-6.8.50.20081214.orig/gdb/configure.ac 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/configure.ac 2008-12-14 21:32:35.000000000 +0100 +@@ -686,6 +686,11 @@ AC_SUBST(PYTHON_CFLAGS) AC_HEADER_DIRENT AC_HEADER_STAT AC_HEADER_STDC +AC_CHECK_HEADERS([sys/user32.h sys/procfs32.h]) ++AC_CHECK_MEMBER([struct elf_prstatus32.pr_reg], ++ [AC_DEFINE(HAVE_ELF_PRSTATUS32, 1, ++ [Define if struct elf_prstatus32 is available. ])], ++ [], [#include ]) # elf_hp.h is for HP/UX 64-bit shared library support. # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h) # unconditionally, so what's the point in checking these? -Index: gdb-6.8.50.20081128/gdb/gcore.c +Index: gdb-6.8.50.20081214/gdb/gcore.c =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/gcore.c 2008-12-01 16:39:04.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/gcore.c 2008-12-02 23:06:16.000000000 +0100 +--- gdb-6.8.50.20081214.orig/gdb/gcore.c 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/gcore.c 2008-12-14 21:17:10.000000000 +0100 @@ -320,6 +320,11 @@ gcore_create_callback (CORE_ADDR vaddr, asection *osec; flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD; @@ -396,14 +521,14 @@ Index: gdb-6.8.50.20081128/gdb/gcore.c /* If the memory segment has no permissions set, ignore it, otherwise when we later try to access it for read/write, we'll get an error or jam the kernel. */ -Index: gdb-6.8.50.20081128/gdb/gdb_procfs32.h +Index: gdb-6.8.50.20081214/gdb/gdb_procfs32.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-6.8.50.20081128/gdb/gdb_procfs32.h 2008-12-02 23:06:16.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/gdb_procfs32.h 2008-12-14 21:32:56.000000000 +0100 @@ -0,0 +1,128 @@ +#ifdef HAVE_SYS_PROCFS32_H +#include -+#else ++#elif !defined HAVE_ELF_PRSTATUS32 + +/* Copyright (C) 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -529,10 +654,10 @@ Index: gdb-6.8.50.20081128/gdb/gdb_procfs32.h +#endif /* _SYS_PROCFS32_H */ + +#endif /* HAVE_SYS_PROCFS32_H */ -Index: gdb-6.8.50.20081128/gdb/gdb_user32.h +Index: gdb-6.8.50.20081214/gdb/gdb_user32.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-6.8.50.20081128/gdb/gdb_user32.h 2008-12-02 23:06:16.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/gdb_user32.h 2008-12-14 21:17:10.000000000 +0100 @@ -0,0 +1,108 @@ +#ifdef HAVE_SYS_USER32_H +#include @@ -642,11 +767,11 @@ Index: gdb-6.8.50.20081128/gdb/gdb_user32.h +#endif /* _SYS_USER32_H */ + +#endif /* HAVE_SYS_USER32_H */ -Index: gdb-6.8.50.20081128/gdb/linux-nat.c +Index: gdb-6.8.50.20081214/gdb/linux-nat.c =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/linux-nat.c 2008-12-02 22:15:53.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/linux-nat.c 2008-12-02 23:13:18.000000000 +0100 -@@ -209,6 +209,21 @@ static LONGEST (*super_xfer_partial) (st +--- gdb-6.8.50.20081214.orig/gdb/linux-nat.c 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/linux-nat.c 2008-12-14 21:24:20.000000000 +0100 +@@ -213,6 +213,21 @@ static LONGEST (*super_xfer_partial) (st const gdb_byte *, ULONGEST, LONGEST); @@ -668,7 +793,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c static int debug_linux_nat; static void show_debug_linux_nat (struct ui_file *file, int from_tty, -@@ -3470,7 +3485,7 @@ linux_nat_do_thread_registers (bfd *obfd +@@ -3473,7 +3488,7 @@ linux_nat_do_thread_registers (bfd *obfd else fill_gregset (regcache, &gregs, -1); @@ -677,7 +802,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c note_data, note_size, lwp, -@@ -3520,10 +3535,10 @@ linux_nat_do_thread_registers (bfd *obfd +@@ -3523,10 +3538,10 @@ linux_nat_do_thread_registers (bfd *obfd else fill_fpregset (regcache, &fpregs, -1); @@ -690,7 +815,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c } return note_data; -@@ -3592,9 +3607,9 @@ linux_nat_make_corefile_notes (bfd *obfd +@@ -3595,9 +3610,9 @@ linux_nat_make_corefile_notes (bfd *obfd psargs_end - string_end); } } @@ -703,10 +828,10 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c } /* Dump information for threads. */ -Index: gdb-6.8.50.20081128/gdb/linux-nat.h +Index: gdb-6.8.50.20081214/gdb/linux-nat.h =================================================================== ---- gdb-6.8.50.20081128.orig/gdb/linux-nat.h 2008-12-01 15:58:23.000000000 +0100 -+++ gdb-6.8.50.20081128/gdb/linux-nat.h 2008-12-02 23:06:16.000000000 +0100 +--- gdb-6.8.50.20081214.orig/gdb/linux-nat.h 2008-12-14 21:17:01.000000000 +0100 ++++ gdb-6.8.50.20081214/gdb/linux-nat.h 2008-12-14 21:24:11.000000000 +0100 @@ -134,3 +134,12 @@ void linux_nat_switch_fork (ptid_t new_p /* Return the saved siginfo associated with PTID. */