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. (From OE-Core rev: e3b0925f4c861393e436deb6b1912f9f1f325d1e) Signed-off-by: Andy Ross <andy.ross@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
c7cfe7759e
commit
25e926e5f6
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
;;
|
Loading…
Reference in New Issue