Merge remote-tracking branch 'origin/staging-next' into master
This commit is contained in:
commit
0c46d8f140
2 changed files with 28 additions and 0 deletions
|
@ -0,0 +1,20 @@
|
|||
diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
|
||||
index 77ac03d66..d12f77592 100644
|
||||
--- a/mesonbuild/scripts/depfixer.py
|
||||
+++ b/mesonbuild/scripts/depfixer.py
|
||||
@@ -337,6 +337,15 @@ class Elf(DataSizes):
|
||||
if not new_rpath:
|
||||
self.remove_rpath_entry(entrynum)
|
||||
else:
|
||||
+ # Clear old rpath to avoid stale references,
|
||||
+ # not heeding the warning above about de-duplication
|
||||
+ # since it does not seem to cause issues for us
|
||||
+ # and not doing so trips up Nix’s reference checker.
|
||||
+ # See https://github.com/NixOS/nixpkgs/pull/46020
|
||||
+ # and https://github.com/NixOS/nixpkgs/issues/95163
|
||||
+ self.bf.seek(rp_off)
|
||||
+ self.bf.write(b'\0'*len(old_rpath))
|
||||
+
|
||||
self.bf.seek(rp_off)
|
||||
self.bf.write(new_rpath)
|
||||
self.bf.write(b'\0')
|
|
@ -43,6 +43,14 @@ python3.pkgs.buildPythonApplication rec {
|
|||
src = ./fix-rpath.patch;
|
||||
inherit (builtins) storeDir;
|
||||
})
|
||||
|
||||
# When Meson removes build_rpath from DT_RUNPATH entry, it just writes
|
||||
# the shorter NUL-terminated new rpath over the old one to reduce
|
||||
# the risk of potentially breaking the ELF files.
|
||||
# But this can cause much bigger problem for Nix as it can produce
|
||||
# cut-in-half-by-\0 store path references.
|
||||
# Let’s just clear the whole rpath and hope for the best.
|
||||
./clear-old-rpath.patch
|
||||
];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
|
Loading…
Reference in a new issue