According to comments in /usr/include/linux/eventpoll.h, x86_64 have
the same memory layout of struct target_epoll_event as i386. So on a
aligned host, if x86_64 should be packed, i386 will also need.

This has been tested with a i386 guest on an arm host: without the
patch, wineserver crashes (core).

Signed-off-by: Icenowy Zheng <icen...@aosc.xyz>
---
 linux-user/syscall_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index b43966e..7380bf5 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2547,7 +2547,7 @@ struct target_mq_attr {
 #define FUTEX_CMD_MASK          ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
 
 #ifdef CONFIG_EPOLL
-#if defined(TARGET_X86_64)
+#if defined(TARGET_X86_64) || defined(TARGET_I386)
 #define TARGET_EPOLL_PACKED QEMU_PACKED
 #else
 #define TARGET_EPOLL_PACKED
-- 
2.9.0


Reply via email to