This is because libdir has a trailing slash which breaks the comparision. RP 2/1/10 Index: binutils-2.20.1/ltmain.sh =================================================================== --- binutils-2.20.1.orig/ltmain.sh 2009-09-01 00:59:32.000000000 +0800 +++ binutils-2.20.1/ltmain.sh 2010-07-29 09:41:14.000000000 +0800 @@ -2156,8 +2156,12 @@ dir="$dir$objdir" if test -n "$relink_command"; then + # Strip any trailing slash from the destination. + func_stripname '' '/' "$libdir" + destlibdir=$func_stripname_result + # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "X$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 @@ -5570,8 +5574,14 @@ absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$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="$abs_ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + #dir="$libdir" + #absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5942,8 +5952,6 @@ 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 @@ -6089,7 +6097,17 @@ 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