diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2016-07-28 12:57:59 +0100 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2016-08-04 16:34:59 +0300 |
commit | d9fe91d8689b078acfd27bc7c4a4e1efd5bbcf65 (patch) | |
tree | 2dec93cc76e4e2773591aafe30ac9ff7a7d14fb1 | |
parent | 09704e6ded83fa0bec14baf32f800f6512156ca0 (diff) | |
download | qemu-d9fe91d8689b078acfd27bc7c4a4e1efd5bbcf65.tar.gz qemu-d9fe91d8689b078acfd27bc7c4a4e1efd5bbcf65.tar.bz2 qemu-d9fe91d8689b078acfd27bc7c4a4e1efd5bbcf65.zip |
linux-user: Use correct alignment for long long on i386 guests
For i386, the ABI specifies that 'long long' (8 byte values)
need only be 4 aligned, but we were requiring them to be
8-aligned. This meant we were laying out the target_epoll_event
structure wrongly. Add a suitable ifdef to abitypes.h to
specify the i386-specific alignment requirement.
Reported-by: Icenowy Zheng <icenowy@aosc.xyz>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
-rw-r--r-- | include/exec/user/abitypes.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h index a09d6c64ff..ba188608c2 100644 --- a/include/exec/user/abitypes.h +++ b/include/exec/user/abitypes.h @@ -15,6 +15,10 @@ #define ABI_LLONG_ALIGNMENT 2 #endif +#if defined(TARGET_I386) && !defined(TARGET_X86_64) +#define ABI_LLONG_ALIGNMENT 4 +#endif + #ifndef ABI_SHORT_ALIGNMENT #define ABI_SHORT_ALIGNMENT 2 #endif |