diff options
Diffstat (limited to 'pkgs/build-support/cc-wrapper/ld-wrapper.sh')
-rw-r--r-- | pkgs/build-support/cc-wrapper/ld-wrapper.sh | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh index 8db64a38e38..d0a1d5a0ddb 100644 --- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh @@ -132,11 +132,14 @@ if [ "$NIX_@infixSalt@_DONT_SET_RPATH" != 1 ]; then for path in "$dir"/*; do file="${path##*/}" if [ "${libs[$file]:-}" ]; then - libs["$file"]= - if [ -z "${rpaths[$dir]:-}" ]; then - rpaths["$dir"]=1 - extraAfter+=(-rpath "$dir") - fi + # This library may have been provided by a previous directory, + # but if that library file is inside an output of the current + # derivation, it can be deleted after this compilation and + # should be found in a later directory, so we add all + # directories that contain any of the libraries to rpath. + rpaths["$dir"]=1 + extraAfter+=(-rpath "$dir") + break fi done done |