libtool-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Libtool branch, sysroot, updated. v2.2.10-92-gd32c96c


From: Paolo Bonzini
Subject: [SCM] GNU Libtool branch, sysroot, updated. v2.2.10-92-gd32c96c
Date: Sun, 15 Aug 2010 16:48:54 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Libtool".

The branch, sysroot has been updated
       via  d32c96ccd6dacf2c60504a6b847e3d82400adfac (commit)
       via  55e986b8b4a3582998946c1a13e411d3122a7610 (commit)
       via  09a695acf973319b218665d7a3c37f4630c190c6 (commit)
       via  5735d4b16d9efb5e6348f7cd2eb348a38395f1fc (commit)
      from  8f2fcb912f57135270ee7969dc5e56bca77925fe (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d32c96ccd6dacf2c60504a6b847e3d82400adfac
Author: Paolo Bonzini <address@hidden>
Date:   Wed Aug 11 15:35:54 2010 -0400

    add libtool --mode=finish mode for sysroot
    
    * doc/libtool.texi (Finish mode): Document behavior when *.la files
    are passed.
    * libltdl/config/ltmain.m4sh (func_mode_finish): Eliminate sysroot
    or `=' signs representing it from files in $libs.
    * tests/sysroot.at (SYSROOT_TESTS): Test for presence of sysroot
    references before running libtool --mode=finish, and for absence
    afterwards.

commit 55e986b8b4a3582998946c1a13e411d3122a7610
Author: Paolo Bonzini <address@hidden>
Date:   Wed Aug 11 15:10:50 2010 -0400

    reorganize parsing of --mode=finish arguments
    
    * libltdl/config/ltmain.m4sh (func_mode_finish): Split arguments for
    directories and *.la files.

commit 09a695acf973319b218665d7a3c37f4630c190c6
Author: Paolo Bonzini <address@hidden>
Date:   Thu Aug 12 12:06:07 2010 -0400

    fix sysroot handling for deplibs of preopened libtool libs
    
    * libltdl/config/ltmain.m4sh: Pass $dependency_libs of preopened libtool
    through func_resolve_sysroot.

commit 5735d4b16d9efb5e6348f7cd2eb348a38395f1fc
Author: Paolo Bonzini <address@hidden>
Date:   Thu Aug 12 21:04:06 2010 -0400

    fix sysroot tests to pass on Fedora 13
    
    * tests/sysroot.at: Link $prefix/include into the sysroot as well, as
    required by newer GCC.

-----------------------------------------------------------------------

Summary of changes:
 doc/libtool.texi           |   18 ++++--
 libltdl/config/ltmain.m4sh |  131 ++++++++++++++++++++++++++++----------------
 tests/sysroot.at           |    5 +-
 3 files changed, 100 insertions(+), 54 deletions(-)

diff --git a/doc/libtool.texi b/doc/libtool.texi
index 914bd1d..4b256bf 100644
--- a/doc/libtool.texi
+++ b/doc/libtool.texi
@@ -1721,12 +1721,18 @@ commands are also completed.
 @cindex finish mode
 @cindex mode, finish
 
address@hidden mode helps system administrators install libtool libraries
-so that they can be located and linked into user programs.
-
-Each @var{mode-arg} is interpreted as the name of a library directory.
-Running this command may require superuser privileges, so the
address@hidden option may be useful.
address@hidden mode has two functions.  One is to help system administrators
+install libtool libraries so that they can be located and linked into
+user programs.  To invoke this functionality, pass the name of a library
+directory as @var{mode-arg}.  Running this command may require superuser
+privileges, and the @option{--dry-run} option may be useful.
+
+The second is to facilitate transferring libtool libraries to a native
+compilation environment after they were built in a cross-compilation
+environment.  Cross-compilation environments may rely on recent libtool
+features, and running libtool in finish mode will make it easier to
+work with older versions of libtool.  This task is performed whenever
+the @var{mode-arg} is a @samp{.la} file.
 
 @node Uninstall mode
 @section Uninstall mode
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 3888cb0..d29fd5d 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -1397,15 +1397,49 @@ test "$opt_mode" = execute && func_mode_execute 
${1+"$@"}
 func_mode_finish ()
 {
     $opt_debug
-    libdirs="$nonopt"
+    libs=
+    libdirs=
     admincmds=
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       func_append libdirs " $dir"
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      tmpdir=`func_mktempdir`
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED 's/[].[^$\\*|]/\\\\&/g'`
+        sysroot_cmd="s|\([ ']\)$sysroot_regex|\1|g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      for lib in $libs; do
+       $opt_dry_run || {
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       }
+       file="$outputname"
       done
+      $opt_dry_run || ${RM}r "$tmpdir"
+    fi
 
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
@@ -1424,49 +1458,51 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    echo 
"----------------------------------------------------------------------"
-    echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    echo
-    echo "If you ever happen to want to link against installed libraries"
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
-    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo 
"----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      echo "   - have your system administrator add LIBDIR to 
\`/etc/ld.so.conf'"
-    fi
-    echo
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these 
commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to 
\`/etc/ld.so.conf'"
+      fi
+      echo
 
-    echo "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-       echo "pages."
-       ;;
-      *)
-        echo "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    echo 
"----------------------------------------------------------------------"
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) 
manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo 
"----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
@@ -4964,8 +5000,9 @@ func_mode_link ()
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
          dependency_libs=
+         func_resolve_sysroot "$lib"
          case $lib in
-         *.la) func_source "$lib" ;;
+         *.la) func_source "$func_resolve_sysroot_result" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
diff --git a/tests/sysroot.at b/tests/sysroot.at
index 850e0cd..c0ac6d1 100644
--- a/tests/sysroot.at
+++ b/tests/sysroot.at
@@ -54,7 +54,7 @@ local_dirname() {
 }
 
 AT_CHECK([
-(cd "$gcc_sysroot" && find ".$prefix/bin" ".$prefix/lib" \! -type d) | \
+(cd "$gcc_sysroot" && find ".$prefix/bin" ".$prefix/include" ".$prefix/lib" \! 
-type d) | \
 while read file; do
   dir=`local_dirname "$sysroot/$file"`
   test -d "$dir" || mkdir -p "$dir"
@@ -186,6 +186,9 @@ LT_AT_BOOTSTRAP([], [-I $abs_top_srcdir/libltdl/m4], 
[ignore],
 AT_CHECK([$MAKE install DESTDIR=$sysroot], [0], [ignore], [ignore])
 AT_CHECK([test -f $sysroot/$prefix/bin/prog$EXEEXT])
 AT_CHECK([grep -F "$sysroot" "$sysroot/$prefix/bin/prog$EXEEXT"], [1])
+AT_CHECK([grep "'.*=" $sysroot/$prefix/lib/lib2.la], [0], [ignore])
+AT_CHECK([./libtool --mode=finish $sysroot/$prefix/lib/lib@<:@12@:>@.la], [0], 
[ignore])
+AT_CHECK([grep "'.*=" $sysroot/$prefix/lib/lib@<:@12@:>@.la], [1])
 
 # missing tests
 # 1) pass absolute .la files


hooks/post-receive
-- 
GNU Libtool



reply via email to

[Prev in Thread] Current Thread [Next in Thread]