blob: aab30749fb60023e4554077060d1366561cd5fae (
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
semantic: 0.891
graphic: 0.883
user-level: 0.841
ppc: 0.808
architecture: 0.804
performance: 0.786
device: 0.757
hypervisor: 0.738
permissions: 0.733
network: 0.690
PID: 0.684
vnc: 0.675
kernel: 0.645
peripherals: 0.634
files: 0.612
TCG: 0.595
VMM: 0.585
x86: 0.581
mistranslation: 0.581
register: 0.559
i386: 0.555
socket: 0.548
virtual: 0.512
KVM: 0.493
risc-v: 0.487
assembly: 0.430
debug: 0.379
boot: 0.373
arm: 0.332
--------------------
user-level: 0.855
hypervisor: 0.848
x86: 0.529
TCG: 0.127
files: 0.064
register: 0.023
debug: 0.019
PID: 0.013
i386: 0.013
kernel: 0.009
network: 0.007
VMM: 0.006
virtual: 0.006
arm: 0.004
socket: 0.004
semantic: 0.004
device: 0.003
architecture: 0.003
assembly: 0.003
performance: 0.003
vnc: 0.002
permissions: 0.001
boot: 0.001
peripherals: 0.001
ppc: 0.001
graphic: 0.001
risc-v: 0.001
KVM: 0.001
mistranslation: 0.000
make install (meson?) removes needed RPATH for libslirp, making build on CentOS 9 difficult
Description of problem:
make install appears to remove need RPATH attributes from the binary, making it difficult if not impossible to install Qemu 9.0.0 on a CentOS 9 machine.
I'm trying to build Qemu 9.0.0 on a CentOS 9 Stream machine where I do not have root.
The system ships with libslirp-4.4.0-7.el9.src.rpm which is libslirp 4.4.0, which is too old for Qemu.
I checked out https://gitlab.freedesktop.org/slirp/libslirp.git which is 2 commits more recent than
libslirp 4.8.0. I installed this version in a separate directory.
When I configure Qemu using PKG_CONFIG_PATH, it builds the correct executable with the correct RPATH.
readelf -d shows:
0x000000000000000f (RPATH) Library rpath: [/web/courses/cs4284/pintostools/lib64]
which is the correct directory where the proper version of libslirp is located.
However, when I run "make install" the RPATH attribute is removed. Thus, Qemu resorts to the system version, which is version 4.4 (with which Qemu won't run.)
Meson's propensity to strip necessary RPATHs appears to be well-known, see, for instance,
https://github.com/mesonbuild/meson/issues/4027
(There is a fix for at least some of the problems in 0.55.0 of Meson
https://mesonbuild.com/Release-notes-for-0-55-0.html
Qemu 9.0.0 appears to use Meson 1.2.3., but yet it still fails.)
Work-around: don't use make install, copy it directly from the build directory to the destination directory.
|