Enable new dtags in a way that works with binutils 2.30.
In 3027bca0, binutils was upgraded from 2.28.1 to 2.30. However, in 2.30, the ldmain.c file within binutils, which the nixpkgs new-dtags.patch file is meant to modify, was changed in such a way that the patch no longer works. As a result, the new dtags are not actually enabled, and binaries are built with RPATH set instead of RUNPATH, thereby preventing LD_LIBRARY_PATH from overriding this built-in path. This change corrects this. The patch file is no longer necessary because binutils's ldmain.c now sets link_info.new_dtags based on the configuration flags. This was probably not noticed immediately because, when the derivation is built with nix-build, the fixupPhase runs patchelf --shrink-rpath. patchelf converts any RPATH in the binary into RUNPATH (unless --force-rpath is specified). Of course, if the binary is built without nix-build (such as in a nix-shell), this never occurs, and any RPATH in the binary is left in place.
parent
611eefb0
Please register or sign in to comment