1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<think>
Alright, let's try to figure out whether this bug is user-mode or system-mode related.
The issue occurs when building QEMU on OS X using clang as the compiler. The error messages are about undefined symbols during linking: ___emutls_v.prng_state and ___emutls_v.prng_state_data. These symbols seem to be part of the pixman submodule within QEMU because they're found in utils.o under qemu/pixman/test.
I know that pixman is a library used by QEMU for pixel manipulation, especially for accelerated graphics. The fact that these undefined symbols are coming from pixman's test code suggests it might be an issue with how pixman is being built or linked within the context of QEMU, rather than a standalone pixman problem.
The user tried building pixman separately and it worked without errors. This indicates that pixman itself isn't broken, but something about how QEMU incorporates it during its own build process is causing issues. So, perhaps there are different compiler flags or linking options when building as part of QEMU compared to standalone.
Looking at the nm output for utils.o, both symbols are present with global scope and marked as common symbols (C). This means they should be available for linkage. But during the linking phase in QEMU's build, they aren't found, leading to the undefined symbol errors.
The error occurs specifically when building QEMU, so it's likely related to how the linker is handling these symbols within the broader context of QEMU's build. Maybe there are differences in how clang handles static or dynamic linking, or perhaps some include paths or libraries are missing when building QEMU compared to pixman alone.
Since the problem arises during the linking stage and involves a component (pixman) used by QEMU for graphical operations, which is part of user-mode emulation (as opposed to system-level device drivers or kernel interactions), this seems more like a user-mode issue. User-mode code deals with application-level functionality, including graphics and emulators, whereas system-mode relates to lower-level OS components.
So, considering that the undefined symbols are in a test module of pixman used by QEMU for its operations, I think this bug is related to user-mode.
</think>
user
|