diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-09-23 09:00:36 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-09-26 17:55:58 +0100 |
commit | 99d1e3ee56c326b3ab68913e68d133a63f334696 (patch) | |
tree | 027d8fb21e8dfeac2cbf869ee549ffaa38beaecc /meta | |
parent | c7b02c6e80819e30a0818282ab8d960243a2d0e8 (diff) | |
download | openembedded-core-99d1e3ee56c326b3ab68913e68d133a63f334696.tar.gz openembedded-core-99d1e3ee56c326b3ab68913e68d133a63f334696.tar.bz2 openembedded-core-99d1e3ee56c326b3ab68913e68d133a63f334696.zip |
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.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
6 files changed, 69 insertions, 5 deletions
diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb index 25ac580e4a..6d512b1962 100644 --- a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb +++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb @@ -1,6 +1,6 @@ require libtool-${PV}.inc -PR = "r2" +PR = "r4" PACKAGES = "" SRC_URI += "file://prefix.patch" diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.bb index 423622fa2e..3d0998e104 100644 --- a/meta/recipes-devtools/libtool/libtool-native_2.4.bb +++ b/meta/recipes-devtools/libtool/libtool-native_2.4.bb @@ -2,7 +2,7 @@ require libtool-${PV}.inc DEPENDS = "" -PR = "r2" +PR = "r4" SRC_URI += "file://prefix.patch" inherit native diff --git a/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb b/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb index 4f67fed445..a96d1d1ac4 100644 --- a/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb +++ b/meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb @@ -1,6 +1,6 @@ require libtool-${PV}.inc -PR = "r2" +PR = "r4" SRC_URI += "file://prefix.patch" inherit nativesdk diff --git a/meta/recipes-devtools/libtool/libtool.inc b/meta/recipes-devtools/libtool/libtool.inc index d423e4955b..ef9095be3e 100644 --- a/meta/recipes-devtools/libtool/libtool.inc +++ b/meta/recipes-devtools/libtool/libtool.inc @@ -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 diff --git a/meta/recipes-devtools/libtool/libtool/fix-rpath.patch b/meta/recipes-devtools/libtool/libtool/fix-rpath.patch new file mode 100644 index 0000000000..3cdeaecab4 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/fix-rpath.patch @@ -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 diff --git a/meta/recipes-devtools/libtool/libtool_2.4.bb b/meta/recipes-devtools/libtool/libtool_2.4.bb index e1a9a10ffd..3002215256 100644 --- a/meta/recipes-devtools/libtool/libtool_2.4.bb +++ b/meta/recipes-devtools/libtool/libtool_2.4.bb @@ -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. |