summaryrefslogtreecommitdiff
path: root/packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch')
-rw-r--r--packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch287
1 files changed, 287 insertions, 0 deletions
diff --git a/packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch b/packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch
new file mode 100644
index 0000000..a430d94
--- /dev/null
+++ b/packages/gdb/7.4.1/0000-all_ptrace_setsiginfo.patch
@@ -0,0 +1,287 @@
+fix from upstream for building with newer kernel headers
+
+From a7f9ca9cb797d653dc7919538e1dfa0c26010331 Mon Sep 17 00:00:00 2001
+From: tschwinge <tschwinge>
+Date: Wed, 21 Mar 2012 13:43:50 +0000
+Subject: [PATCH] struct siginfo vs. siginfo_t
+
+gdb/
+ * amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead
+ of struct siginfo.
+ * arm-linux-nat.c (arm_linux_stopped_data_address): Likewise.
+ * ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
+ * linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup)
+ (linux_xfer_siginfo, linux_nat_set_siginfo_fixup)
+ (linux_nat_get_siginfo): Likewise.
+ * linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup)
+ (linux_nat_get_siginfo): Likewise.
+ * linux-tdep.c (linux_get_siginfo_type): Likewise.
+ * ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise.
+ * procfs.c (gdb_siginfo_t): Likewise.
+
+gdbserver/
+ * linux-arm-low.c (arm_stopped_by_watchpoint): Use siginfo_t instead of
+ struct siginfo.
+ * linux-low.c (siginfo_fixup, linux_xfer_siginfo): Likewise.
+ * linux-x86-low.c (x86_siginfo_fixup): Likewise.
+ * linux-low.h: Include <signal.h>.
+ (struct siginfo): Remove forward declaration.
+ (struct linux_target_ops) <siginfo_fixup>: Use siginfo_t instead of
+ struct siginfo.
+---
+ gdb/amd64-linux-nat.c | 4 ++--
+ gdb/arm-linux-nat.c | 2 +-
+ gdb/gdbserver/linux-arm-low.c | 2 +-
+ gdb/gdbserver/linux-low.c | 10 +++++-----
+ gdb/gdbserver/linux-low.h | 5 ++---
+ gdb/gdbserver/linux-x86-low.c | 4 ++--
+ gdb/ia64-linux-nat.c | 2 +-
+ gdb/linux-nat.c | 16 ++++++++--------
+ gdb/linux-nat.h | 6 +++---
+ gdb/ppc-linux-nat.c | 2 +-
+ gdb/procfs.c | 2 +-
+ 11 files changed, 27 insertions(+), 28 deletions(-)
+
+--- a/gdb/amd64-linux-nat.c
++++ b/gdb/amd64-linux-nat.c
+@@ -671,13 +671,13 @@
+ INF. */
+
+ static int
+-amd64_linux_siginfo_fixup (struct siginfo *native, gdb_byte *inf, int direction)
++amd64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
+ {
+ /* Is the inferior 32-bit? If so, then do fixup the siginfo
+ object. */
+ if (gdbarch_addr_bit (get_frame_arch (get_current_frame ())) == 32)
+ {
+- gdb_assert (sizeof (struct siginfo) == sizeof (compat_siginfo_t));
++ gdb_assert (sizeof (siginfo_t) == sizeof (compat_siginfo_t));
+
+ if (direction == 0)
+ compat_siginfo_from_siginfo ((struct compat_siginfo *) inf, native);
+--- a/gdb/arm-linux-nat.c
++++ b/gdb/arm-linux-nat.c
+@@ -1137,7 +1137,7 @@
+ static int
+ arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
+ {
+- struct siginfo *siginfo_p = linux_nat_get_siginfo (inferior_ptid);
++ siginfo_t *siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+ int slot = siginfo_p->si_errno;
+
+ /* This must be a hardware breakpoint. */
+--- a/gdb/gdbserver/linux-arm-low.c
++++ b/gdb/gdbserver/linux-arm-low.c
+@@ -631,7 +631,7 @@
+ arm_stopped_by_watchpoint (void)
+ {
+ struct lwp_info *lwp = get_thread_lwp (current_inferior);
+- struct siginfo siginfo;
++ siginfo_t siginfo;
+
+ /* We must be able to set hardware watchpoints. */
+ if (arm_linux_get_hw_watchpoint_count () == 0)
+--- a/gdb/gdbserver/linux-low.c
++++ b/gdb/gdbserver/linux-low.c
+@@ -4522,7 +4522,7 @@
+ layout of the inferiors' architecture. */
+
+ static void
+-siginfo_fixup (struct siginfo *siginfo, void *inf_siginfo, int direction)
++siginfo_fixup (siginfo_t *siginfo, void *inf_siginfo, int direction)
+ {
+ int done = 0;
+
+@@ -4534,9 +4534,9 @@
+ if (!done)
+ {
+ if (direction == 1)
+- memcpy (siginfo, inf_siginfo, sizeof (struct siginfo));
++ memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
+ else
+- memcpy (inf_siginfo, siginfo, sizeof (struct siginfo));
++ memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
+ }
+ }
+
+@@ -4545,8 +4545,8 @@
+ unsigned const char *writebuf, CORE_ADDR offset, int len)
+ {
+ int pid;
+- struct siginfo siginfo;
+- char inf_siginfo[sizeof (struct siginfo)];
++ siginfo_t siginfo;
++ char inf_siginfo[sizeof (siginfo_t)];
+
+ if (current_inferior == NULL)
+ return -1;
+--- a/gdb/gdbserver/linux-low.h
++++ b/gdb/gdbserver/linux-low.h
+@@ -20,6 +20,7 @@
+ #ifdef HAVE_THREAD_DB_H
+ #include <thread_db.h>
+ #endif
++#include <signal.h>
+
+ #include "gdb_proc_service.h"
+
+@@ -46,8 +47,6 @@
+ extern struct regset_info target_regsets[];
+ #endif
+
+-struct siginfo;
+-
+ struct process_info_private
+ {
+ /* Arch-specific additions. */
+@@ -103,7 +102,7 @@
+ Returns true if any conversion was done; false otherwise.
+ If DIRECTION is 1, then copy from INF to NATIVE.
+ If DIRECTION is 0, copy from NATIVE to INF. */
+- int (*siginfo_fixup) (struct siginfo *native, void *inf, int direction);
++ int (*siginfo_fixup) (siginfo_t *native, void *inf, int direction);
+
+ /* Hook to call when a new process is created or attached to.
+ If extra per-process architecture-specific data is needed,
+--- a/gdb/gdbserver/linux-x86-low.c
++++ b/gdb/gdbserver/linux-x86-low.c
+@@ -906,13 +906,13 @@
+ INF. */
+
+ static int
+-x86_siginfo_fixup (struct siginfo *native, void *inf, int direction)
++x86_siginfo_fixup (siginfo_t *native, void *inf, int direction)
+ {
+ #ifdef __x86_64__
+ /* Is the inferior 32-bit? If so, then fixup the siginfo object. */
+ if (register_size (0) == 4)
+ {
+- if (sizeof (struct siginfo) != sizeof (compat_siginfo_t))
++ if (sizeof (siginfo_t) != sizeof (compat_siginfo_t))
+ fatal ("unexpected difference in siginfo");
+
+ if (direction == 0)
+--- a/gdb/ia64-linux-nat.c
++++ b/gdb/ia64-linux-nat.c
+@@ -637,7 +637,7 @@
+ ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
+ {
+ CORE_ADDR psr;
+- struct siginfo *siginfo_p;
++ siginfo_t *siginfo_p;
+ struct regcache *regcache = get_current_regcache ();
+
+ siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+--- a/gdb/linux-nat.c
++++ b/gdb/linux-nat.c
+@@ -179,7 +179,7 @@
+ /* The method to call, if any, when the siginfo object needs to be
+ converted between the layout returned by ptrace, and the layout in
+ the architecture of the inferior. */
+-static int (*linux_nat_siginfo_fixup) (struct siginfo *,
++static int (*linux_nat_siginfo_fixup) (siginfo_t *,
+ gdb_byte *,
+ int);
+
+@@ -4138,7 +4138,7 @@
+ layout of the inferiors' architecture. */
+
+ static void
+-siginfo_fixup (struct siginfo *siginfo, gdb_byte *inf_siginfo, int direction)
++siginfo_fixup (siginfo_t *siginfo, gdb_byte *inf_siginfo, int direction)
+ {
+ int done = 0;
+
+@@ -4150,9 +4150,9 @@
+ if (!done)
+ {
+ if (direction == 1)
+- memcpy (siginfo, inf_siginfo, sizeof (struct siginfo));
++ memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
+ else
+- memcpy (inf_siginfo, siginfo, sizeof (struct siginfo));
++ memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
+ }
+ }
+
+@@ -4162,8 +4162,8 @@
+ const gdb_byte *writebuf, ULONGEST offset, LONGEST len)
+ {
+ int pid;
+- struct siginfo siginfo;
+- gdb_byte inf_siginfo[sizeof (struct siginfo)];
++ siginfo_t siginfo;
++ gdb_byte inf_siginfo[sizeof (siginfo_t)];
+
+ gdb_assert (object == TARGET_OBJECT_SIGNAL_INFO);
+ gdb_assert (readbuf || writebuf);
+@@ -5852,7 +5852,7 @@
+ inferior. */
+ void
+ linux_nat_set_siginfo_fixup (struct target_ops *t,
+- int (*siginfo_fixup) (struct siginfo *,
++ int (*siginfo_fixup) (siginfo_t *,
+ gdb_byte *,
+ int))
+ {
+@@ -5861,7 +5861,7 @@
+ }
+
+ /* Return the saved siginfo associated with PTID. */
+-struct siginfo *
++siginfo_t *
+ linux_nat_get_siginfo (ptid_t ptid)
+ {
+ struct lwp_info *lp = find_lwp_pid (ptid);
+--- a/gdb/linux-nat.h
++++ b/gdb/linux-nat.h
+@@ -76,7 +76,7 @@
+
+ /* Non-zero si_signo if this LWP stopped with a trap. si_addr may
+ be the address of a hardware watchpoint. */
+- struct siginfo siginfo;
++ siginfo_t siginfo;
+
+ /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
+ watchpoint trap. */
+@@ -171,7 +171,7 @@
+ that ptrace returns, and the layout in the architecture of the
+ inferior. */
+ void linux_nat_set_siginfo_fixup (struct target_ops *,
+- int (*) (struct siginfo *,
++ int (*) (siginfo_t *,
+ gdb_byte *,
+ int));
+
+@@ -180,7 +180,7 @@
+ void linux_nat_switch_fork (ptid_t new_ptid);
+
+ /* Return the saved siginfo associated with PTID. */
+-struct siginfo *linux_nat_get_siginfo (ptid_t ptid);
++siginfo_t *linux_nat_get_siginfo (ptid_t ptid);
+
+ /* Compute and return the processor core of a given thread. */
+ int linux_nat_core_of_thread_1 (ptid_t ptid);
+--- a/gdb/ppc-linux-nat.c
++++ b/gdb/ppc-linux-nat.c
+@@ -2213,7 +2213,7 @@
+ static int
+ ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
+ {
+- struct siginfo *siginfo_p;
++ siginfo_t *siginfo_p;
+
+ siginfo_p = linux_nat_get_siginfo (inferior_ptid);
+
+--- a/gdb/procfs.c
++++ b/gdb/procfs.c
+@@ -262,7 +262,7 @@
+ #ifdef HAVE_PR_SIGINFO64_T
+ typedef pr_siginfo64_t gdb_siginfo_t;
+ #else
+-typedef struct siginfo gdb_siginfo_t;
++typedef siginfo_t gdb_siginfo_t;
+ #endif
+
+ /* On mips-irix, praddset and prdelset are defined in such a way that