Can you please also try the attached patch? It's needed regardless, and I think it may attack some failures being reported for FreeBSD and MacOS X. I've pushed this to autoconf master as:
http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=16126bc4302f2cb1b4bd06ca7d7da31d2f82156a
From 449ba82926d076abaf344d999ef0ab1fdad04040 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Tue, 6 Mar 2012 22:56:39 -0800 Subject: [PATCH] tests: port AT_CHECK_ENV to hosts with flaky grep * tests/local.at (AT_CHECK_ENV): Don't assume that if one grep fails, the other will too. It could be that 'grep' is flaky, and fails somewhat at random. This would explain the problems reported for autoconf-2.68b on FreeBSD and MacOS X, for example: <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00032.html> <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00035.html> <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00036.html> <http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00044.html> --- tests/local.at | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/local.at b/tests/local.at index cce24f0..eb01cc0 100644 --- a/tests/local.at +++ b/tests/local.at @@ -297,9 +297,10 @@ test -f state-ls.after \ # Compare variable space dumps. if test -f state-env.before && test -f state-env.after; then set +x + grep_failed=false for act_file in state-env.before state-env.after do - $EGREP -v '^(m4_join([|], + ($EGREP -v '^(m4_join([|], [a[cs]_.*], [(exec_)?prefix|DEFS|CONFIG_STATUS], [CC|CFLAGS|CPP|GCC|CXX|CXXFLAGS|CXXCPP|GXX|F77|FFLAGS|FLIBS|G77], @@ -323,12 +324,19 @@ if test -f state-env.before && test -f state-env.after; then [GREP|[EF]GREP|SED], [[_@]|.[*#?$].], [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \ - $act_file 2>/dev/null | + $act_file || + test $? -eq 1 || echo failed >&2 + ) 2>stderr-$act_file | # There may be variables spread on several lines; remove latter lines. - $GREP '^m4_defn([m4_re_word])=' >clean-$act_file + $GREP '^m4_defn([m4_re_word])=' >clean-$act_file || + test $? -eq 1 || grep_failed=: + if test -s stderr-$act_file; then + cat stderr-$act_file >&2 + grep_failed=: + fi done $at_traceon - $at_diff clean-state-env.before clean-state-env.after + $grep_failed || $at_diff clean-state-env.before clean-state-env.after fi } [#]at_check_env]) -- 1.7.6.5