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.r...@windriver.com> --- meta/recipes-devtools/libtool/libtool-2.4.2.inc | 1 + .../libtool/libtool/norm-rpath.patch | 42 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 meta/recipes-devtools/libtool/libtool/norm-rpath.patch diff --git a/meta/recipes-devtools/libtool/libtool-2.4.2.inc b/meta/recipes-devtools/libtool/libtool-2.4.2.inc index 5b9557e..691427e 100644 --- a/meta/recipes-devtools/libtool/libtool-2.4.2.inc +++ b/meta/recipes-devtools/libtool/libtool-2.4.2.inc @@ -19,6 +19,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://avoid_absolute_paths_for_general_utils.patch \ file://fix-rpath.patch \ file://respect-fstack-protector.patch \ + file://norm-rpath.patch \ " SRC_URI[md5sum] = "d2f3b7d4627e69e13514a40e72a24d50" 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.r...@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" + ;; -- 1.7.11.2 _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core