1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

libtool: Fix an issue where unnecessary rpaths were being injected

libtool was being to aggressive in adding rpath to binaries. This
change stops it adding them if that path the default search path.

(From OE-Core rev: 99d1e3ee56c326b3ab68913e68d133a63f334696)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2011-09-23 09:00:36 +01:00
parent 1750e9018f
commit e3c5d7a90a
6 changed files with 69 additions and 5 deletions
@@ -1,6 +1,6 @@
require libtool-${PV}.inc
PR = "r2"
PR = "r4"
PACKAGES = ""
SRC_URI += "file://prefix.patch"
@@ -2,7 +2,7 @@ require libtool-${PV}.inc
DEPENDS = ""
PR = "r2"
PR = "r4"
SRC_URI += "file://prefix.patch"
inherit native
@@ -1,6 +1,6 @@
require libtool-${PV}.inc
PR = "r2"
PR = "r4"
SRC_URI += "file://prefix.patch"
inherit nativesdk
+2 -1
View File
@@ -15,7 +15,8 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
file://resolve-sysroot.patch \
file://use-sysroot-in-libpath.patch \
file://fix-final-rpath.patch \
file://avoid_absolute_paths_for_general_utils.patch "
file://avoid_absolute_paths_for_general_utils.patch \
file://fix-rpath.patch "
do_compile_prepend () {
# Sometimes this file doesn't get rebuilt, force the issue
@@ -0,0 +1,63 @@
We don't want to add RPATHS which match default linker
search paths, they're a waste of space. This patch
filters libtools list and removes the ones we don't need.
RP 23/9/2011
Upstream-status: Pending
Index: libtool-2.4/libltdl/config/ltmain.m4sh
===================================================================
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-09-23 08:38:06.365043626 +0100
+++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-09-23 09:57:05.235003068 +0100
@@ -7264,8 +7264,14 @@
esac
fi
else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ ;;
+ esac
fi
elif test -n "$runpath_var"; then
case "$perm_rpath " in
@@ -8001,8 +8007,14 @@
esac
fi
else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath+=" $flag"
+ ;;
+ esac
fi
elif test -n "$runpath_var"; then
case "$perm_rpath " in
@@ -8052,8 +8064,14 @@
esac
fi
else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ ;;
+ esac
fi
elif test -n "$runpath_var"; then
case "$finalize_perm_rpath " in
+1 -1
View File
@@ -1,6 +1,6 @@
require libtool-${PV}.inc
PR = "r2"
PR = "r4"
#
# We want the results of libtool-cross preserved - don't stage anything ourselves.