diff --git a/0001-Replace-struct-siginfo-with-siginfo_t.patch b/0001-Replace-struct-siginfo-with-siginfo_t.patch new file mode 100644 index 0000000..08948fe --- /dev/null +++ b/0001-Replace-struct-siginfo-with-siginfo_t.patch @@ -0,0 +1,70 @@ +From baf954154e7c0acda038c01a5c28aea4db7eec67 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 5 Jul 2012 14:28:03 +0100 +Subject: [PATCH] Replace 'struct siginfo' with 'siginfo_t'. + +glibc 2.16 will remove the undocumented definition of 'struct siginfo' +from . + +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 +--- + 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 + diff --git a/qemu-kvm-1.1.0-siginfo_t.patch b/qemu-kvm-1.1.0-siginfo_t.patch deleted file mode 100644 index 9c27946..0000000 --- a/qemu-kvm-1.1.0-siginfo_t.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qemu-kvm-1.1.0/linux-user/signal.c 2012-06-30 03:14:15.000000000 +0100 -+++ qemu-kvm-1.1.0.glibc/linux-user/signal.c 2012-07-05 11:08:36.839294266 +0100 -@@ -3476,7 +3476,7 @@ - struct rt_signal_frame { - struct siginfo *pinfo; - void *puc; -- struct siginfo info; -+ siginfo_t info; - struct ucontext uc; - uint8_t retcode[8]; /* Trampoline code. */ - }; diff --git a/qemu.spec b/qemu.spec index c77a9a8..e40ad9f 100644 --- a/qemu.spec +++ b/qemu.spec @@ -82,9 +82,9 @@ Patch2: 0002-qemu-kvm-virtio-Do-not-register-mask-notifiers-witho.patch # Speculative patch to fix msi and virtio-pci modules in build (not upstream). Patch3: 0001-buildsys-Move-msi-x-and-virtio-pci-from-Makefile.obj.patch -# Hack to use siginfo_t instead of siginfo with glibc from Rawhide. -# XXX This patch is highly UNlikely to be correct. (RWMJ) -Patch4: qemu-kvm-1.1.0-siginfo_t.patch +# Use siginfo_t instead of struct siginfo, for glibc in Rawhide. +# Sent upstream 2012-07-05. +Patch4: 0001-Replace-struct-siginfo-with-siginfo_t.patch # The infamous chardev flow control patches Patch101: 0101-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch