blob: 8781001d1363b17c167f184b46f6b15b4295f9fe (
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
|
socket: 0.915
device: 0.852
graphic: 0.757
ppc: 0.753
architecture: 0.734
vnc: 0.673
network: 0.672
PID: 0.637
semantic: 0.535
files: 0.535
debug: 0.533
performance: 0.509
register: 0.444
VMM: 0.430
permissions: 0.421
TCG: 0.415
peripherals: 0.384
risc-v: 0.360
arm: 0.335
kernel: 0.298
x86: 0.284
i386: 0.239
user-level: 0.213
mistranslation: 0.213
boot: 0.199
hypervisor: 0.119
virtual: 0.112
assembly: 0.090
KVM: 0.055
Windows LTO build fails
Description of problem:
LTO likes to delete `win32_close_exception_handler` which causes an error when linking
```
[2736/5786] Linking target qemu-system-avr.exe
FAILED: qemu-system-avr.exe
"cc" "-m64" "-mcx16" @qemu-system-avr.exe.rsp
`win32_close_exception_handler' referenced in section `.xdata' of C:\msys64\tmp\cceRwR4N.ltrans59.ltrans.o: defined in discarded section `.text' of libqemuutil.a.p/util_oslib-win32.c.obj (symbol from plugin)
collect2.exe: error: ld returned 1 exit status
```
Steps to reproduce:
1. `./configure --enable-lto`
2. `make`
Additional information:
Looks like the offending commit is d89f30b4df13dfe389a4d6cf8a30b2f87c4c166e "win32: wrap socket close() with an exception handler".
Undoing the commit or marking the exception handler as `__attribute__ ((noinline, used))` both appear to fix the issue.
|