diff options
Diffstat (limited to 'main/qemu/fix-sigevent-and-sigval_t.patch')
-rw-r--r-- | main/qemu/fix-sigevent-and-sigval_t.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/main/qemu/fix-sigevent-and-sigval_t.patch b/main/qemu/fix-sigevent-and-sigval_t.patch new file mode 100644 index 0000000000..04853a7b8a --- /dev/null +++ b/main/qemu/fix-sigevent-and-sigval_t.patch @@ -0,0 +1,35 @@ +--- qemu-2.2.1/linux-user/syscall.c.orig 2015-04-10 07:10:06.305662505 +0000 ++++ qemu-2.2.1/linux-user/syscall.c 2015-04-10 07:36:53.801871968 +0000 +@@ -5020,9 +5020,20 @@ + return 0; + } + +-static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp, ++struct host_sigevent { ++ union sigval sigev_value; ++ int sigev_signo; ++ int sigev_notify; ++ union { ++ int _pad[64-sizeof(int) * 2 + sizeof(union sigval)]; ++ int _tid; ++ } _sigev_un; ++}; ++ ++static inline abi_long target_to_host_sigevent(struct sigevent *sevp, + abi_ulong target_addr) + { ++ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp; + struct target_sigevent *target_sevp; + + if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) { +--- qemu-2.2.1/linux-user/syscall_defs.h.orig 2015-04-10 07:41:35.410380624 +0000 ++++ qemu-2.2.1/linux-user/syscall_defs.h 2015-04-10 07:42:30.401391516 +0000 +@@ -2589,7 +2589,7 @@ + int32_t _tid; + + struct { +- void (*_function)(sigval_t); ++ void (*_function)(union sigval); + void *_attribute; + } _sigev_thread; + } _sigev_un; |