summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/libtool/libtool/norm-rpath.patch')
-rw-r--r--meta/recipes-devtools/libtool/libtool/norm-rpath.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/meta/recipes-devtools/libtool/libtool/norm-rpath.patch b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
new file mode 100644
index 0000000..03a7667
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
@@ -0,0 +1,42 @@
+libtool: normalize link paths before considering for RPATH
+
+Libtool may be passed link paths of the form "/usr/lib/../lib", which
+fool its detection code into thinking it should be included as an
+RPATH in the generated binary. Normalize before comparision.
+
+Signed-off-by: Andy Ross <andy.ross@windriver.com>
+Upstream-Status: Pending
+
+diff -ru a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
+--- a/libltdl/config/ltmain.m4sh 2012-08-16 13:58:55.058900363 -0700
++++ b/libltdl/config/ltmain.m4sh 2012-08-16 16:34:54.616627821 -0700
+@@ -7288,8 +7288,13 @@
+ else
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
++ libdir_norm=`echo $libdir \
++ | sed 's/\/\+\.\(\/\+\|$\)/\//g' \
++ | sed 's/[^\/]\+\/\+\.\.\(\/\+\|$\)//g' \
++ | sed 's/\/\+/\//g' \
++ | sed 's/\(.\)\/$/\1/g'`
+ case " $sys_lib_dlsearch_path " in
+- *" $libdir "*) ;;
++ *" $libdir_norm "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ ;;
+@@ -8027,8 +8032,13 @@
+ else
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
++ libdir_norm=`echo $libdir \
++ | sed 's/\/\+\.\(\/\+\|$\)/\//g' \
++ | sed 's/[^\/]\+\/\+\.\.\(\/\+\|$\)//g' \
++ | sed 's/\/\+/\//g' \
++ | sed 's/\(.\)\/$/\1/g'`
+ case " $sys_lib_dlsearch_path " in
+- *" $libdir "*) ;;
++ *" $libdir_norm "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath+=" $flag"
+ ;;
OpenPOWER on IntegriCloud