From: Ralf Wildenhues Date: Mon, 27 Apr 2009 19:38:40 +0000 (+0200) Subject: Limit stderr logging for C compiler version. X-Git-Tag: v2.64~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b26d51caf989d23748e4d32ecb938ce838902b74;p=thirdparty%2Fautoconf.git Limit stderr logging for C compiler version. * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT, _AC_DO_LIMIT): New internal macros, equivalent to _AC_RUN_LOG and _AC_DO, but with an optional additional argument to limit the number of lines of stderr output logged, defaulting to 10. * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Use _AC_DO_LIMIT for capturing compiler version output. Also test -qversion, for the IBM xlc compiler. * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise. * THANKS: Update. Report by Christian Rössel and John R. Cary against Libtool. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index 0c243cadf..625bfc91f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2009-05-01 Ralf Wildenhues + + Limit stderr logging for C compiler version. + * lib/autoconf/general.m4 (_AC_RUN_LOG_LIMIT, _AC_DO_LIMIT): New + internal macros, equivalent to _AC_RUN_LOG and _AC_DO, but with + an optional additional argument to limit the number of lines of + stderr output logged, defaulting to 10. + * lib/autoconf/c.m4 (AC_PROG_CC, AC_PROG_CXX, AC_PROG_OBJC): Use + _AC_DO_LIMIT for capturing compiler version output. Also test + -qversion, for the IBM xlc compiler. + * lib/autoconf/fortran.m4 (_AC_PROG_FC): Likewise. + * THANKS: Update. + Report by Christian Rössel and John R. Cary against Libtool. + 2009-04-24 Eric Blake Fix quoting of m4 macros in AT_CHECK. diff --git a/THANKS b/THANKS index 77da1dd14..da6da7ef7 100644 --- a/THANKS +++ b/THANKS @@ -72,6 +72,7 @@ Chris Torek torek@bsdi.com Christian Cornelssen ccorn@cs.tu-berlin.de Christian Krackowizer ckrackowiz@std.schuler-ag.com Christian Krone krischan@sql.de +Christian Rössel christian.roessel@gmx.de Christopher Hulbert cchgroupmail@gmail.com Christopher Lee chrislee@ri.cmu.edu Clinton Roy clinton.roy@gmail.com @@ -179,6 +180,7 @@ John Calcote john.calcote@gmail.com John David Anglin dave@hiauly1.hia.nrc.ca John Fortin fortinj@attglobal.net John Interrante interran@uluru.stanford.edu +John R. Cary cary@txcorp.com John W. Eaton jwe@bevo.che.wisc.edu Jonathan Kamens jik@kamens.brookline.ma.us Josef Tran josef@timetrackertechnology.com diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index 3fa9c04a8..ffdbd455b 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -471,9 +471,9 @@ test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH]) _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] -_AC_DO([$ac_compiler --version >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -v >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -V >&AS_MESSAGE_LOG_FD]) +for ac_option in --version -v -V -qversion; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl @@ -706,9 +706,9 @@ fi _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] -_AC_DO([$ac_compiler --version >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -v >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -V >&AS_MESSAGE_LOG_FD]) +for ac_option in --version -v -V -qversion; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl @@ -876,9 +876,9 @@ AC_CHECK_TOOLS(OBJC, _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] -_AC_DO([$ac_compiler --version >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -v >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -V >&AS_MESSAGE_LOG_FD]) +for ac_option in --version -v -V -qversion; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4 index f144c0ef4..dcffe58e7 100644 --- a/lib/autoconf/fortran.m4 +++ b/lib/autoconf/fortran.m4 @@ -354,9 +354,9 @@ AC_CHECK_TOOLS([]_AC_FC[], _AS_ECHO_LOG([checking for _AC_LANG compiler version]) set X $ac_compile ac_compiler=$[2] -_AC_DO([$ac_compiler --version >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -v >&AS_MESSAGE_LOG_FD]) -_AC_DO([$ac_compiler -V >&AS_MESSAGE_LOG_FD]) +for ac_option in --version -v -V -qversion; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done rm -f a.out m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index 83254ed1e..9eaae80bc 100644 --- a/lib/autoconf/general.m4 +++ b/lib/autoconf/general.m4 @@ -2311,6 +2311,26 @@ AC_DEFUN([_AC_RUN_LOG_STDERR], _AS_ECHO_LOG([\$? = $ac_status]) test $ac_status = 0; }]) + +# _AC_RUN_LOG_LIMIT(COMMAND, LOG-COMMANDS, [LINES]) +# ------------------------------------------------- +# Like _AC_RUN_LOG, but only log LINES lines from stderr, +# defaulting to 10 lines. +AC_DEFUN([_AC_RUN_LOG_LIMIT], +[{ { $2; } >&AS_MESSAGE_LOG_FD + ($1) 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed 'm4_default([$3], [10])a\ +... rest of stderr output deleted ... + m4_default([$3], [10])q' conftest.err >conftest.er1 + cat conftest.er1 >&AS_MESSAGE_LOG_FD + rm -f conftest.er1 conftest.err + fi + _AS_ECHO_LOG([\$? = $ac_status]) + test $ac_status = 0; }]) + + # _AC_DO_ECHO(COMMAND) # -------------------- # Echo COMMAND. This is designed to be used just before evaluating COMMAND. @@ -2372,6 +2392,15 @@ AC_DEFUN([_AC_DO_TOKENS], _AC_DO([$ac_try]); }]) +# _AC_DO_LIMIT(COMMAND, [LINES]) +# ------------------------------ +# Like _AC_DO, but limit the amount of stderr lines logged to LINES. +# For internal use only. +AC_DEFUN([_AC_DO_LIMIT], +[_AC_RUN_LOG_LIMIT([eval "$1"], + [_AC_DO_ECHO([$1])], [$2])]) + + # _AC_EVAL(COMMAND) # ----------------- # Eval COMMAND, save the exit status in ac_status, and log it.