In the most common case in which nothing is printed on stderr, we can
avoid the grep, cat and rm to log things on AS_MESSAGE_LOG_FD. Some
juggling is needed so that conftest.err is provided even when the "if"
condition is false, but even that will not add any fork in that case.
Can anybody test this on Cygwin to see if it gives any interesting speedup?
Paolo
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index de4de33..1ed6a8d 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -2253,11 +2253,13 @@ AC_DEFUN([_AC_RUN_LOG],
# in AS_IF constructs.
AC_DEFUN([_AC_RUN_LOG_STDERR],
[{ { $2; } >&AS_MESSAGE_LOG_FD
- ($1) 2>conftest.er1
+ ($1) 2>conftest.err
ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&AS_MESSAGE_LOG_FD
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&AS_MESSAGE_LOG_FD
+ mv conftest.er1 conftest.err
+ fi
_AS_ECHO_LOG([\$? = $ac_status])
test $ac_status = 0; }])