From d1e88ad01df9b6419e02f632b1ba288d4cc3b2bf Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Tue, 10 Apr 2018 21:21:55 -0500 Subject: icecc-create-env: Fix RUNPATH files 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 Signed-off-by: Ross Burton --- .../icecc-create-env/icecc-create-env/icecc-create-env | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-create-env b/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-create-env index 074c7675c0..3015f4e215 100755 --- a/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-create-env +++ b/meta/recipes-devtools/icecc-create-env/icecc-create-env/icecc-create-env @@ -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 } -- cgit 1.2.3-korg