summary refs log tree commit diff
path: root/pkgs/development/tools/misc/patchelf/setup-hook.sh
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2016-02-26 22:37:04 +0000
committerzimbatm <zimbatm@zimbatm.com>2016-02-26 22:37:04 +0000
commit35ab3d301f083bbffc4f14220b46b0372605d6f9 (patch)
treedc8a1963525b4b0f555a033d82357598dc250ebb /pkgs/development/tools/misc/patchelf/setup-hook.sh
parentc3ed0a249401b6006768bfd62cbb628121d2209e (diff)
parentfe19d0a3273811549333f624d48d04a8dd406228 (diff)
downloadnixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar.gz
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar.bz2
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar.lz
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar.xz
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.tar.zst
nixlib-35ab3d301f083bbffc4f14220b46b0372605d6f9.zip
Merge remote-tracking branch 'upstream/staging'
Diffstat (limited to 'pkgs/development/tools/misc/patchelf/setup-hook.sh')
-rw-r--r--pkgs/development/tools/misc/patchelf/setup-hook.sh18
1 files changed, 11 insertions, 7 deletions
diff --git a/pkgs/development/tools/misc/patchelf/setup-hook.sh b/pkgs/development/tools/misc/patchelf/setup-hook.sh
index a76fbfbd509c..563ef57fce11 100644
--- a/pkgs/development/tools/misc/patchelf/setup-hook.sh
+++ b/pkgs/development/tools/misc/patchelf/setup-hook.sh
@@ -5,12 +5,16 @@
 fixupOutputHooks+=('if [ -z "$dontPatchELF" ]; then patchELF "$prefix"; fi')
 
 patchELF() {
-    header "patching ELF executables and libraries in $prefix"
-    if [ -e "$prefix" ]; then
-        find "$prefix" \( \
-            \( -type f -a -name "*.so*" \) -o \
-            \( -type f -a -perm -0100 \) \
-            \) -print -exec patchelf --shrink-rpath '{}' \;
-    fi
+    local dir="$1"
+    header "shrinking RPATHs of ELF executables and libraries in $dir"
+
+    local i
+    while IFS= read -r -d $'\0' i; do
+        if [[ "$i" =~ .build-id ]]; then continue; fi
+        if ! isELF "$i"; then continue; fi
+        echo "shrinking $i"
+        patchelf --shrink-rpath "$i" || true
+    done < <(find "$dir" -type f -print0)
+
     stopNest
 }