diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch')
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch new file mode 100644 index 000000000000..d34b6c4c4345 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch @@ -0,0 +1,24 @@ +--- a/mesonbuild/backend/backends.py ++++ b/mesonbuild/backend/backends.py +@@ -456,6 +456,21 @@ class Backend: + args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang)) + except Exception: + pass ++ ++ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split() ++ next_is_path = False ++ # Try to add rpaths set by user or ld-wrapper so that they are not removed. ++ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177 ++ for flag in nix_ldflags: ++ if flag == '-rpath' or flag == '-L': ++ next_is_path = True ++ elif next_is_path or flag.startswith('-L/'): ++ if flag.startswith('-L/'): ++ flag = flag[2:] ++ if flag.startswith('@storeDir@'): ++ dirs.add(flag) ++ next_is_path = False ++ + # Match rpath formats: + # -Wl,-rpath= + # -Wl,-rpath, |