1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<think>
Okay, so I'm trying to classify this bug report for QEMU. The problem is that a Windows LTO build fails because `win32_close_exception_handler` is being deleted during linking. Let me break down what's happening here.
First, the error message mentions that `win32_close_exception_handler` is referenced in the `.xdata` section and was defined in the discarded `.text` section of a specific object file. This suggests that LTO (Link-Time Optimization) is removing the function because it thinks it's unused or unnecessary.
Looking at the steps to reproduce, enabling LTO with `--enable-lto` and then making causes the issue. The user also points out that this problem arises from a commit where they wrapped socket close() in an exception handler. So, adding this exception handler is causing the function to be removed by LTO.
The solution proposed is either undoing the commit or marking the exception handler with `__attribute__((noinline, used))`. This makes sense because if the function is marked as 'used', LTO won't remove it, thinking it's still needed.
Now, considering the categories provided: mistranslation, assembly lowering, other, device, graphic, socket, network, KVM, boot, vnc, debug, files, permissions, performance, kernel, peripherals, hypervisor.
The issue is related to exception handling in Windows when closing sockets. The function `win32_close_exception_handler` is part of the win32-specific code for handling exceptions during socket operations. So, it's directly tied to socket operations.
Looking at the categories, 'socket' seems like the most appropriate because the problem arises from changes made to handle socket close operations. While LTO optimization is a build process issue, the root cause is within the socket handling code.
Therefore, the classification should be under 'socket'.
</think>
socket
|