8903179537
Fixes #2340
280 lines
9.8 KiB
Diff
280 lines
9.8 KiB
Diff
From 0bcbef9314d6679d1fbbb0114683d06de0196623 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Christian Prochaska <christian.prochaska@genode-labs.com>
|
|
|
|
Message-Id: <0bcbef9314d6679d1fbbb0114683d06de0196623.1341578007.git.chris@arachsys.com>
|
|
From: Chris Webb <chris@arachsys.com>
|
|
Date: Fri, 6 Jul 2012 13:18:58 +0100
|
|
Subject: [PATCH] Replace struct siginfo with siginfo_t
|
|
|
|
Glibc 2.16.0 removes the undocumented definition of 'struct siginfo' from
|
|
<bits/siginfo.h>. This struct is also available as the POSIX-defined
|
|
siginfo_t, so replace all uses of struct siginfo with siginfo_t.
|
|
|
|
Signed-off-by: Chris Webb <chris@arachsys.com>
|
|
---
|
|
gdb/amd64-linux-nat.c | 4 ++--
|
|
gdb/arm-linux-nat.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 +-
|
|
10 files changed, 26 insertions(+), 27 deletions(-)
|
|
|
|
diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
|
|
index a869f85..7bae36d 100644
|
|
--- a/gdb/amd64-linux-nat.c
|
|
+++ b/gdb/amd64-linux-nat.c
|
|
@@ -684,13 +684,13 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
|
|
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);
|
|
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
|
|
index 43f4fde..3ec2bfc 100644
|
|
--- a/gdb/arm-linux-nat.c
|
|
+++ b/gdb/arm-linux-nat.c
|
|
@@ -1203,7 +1203,7 @@ arm_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
|
|
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. */
|
|
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
|
|
index 81b8540..e597e2f 100644
|
|
--- a/gdb/gdbserver/linux-low.c
|
|
+++ b/gdb/gdbserver/linux-low.c
|
|
@@ -4693,7 +4693,7 @@ linux_qxfer_osdata (const char *annex,
|
|
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;
|
|
|
|
@@ -4705,9 +4705,9 @@ siginfo_fixup (struct siginfo *siginfo, void *inf_siginfo, int direction)
|
|
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));
|
|
}
|
|
}
|
|
|
|
@@ -4716,8 +4716,8 @@ linux_xfer_siginfo (const char *annex, unsigned char *readbuf,
|
|
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;
|
|
diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
|
|
index 6635bc6..d449e1b 100644
|
|
--- a/gdb/gdbserver/linux-low.h
|
|
+++ b/gdb/gdbserver/linux-low.h
|
|
@@ -21,6 +21,7 @@
|
|
#include <thread_db.h>
|
|
#endif
|
|
|
|
+#include <signal.h>
|
|
#include "gdb_proc_service.h"
|
|
|
|
#ifdef HAVE_LINUX_REGSETS
|
|
@@ -46,8 +47,6 @@ struct regset_info
|
|
extern struct regset_info target_regsets[];
|
|
#endif
|
|
|
|
-struct siginfo;
|
|
-
|
|
struct process_info_private
|
|
{
|
|
/* Arch-specific additions. */
|
|
@@ -100,7 +99,7 @@ struct linux_target_ops
|
|
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,
|
|
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
|
|
index 69c6b57..82dcf83 100644
|
|
--- a/gdb/gdbserver/linux-x86-low.c
|
|
+++ b/gdb/gdbserver/linux-x86-low.c
|
|
@@ -906,13 +906,13 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
|
|
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)
|
|
diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c
|
|
index 0f88e14..02482b2 100644
|
|
--- a/gdb/ia64-linux-nat.c
|
|
+++ b/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);
|
|
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
|
|
index 44a2a21..791d7b2 100644
|
|
--- a/gdb/linux-nat.c
|
|
+++ b/gdb/linux-nat.c
|
|
@@ -214,7 +214,7 @@ static void (*linux_nat_new_thread) (ptid_t);
|
|
/* 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_ops *ops)
|
|
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, gdb_byte *inf_siginfo, int direction)
|
|
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 *ops, enum target_object object,
|
|
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_ops *t, void (*new_thread) (ptid_t))
|
|
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 target_ops *t,
|
|
}
|
|
|
|
/* 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);
|
|
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h
|
|
index 42cb2fc..422db28 100644
|
|
--- a/gdb/linux-nat.h
|
|
+++ b/gdb/linux-nat.h
|
|
@@ -60,7 +60,7 @@ struct lwp_info
|
|
|
|
/* 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. */
|
|
@@ -160,7 +160,7 @@ void linux_nat_set_new_thread (struct target_ops *, void (*) (ptid_t));
|
|
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 target_ops *,
|
|
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);
|
|
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
|
|
index 6f11715..3a3de07 100644
|
|
--- a/gdb/ppc-linux-nat.c
|
|
+++ b/gdb/ppc-linux-nat.c
|
|
@@ -2161,7 +2161,7 @@ ppc_linux_thread_exit (struct thread_info *tp, int silent)
|
|
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);
|
|
|
|
diff --git a/gdb/procfs.c b/gdb/procfs.c
|
|
index 5d7cb23..ea52d97 100644
|
|
--- a/gdb/procfs.c
|
|
+++ b/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
|