From beb38c111735ff710a9cd3b00ce06548600d0d8b 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. (From OE-Core rev: d1e88ad01df9b6419e02f632b1ba288d4cc3b2bf) Signed-off-by: Joshua Watt Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- .../icecc-create-env/icecc-create-env/icecc-create-env | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'meta/recipes-devtools/icecc-create-env') 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 v1.2.3-54-g00ecf