[crash] Code changes to refect struct siginfo to siginfo_t change.

David Anderson crash at fedoraproject.org
Mon Jul 2 19:00:46 UTC 2012


commit f5a9109700483d2473720c51df15e536483e3cf9
Author: David Anderson <anderson at redhat.com>
Date:   Mon Jul 2 15:01:08 2012 -0400

    Code changes to refect struct siginfo to siginfo_t change.

 struct_siginfo_to_siginfo_t.patch |  154 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 153 insertions(+), 1 deletions(-)
---
diff --git a/struct_siginfo_to_siginfo_t.patch b/struct_siginfo_to_siginfo_t.patch
index e90d2ae..4a112b5 100644
--- a/struct_siginfo_to_siginfo_t.patch
+++ b/struct_siginfo_to_siginfo_t.patch
@@ -1,9 +1,82 @@
 --- crash-6.0.8/gdb-7.3.1.patch.orig
 +++ crash-6.0.8/gdb-7.3.1.patch
-@@ -1526,3 +1526,14 @@ diff -up gdb-7.3.1/gdb/psymtab.c.orig gd
+@@ -1526,3 +1526,166 @@ diff -up gdb-7.3.1/gdb/psymtab.c.orig gd
  +		return NULL;
  +}
   #endif
++--- gdb-7.3.1/gdb/arm-linux-nat.c.orig
+++++ gdb-7.3.1/gdb/arm-linux-nat.c
++@@ -1203,7 +1203,7 @@ arm_linux_remove_watchpoint (CORE_ADDR a
++ 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.  */
++--- gdb-7.3.1/gdb/ia64-linux-nat.c.orig
+++++ gdb-7.3.1/gdb/ia64-linux-nat.c
++@@ -640,7 +640,7 @@ static int
++ 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);
++--- gdb-7.3.1/gdb/ppc-linux-nat.c.orig
+++++ gdb-7.3.1/gdb/ppc-linux-nat.c
++@@ -2161,7 +2161,7 @@ ppc_linux_thread_exit (struct thread_inf
++ 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);
++ 
++--- gdb-7.3.1/gdb/alpha-linux-tdep.c.orig
+++++ gdb-7.3.1/gdb/alpha-linux-tdep.c
++@@ -115,7 +115,7 @@ alpha_linux_sigcontext_addr (struct fram
++   /* __NR_rt_sigreturn has a couple of structures on the stack.  This is:
++ 
++ 	struct rt_sigframe {
++-	  struct siginfo info;
+++	  siginfo_t info;
++ 	  struct ucontext uc;
++         };
++ 
++--- gdb-7.3.1/gdb/procfs.c.orig
+++++ gdb-7.3.1/gdb/procfs.c
++@@ -263,7 +263,7 @@ typedef struct sigaction gdb_sigaction_t
++ #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
++--- gdb-7.3.1/gdb/amd64-linux-nat.c.orig
+++++ gdb-7.3.1/gdb/amd64-linux-nat.c
++@@ -695,13 +695,13 @@ siginfo_from_compat_siginfo (siginfo_t *
++    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);
 +--- gdb-7.3.1/gdb/linux-nat.h.orig
 ++++ gdb-7.3.1/gdb/linux-nat.h
 +@@ -60,7 +60,7 @@ struct lwp_info
@@ -15,3 +88,82 @@
 + 
 +   /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
 +      watchpoint trap.  */
++@@ -160,7 +160,7 @@ void linux_nat_set_new_thread (struct ta
++    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));
++ 
++@@ -169,7 +169,7 @@ void linux_nat_set_siginfo_fixup (struct
++ 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);
++--- gdb-7.3.1/gdb/linux-nat.c.orig
+++++ gdb-7.3.1/gdb/linux-nat.c
++@@ -214,7 +214,7 @@ static void (*linux_nat_new_thread) (pti
++ /* 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);
++ 
++@@ -3945,7 +3945,7 @@ linux_nat_mourn_inferior (struct target_
++    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;
++ 
++@@ -3957,9 +3957,9 @@ siginfo_fixup (struct siginfo *siginfo, 
++   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));
++     }
++ }
++ 
++@@ -3969,8 +3969,8 @@ linux_xfer_siginfo (struct target_ops *o
++ 		    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);
++@@ -5784,7 +5784,7 @@ linux_nat_set_new_thread (struct target_
++    inferior.  */
++ void
++ linux_nat_set_siginfo_fixup (struct target_ops *t,
++-			     int (*siginfo_fixup) (struct siginfo *,
+++			     int (*siginfo_fixup) (siginfo_t *,
++ 						   gdb_byte *,
++ 						   int))
++ {
++@@ -5793,7 +5793,7 @@ linux_nat_set_siginfo_fixup (struct targ
++ }
++ 
++ /* 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);


More information about the scm-commits mailing list