linux-user: Fix epoll on ARM hosts

The epoll emulation uses data structures without packing them, so the
compiler might choose to add padding inside.

This patch makes the most offending one (target_epoll_event) a packed
structure to make sure we don't pad it by accident. ARM would pad it,
so declare the padding mandatory for ARM targets.

This fixes i386-on-ARM epoll emulation for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
Alexander Graf 2013-07-06 14:17:53 +02:00 committed by Riku Voipio
parent 732f9e89a1
commit ddaa7e5a2a
1 changed files with 4 additions and 1 deletions

View File

@ -2459,8 +2459,11 @@ typedef union target_epoll_data {
struct target_epoll_event {
uint32_t events;
#ifdef TARGET_ARM
uint32_t __pad;
#endif
target_epoll_data_t data;
};
} QEMU_PACKED;
#endif
struct target_rlimit64 {
uint64_t rlim_cur;