blob: e7161321e23dc2f1ef2ffca0f639aa4ee5312c43 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
graphic: 0.869
device: 0.842
architecture: 0.800
PID: 0.795
x86: 0.762
semantic: 0.703
performance: 0.696
network: 0.591
socket: 0.529
permissions: 0.522
register: 0.511
vnc: 0.510
user-level: 0.502
kernel: 0.435
mistranslation: 0.432
debug: 0.428
files: 0.426
boot: 0.417
peripherals: 0.406
i386: 0.332
ppc: 0.253
hypervisor: 0.249
VMM: 0.224
assembly: 0.219
TCG: 0.175
risc-v: 0.173
virtual: 0.166
arm: 0.129
KVM: 0.056
Wrong unpacked structure for epoll_event on qemu-or1k (openrisc)
Description of problem:
When using cmake automoc, the process will infinite loop waiting for epoll_events.
Steps to reproduce:
1. Try to compile cmake with qt5 support
2. The build process will freeze when "Automatic MOC" is invoked
Additional information:
The problem is that or1k has a "packed" epoll_event structure, so it should be also packed in target_epoll_event structure.
Following the (very trivial) patch:
```
--- qemu-20230327/linux-user/syscall_defs.h.orig 2023-03-27 15:41:42.000000000 +0200
+++ qemu-20230327/linux-user/syscall_defs.h 2023-06-30 17:29:39.034322213 +0200
@@ -2714,7 +2709,7 @@
#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_OPENRISC)
#define TARGET_EPOLL_PACKED QEMU_PACKED
#else
#define TARGET_EPOLL_PACKED
```
|