[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Replace 'struct siginfo' with 'siginfo_t'.
From: |
Richard W.M. Jones |
Subject: |
Re: [Qemu-devel] [PATCH] Replace 'struct siginfo' with 'siginfo_t'. |
Date: |
Mon, 9 Jul 2012 17:50:41 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Jul 05, 2012 at 02:32:44PM +0100, Richard W.M. Jones wrote:
> From: "Richard W.M. Jones" <address@hidden>
>
> glibc 2.16 will remove the undocumented definition of 'struct siginfo'
> from <bits/siginfo.h>.
>
> This change is already present in glibc 2.15.90, so qemu compilation
> of certain targets (eg. cris-user) breaks.
>
> This struct was always typedef'd to be the same as 'siginfo_t' which
> is what POSIX documents, so use that instead.
>
> Signed-off-by: Richard W.M. Jones <address@hidden>
> ---
> linux-user/signal.c | 8 ++++----
> user-exec.c | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/linux-user/signal.c b/linux-user/signal.c
> index 43346dc..108dff9 100644
> --- a/linux-user/signal.c
> +++ b/linux-user/signal.c
> @@ -2849,7 +2849,7 @@ static void setup_rt_frame(int sig, struct
> target_sigaction *ka,
> * Arguments to signal handler:
> *
> * a0 = signal number
> - * a1 = pointer to struct siginfo
> + * a1 = pointer to siginfo_t
> * a2 = pointer to struct ucontext
> *
> * $25 and PC point to the signal handler, $29 points to the
> @@ -3255,7 +3255,7 @@ struct target_signal_frame {
> };
>
> struct rt_signal_frame {
> - struct siginfo info;
> + siginfo_t info;
> struct ucontext uc;
> uint32_t tramp[2];
> };
> @@ -3474,9 +3474,9 @@ struct target_signal_frame {
> };
>
> struct rt_signal_frame {
> - struct siginfo *pinfo;
> + siginfo_t *pinfo;
> void *puc;
> - struct siginfo info;
> + siginfo_t info;
> struct ucontext uc;
> uint8_t retcode[8]; /* Trampoline code. */
> };
> diff --git a/user-exec.c b/user-exec.c
> index b2a4261..1a9c276 100644
> --- a/user-exec.c
> +++ b/user-exec.c
> @@ -588,7 +588,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
> int cpu_signal_handler(int host_signum, void *pinfo,
> void *puc)
> {
> - struct siginfo *info = pinfo;
> + siginfo_t *info = pinfo;
> struct ucontext *uc = puc;
> unsigned long pc = uc->uc_mcontext.sc_iaoq[0];
> uint32_t insn = *(uint32_t *)pc;
> --
> 1.7.10.4
>
Any news on this? Pretty obvious fix if you're using the new glibc ...
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org