There is no point in having "executable" binaries in the .libs
directory linked with different rpaths to the target which 
could concivably be run on the build system when cross compiling.

This patch removes the extra rpaths ($compile_rpath) so that the
output from the "link" stage can be used on the target. We can then
avoid having to "relink" during the install stage.

This saves some build time (do_install is over 2 minutes faster for
pulseaudio).

This patch also removes an annoying "seems to be moved" warning
which is totally bogus in the sysroot case.

Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this]

RP 2011/11/16

Updated by: Robert Yang <liezhi.yang@windriver.com>

diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -2355,7 +2355,7 @@ func_mode_install ()
 	dir=$func_dirname_result
 	func_append dir "$objdir"
 
-	if test -n "$relink_command"; then
+	if test "$fast_install" = no && test -n "$relink_command"; then
       # Strip any trailing slash from the destination.
       func_stripname '' '/' "$libdir"
       destlibdir=$func_stripname_result
@@ -2394,7 +2394,7 @@ func_mode_install ()
 	  shift
 
 	  srcname=$realname
-	  test -n "$relink_command" && srcname=${realname}T
+	  test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T
 
 	  # Install the shared library and build the symlinks.
 	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
@@ -6162,15 +6162,15 @@ func_mode_link ()
 	    # Hardcode the library path.
 	    # Skip directories that are in the system default run-time
 	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
+	    #case " $sys_lib_dlsearch_path " in
+	    #*" $absdir "*) ;;
+	    #*)
+	    #  case "$compile_rpath " in
+	    #  *" $absdir "*) ;;
+	    #  *) func_append compile_rpath " $absdir" ;;
+	    #  esac
+	    #  ;;
+	    #esac
 	    case " $sys_lib_dlsearch_path " in
 	    *" $libdir "*) ;;
 	    *)
@@ -6236,15 +6236,15 @@ func_mode_link ()
 	    # Hardcode the library path.
 	    # Skip directories that are in the system default run-time
 	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
+	    #case " $sys_lib_dlsearch_path " in
+	    #*" $absdir "*) ;;
+	    #*)
+	    #  case "$compile_rpath " in
+	    #  *" $absdir "*) ;;
+	    #  *) func_append compile_rpath " $absdir" ;;
+	    #  esac
+	    #  ;;
+	    #esac
 	    case " $sys_lib_dlsearch_path " in
 	    *" $libdir "*) ;;
 	    *)
@@ -6590,8 +6590,8 @@ func_mode_link ()
 		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 		  test -z "$libdir" && \
 		    func_fatal_error "'$deplib' is not a valid libtool archive"
-		  test "$absdir" != "$libdir" && \
-		    func_warning "'$deplib' seems to be moved"
+		  #test "$absdir" != "$libdir" && \
+		  #  func_warning "'$deplib' seems to be moved"
 
 		  path=-L$absdir
 		fi
