summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/2378.toml
blob: 1f397b51453a61a7a1c77eb478708d68c84e7697 (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
id = 2378
title = "make install (meson?) removes needed RPATH for libslirp, making build on CentOS 9 difficult"
state = "opened"
created_at = "2024-06-02T20:14:17.742Z"
closed_at = "n/a"
labels = ["Build System"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/2378"
host-os = "CentOS 9 Stream"
host-arch = "x86_64"
qemu-version = "9.0.0"
guest-os = "n/a"
guest-arch = "n/a"
description = """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."""
reproduce = "n/a"
additional = "n/a"