summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLuca Bonissi <qemu@bonslack.org>2023-08-03 02:15:57 +0200
committerMichael Tokarev <mjt@tls.msk.ru>2023-08-07 13:52:59 +0300
commit6ee960823da8fd780ae9912c4327b7e85e80d846 (patch)
tree5d12cfe107933dce317adf7ceee487ae164eee6e
parentbeb1a91781f127c863740c94f865fa55a22e5c81 (diff)
downloadfocaccia-qemu-6ee960823da8fd780ae9912c4327b7e85e80d846.tar.gz
focaccia-qemu-6ee960823da8fd780ae9912c4327b7e85e80d846.zip
Fixed incorrect LLONG alignment for openrisc and cris
OpenRISC (or1k) has long long alignment to 4 bytes, but currently not
defined in abitypes.h. This lead to incorrect packing of /epoll_event/
structure and eventually infinite loop while waiting for file
descriptor[s] event[s].

Fixed also CRIS alignments (1 byte for all types).

Signed-off-by: Luca Bonissi <qemu@bonslack.org>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1770
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r--include/exec/user/abitypes.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h
index 6191ce9f74..6178453d94 100644
--- a/include/exec/user/abitypes.h
+++ b/include/exec/user/abitypes.h
@@ -15,8 +15,16 @@
 #define ABI_LLONG_ALIGNMENT 2
 #endif
 
+#ifdef TARGET_CRIS
+#define ABI_SHORT_ALIGNMENT 1
+#define ABI_INT_ALIGNMENT 1
+#define ABI_LONG_ALIGNMENT 1
+#define ABI_LLONG_ALIGNMENT 1
+#endif
+
 #if (defined(TARGET_I386) && !defined(TARGET_X86_64)) \
     || defined(TARGET_SH4) \
+    || defined(TARGET_OPENRISC) \
     || defined(TARGET_MICROBLAZE) \
     || defined(TARGET_NIOS2)
 #define ABI_LLONG_ALIGNMENT 4