]> code.ossystems Code Review - openembedded-core.git/commitdiff
icecc-create-env: Fix RUNPATH files
authorJoshua Watt <jpewhacker@gmail.com>
Wed, 11 Apr 2018 02:21:55 +0000 (21:21 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 13 Apr 2018 15:55:25 +0000 (16:55 +0100)
Some newer libraries and programs use RUNPATH to specify the library
search path. These executables were being skipped by the rpath fixup
code because it was grepping the ELF header for RPATH only. A more
correct solution is to ask patchelf to report the rpath, as that tool
will properly report either RPATH or RUNPATH as appropriate.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-create-env

index 074c7675c0b67cb0910deea3397484d22861c475..3015f4e2155f11503360d7a80502ec62935e5a2e 100755 (executable)
@@ -42,11 +42,13 @@ fix_rpath ()
     if ! is_dynamic_elf "$path"; then
         return
     fi
-    local new_rpath="`readelf -w -d "$path" | grep RPATH | \
+    local old_rpath="`$PATCHELF --print-rpath "$path"`"
+    local new_rpath="`echo "$old_rpath" | \
         sed 's/.*\[\(.*\)\]/\1/g' | \
         sed "s,\\\$ORIGIN,/$origin,g"`"
 
     if test -n "$new_rpath"; then
+        print_debug "Converting RPATH '$old_rpath' -> '$new_rpath'"
         $PATCHELF --set-rpath "$new_rpath" "$path"
     fi
 }