libtool-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Libtool branch, master, updated. v2.4.2.444-30-gda30ce4


From: Peter Rosin
Subject: [SCM] GNU Libtool branch, master, updated. v2.4.2.444-30-gda30ce4
Date: Tue, 06 May 2014 07:47:44 +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, master has been updated
       via  da30ce4dc9554c80f1931600af2b8bbab486476e (commit)
      from  5911665520a53415bafd8bb6da9989b5fe25df80 (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 da30ce4dc9554c80f1931600af2b8bbab486476e
Author: Peter Rosin <address@hidden>
Date:   Tue May 6 00:03:19 2014 +0200

    libtool: speed up ltwrapper_script detection in execute mode
    
    Execute mode is slow and might even DOS the computer in extreme
    cases when a parameter is a big binary file without newlines.
    Work around this with different truncation if a suitable dd
    utility is found.
    
    Fixes bug#13472 and bug#16662.
    
    Reported by Pavel Raiskup and Nick Bowler.
    
    * m4/libtool.m4 (_LT_PATH_DD): New macro, for finding a dd utility
    that works for the below purpose.
    (_LT_CMD_TRUNCATE): New macro, for finding out how to truncate binary
    pipes (fallback to the old sed truncation if no suitable dd is found
    in _LT_PATH_DD).
    (_LT_SETUP): Require _LT_CMD_TRUNCATE.
    (LT_INIT): Require Autoconf 2.62, as needed by _LT_PATH_DD.
    * build_aux/ltmain.in (func_lalib_p): Factor out the actual "generated
    by libtool" test into...
    (func_generated_by_libtool_p): ...this new function...
    (func_ltwrapper_script_p): ...so that it can be reused here, when
    truncating the pipe according to _LT_CMD_TRUNCATE.
    * THANKS: Update.
    
    Signed-off-by: Peter Rosin <address@hidden>

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

Summary of changes:
 THANKS              |    2 ++
 build-aux/ltmain.in |   14 +++++++++++---
 m4/libtool.m4       |   40 +++++++++++++++++++++++++++++++++++++++-
 3 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/THANKS b/THANKS
index e895aee..85c5150 100644
--- a/THANKS
+++ b/THANKS
@@ -150,6 +150,7 @@
   Mike Gorchak                 address@hidden
   Mike Frysinger               address@hidden
   Mike Miller                  address@hidden
+  Nick Bowler                  address@hidden
   Nix                          address@hidden
   Olaf Lenz                    address@hidden
   Olly Betts                   address@hidden
@@ -161,6 +162,7 @@
   Paul Eggert                  address@hidden
   Paul Laight                  address@hidden
   Paul Seidler                 address@hidden
+  Pavel Raiskup                        address@hidden
   Paweł Daniluk                       address@hidden
   Peter Eisentraut             address@hidden
   Peter Fritzsche              address@hidden
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index 3a0fb0c..6af4087 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -570,6 +570,14 @@ $1
 _LTECHO_EOF'
 }
 
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
 # func_lalib_p file
 # True iff FILE is a libtool '.la' library or '.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out
@@ -577,8 +585,7 @@ _LTECHO_EOF'
 func_lalib_p ()
 {
     test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_lalib_unsafe_p file
@@ -610,7 +617,8 @@ func_lalib_unsafe_p ()
 # determined imposters.
 func_ltwrapper_script_p ()
 {
-    func_lalib_p "$1"
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
 }
 
 # func_ltwrapper_executable_p file
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index ce58f31..0454030 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -59,7 +59,7 @@ esac
 # LT_INIT([OPTIONS])
 # ------------------
 AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
@@ -169,6 +169,7 @@ m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
 m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options that allow our
@@ -3216,6 +3217,43 @@ _LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; 
then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
 # _LT_CHECK_MAGIC_METHOD
 # ----------------------
 # how to check for library dependencies


hooks/post-receive
-- 
GNU Libtool



reply via email to

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