libtool/libtool-2.4.2-dd-execute-mode.patch
Pavel Raiskup b6164b7e35 libtool: speedup execute mode
Pre-filter sed's input by dd to avoid long delays and unlimited memory
consumption.

Version: 2.4.2-14
Resolves: #636045
2013-04-26 19:07:00 +02:00

44 lines
1.1 KiB
Diff

diff --git a/libltdl/config/ltmain.sh b/libltdl/config/ltmain.sh
index 63ae69d..36625c7 100644
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -82,6 +82,7 @@ PROGRAM=libtool
PACKAGE=libtool
VERSION=2.4.2
TIMESTAMP=""
+: ${DD=dd}
package_revision=1.3337
# Be Bourne compatible
@@ -1224,6 +1225,21 @@ func_enable_tag "$optarg"
## Main. ##
## ----------- ##
+# func_try_sizelim file n
+# try to write at most the first N bytes from FILE to the standard output when
+# possible, otherwise put whole file
+func_try_sizelim ()
+{
+ if test -n "$DD"; then
+ $DD if="$1" bs=$2 count=1 2>/dev/null
+ if test $? -eq 127; then
+ cat "$1" 2>/dev/null
+ fi
+ else
+ cat "$1" 2>/dev/null
+ fi
+}
+
# 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
@@ -1231,7 +1247,7 @@ func_enable_tag "$optarg"
func_lalib_p ()
{
test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
+ func_try_sizelim "$1" 4096 | $SED -e 4q 2>/dev/null \
| $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
}