1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<think>
Okay, let's see. The user is reporting a regression in QEMU version 8.1.1 where running ldconfig in an ARM64 Ubuntu rootfs causes a segfault. They provided steps to reproduce, which involve extracting an Ubuntu base image and using qemu-aarch64-static to run ldconfig.real.
First, I need to figure out what category this falls into: instruction, syscall, or runtime. The problem occurs when executing a specific command with QEMU's user-mode emulation. The crash happens during the execution of ldconfig, which is a dynamic linker cache utility.
Since the issue is about QEMU crashing during the execution of a system command, it's likely related to how QEMU handles system calls or the execution flow. However, the user mentions it's a regression between versions 8.1.0 and 8.1.1. The key here is to determine if the problem is due to a specific instruction being mishandled (instruction category), an error in system call emulation (syscall), or some other runtime issue.
The segfault could be due to QEMU not correctly emulating a system call that ldconfig is making, leading to an invalid memory access. Alternatively, it could be a runtime error in QEMU's code when processing certain operations during ldconfig's execution. Since ldconfig interacts with the dynamic linker and libraries, it's possible that during its execution, it makes syscalls that QEMU now handles differently in 8.1.1, leading to a crash.
The instruction category is for when the bug is about incorrect handling of specific CPU instructions. If the problem were, say, an incorrect translation of an ARM instruction to x86, that would be an instruction error. However, the problem here seems more related to system call handling or some runtime state management.
The syscall category is for errors where QEMU's emulation of system calls is incorrect. For example, if a syscall is not properly forwarded to the host or is emulated incorrectly. Since ldconfig is performing operations that require syscalls (like reading/writing files, interacting with the dynamic linker), a regression in how those syscalls are handled in QEMU 8.1.1 could lead to a segfault.
Runtime errors are other issues that occur during execution, not necessarily tied to syscalls or instructions. However, given that this is a regression in a specific version and involves system command execution, it's more likely tied to syscall handling.
Therefore, I think the correct category here is syscall.
</think>
syscall
|