nixpkgs/pkgs/development/tools/build-managers/meson
Jan Tojnar e8bfa708c4 meson: Fix rpath clearing
Meson allows projects to set `build_rpath` property, containing paths
that will be added during build but will be removed when installing.

When Meson removes build_rpath from `DT_RUNPATH` entry, it just writes
the shorter ␀-terminated new rpath over the old one to reduce
the risk of potentially breaking the ELF files
(when the linker does string de-duplication or something).
But this can cause much bigger problem for Nix, as it can produce
cut-in-half-by-␀ store path references.

For example, in systemd’s libudev, it was removing three `$ORIGIN`-relative paths from

    $ORIGIN/../libsystemd:$ORIGIN/../basic:$ORIGIN/../shared:…␀

resulting in the following `DT_RUNPATH` entry:

    …␀store/v589pqjhvxrj73g3r0xb41yr84z5pwb7-gcc-9.3.0-lib/lib␀

We previously handled this in `fix-rpath.patch` but the method we prevent
Meson from removing paths added to rpath through `NIX_LDFLAGS` was changed
during 0.55.0 update and I forgot about this second purpose of the patch.

Let’s re-add this clearing code, as it worked without issues for a long time.
2020-08-11 17:48:18 +02:00
..
allow-dirs-outside-of-prefix.patch meson: 0.53.2 → 0.54.0 2020-04-21 08:32:39 +02:00
clear-old-rpath.patch meson: Fix rpath clearing 2020-08-11 17:48:18 +02:00
default.nix meson: Fix rpath clearing 2020-08-11 17:48:18 +02:00
fix-rpath.patch meson: 0.54.2 → 0.55.0 2020-07-12 19:56:33 +02:00
gir-fallback-path.patch meson: 0.51.2 → 0.52.1 2019-12-02 00:23:09 +01:00
more-env-vars.patch meson: 0.54.1 → 0.54.2 2020-05-15 16:58:41 +02:00
setup-hook.sh meson: Make target-agnostic 2020-04-28 10:55:33 -04:00