From c4ab5ca14370406cdccaff868b2e655a2f21aa72 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 21 Dec 2010 22:37:54 +0000 Subject: [PATCH] libtool: extend all ltmain.m4sh patches to cover ltmain.sh as well, prevent configure from embedding host library paths SVN-Revision: 24752 --- tools/libtool/Makefile | 3 + tools/libtool/patches/100-libdir-fixes.patch | 59 ++++++++++++++++--- ...10-dont-use-target-dir-for-relinking.patch | 10 ++++ .../120-strip-unsafe-dirs-for-relinking.patch | 12 ++++ tools/libtool/patches/150-trailingslash.patch | 19 ++++++ 5 files changed, 96 insertions(+), 7 deletions(-) diff --git a/tools/libtool/Makefile b/tools/libtool/Makefile index 82730dfee8..fce68aebad 100644 --- a/tools/libtool/Makefile +++ b/tools/libtool/Makefile @@ -15,6 +15,9 @@ PKG_MD5SUM:=b32b04148ecdd7344abc6fe8bd1bb021 include $(INCLUDE_DIR)/host-build.mk +HOST_CONFIGURE_VARS += \ + lt_cv_sys_dlsearch_path="" + define Host/Compile $(MAKE) -C $(HOST_BUILD_DIR) endef diff --git a/tools/libtool/patches/100-libdir-fixes.patch b/tools/libtool/patches/100-libdir-fixes.patch index fb0254bf7e..d4e6f785cc 100644 --- a/tools/libtool/patches/100-libdir-fixes.patch +++ b/tools/libtool/patches/100-libdir-fixes.patch @@ -1,8 +1,6 @@ -Index: libtool-2.4/libltdl/config/ltmain.m4sh -=================================================================== ---- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2010-09-22 16:45:18.000000000 +0200 -+++ libtool-2.4/libltdl/config/ltmain.m4sh 2010-12-06 22:51:21.961732599 +0100 -@@ -5715,8 +5715,14 @@ +--- a/libltdl/config/ltmain.m4sh ++++ b/libltdl/config/ltmain.m4sh +@@ -5715,8 +5715,14 @@ func_mode_link () absdir="$abs_ladir" libdir="$abs_ladir" else @@ -19,7 +17,7 @@ Index: libtool-2.4/libltdl/config/ltmain.m4sh fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else -@@ -6114,8 +6120,6 @@ +@@ -6114,8 +6120,6 @@ func_mode_link () add="$libdir/$linklib" fi else @@ -28,7 +26,54 @@ Index: libtool-2.4/libltdl/config/ltmain.m4sh # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in -@@ -6270,7 +6274,17 @@ +@@ -6270,7 +6274,17 @@ func_mode_link () + fi + ;; + *) +- path="-L$absdir/$objdir" ++ # OE sets installed=no in staging. We need to look in $objdir and $absdir, ++ # preferring $objdir. RP 31/04/2008 ++ if test -f "$absdir/$objdir/$depdepl" ; then ++ depdepl="$absdir/$objdir/$depdepl" ++ path="-L$absdir/$objdir" ++ elif test -f "$absdir/$depdepl" ; then ++ depdepl="$absdir/$depdepl" ++ path="-L$absdir" ++ else ++ path="-L$absdir/$objdir" ++ fi + ;; + esac + else +--- a/libltdl/config/ltmain.sh ++++ b/libltdl/config/ltmain.sh +@@ -6504,8 +6504,14 @@ func_mode_link () + absdir="$abs_ladir" + libdir="$abs_ladir" + else +- dir="$lt_sysroot$libdir" +- absdir="$lt_sysroot$libdir" ++ # Adding 'libdir' from the .la file to our library search paths ++ # breaks crosscompilation horribly. We cheat here and don't add ++ # it, instead adding the path where we found the .la. -CL ++ dir="$lt_sysroot$abs_ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ #dir="$libdir" ++ #absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else +@@ -6903,8 +6909,6 @@ func_mode_link () + add="$libdir/$linklib" + fi + else +- # We cannot seem to hardcode it, guess we'll fake it. +- add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in +@@ -7059,7 +7063,17 @@ func_mode_link () fi ;; *) diff --git a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch index f2681aea62..c78058934a 100644 --- a/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch +++ b/tools/libtool/patches/110-dont-use-target-dir-for-relinking.patch @@ -8,3 +8,13 @@ add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in +--- a/libltdl/config/ltmain.sh ++++ b/libltdl/config/ltmain.sh +@@ -6893,7 +6893,6 @@ func_mode_link () + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then +- add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in diff --git a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch index 564d885a50..1c3df4c004 100644 --- a/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch +++ b/tools/libtool/patches/120-strip-unsafe-dirs-for-relinking.patch @@ -10,3 +10,15 @@ func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' +--- a/libltdl/config/ltmain.sh ++++ b/libltdl/config/ltmain.sh +@@ -2972,6 +2972,9 @@ func_mode_install () + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + ++ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"` ++ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"` ++ + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' diff --git a/tools/libtool/patches/150-trailingslash.patch b/tools/libtool/patches/150-trailingslash.patch index 14aa27be86..a01f9be77b 100644 --- a/tools/libtool/patches/150-trailingslash.patch +++ b/tools/libtool/patches/150-trailingslash.patch @@ -28,3 +28,22 @@ Nitin A Kamble # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that +--- a/libltdl/config/ltmain.sh ++++ b/libltdl/config/ltmain.sh +@@ -2953,8 +2953,15 @@ func_mode_install () + func_append dir "$objdir" + + if test -n "$relink_command"; then ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$libdir" ++ destlibdir=$func_stripname_result ++ ++ func_stripname '' '/' "$destdir" ++ s_destdir=$func_stripname_result ++ + # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` ++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that