--- 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;