On 03/04/2012 10:48 PM, Václav Zeman wrote: > Some FreeBSD 8.2 results.
Thanks. I think we have a handle at least one of those test failures (test 100) with the attached patches series but the other failures look new to me. Could you please try the attached patch, and assuming it doesn't fix all the problems, email testsuite.log and the contents of tests/testsuite.dir as a compressed tarball? The directory should have subdirectories for each failed test. Thanks.
>From cca288d94e1d1992dd157e43c5891213c87b46be Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sat, 3 Mar 2012 10:44:25 +0100 Subject: [PATCH 1/7] configure: don't infloop when re-executing with $CONFIG_SHELL It turns out our guard against infinite recursion wasn't good enough when shells without $LINENO support were involved, since the creation-and-sourcing of configure.lineno broke the guard's expectations. Reports by Tim Rice and Paul Eggert. * lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Export '_as_can_reexec' to "no" before sourcing the just-created configure.lineno. --- lib/m4sugar/m4sh.m4 | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index be013aa..f05346b 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -1199,6 +1199,10 @@ dnl Eggert wrote the scripts with optimization help from Paolo Bonzini). chmod +x "$as_me.lineno"] || AS_ERROR([cannot create $as_me.lineno; rerun with a POSIX shell]) + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). -- 1.7.6.5 >From 7d55ba7fd930ad1f56946ba9d7e9ef573caf93f3 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Sat, 3 Mar 2012 18:42:21 -0800 Subject: [PATCH 2/7] tests: port AS_EXECUTABLE_P test to Solaris 8 /bin/sh * tests/m4sh.at (AS@&t@_EXECUTABLE): Treat any nonzero exit status as failure. This is needed for Solaris 8 /bin/sh, where executing a nonexecutable file causes the shell to say the file had exit status 1. --- tests/m4sh.at | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tests/m4sh.at b/tests/m4sh.at index 38667e4..a24915b 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -579,7 +579,7 @@ st1=$? (./foo.sh) >/dev/null 2>&1 st2=$? case $st1:$st2 in - 1:126 | 0:0 ) echo 2 ;; + *[[1-9]]*:*[[1-9]]* | 0:0 ) echo 2 ;; *) echo "fail ($st1:$st2)" ;; esac # Now things better be executable -- 1.7.6.5 >From bb454862bb167fb9aeb5222edd5ec1ab974754e1 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Sat, 3 Mar 2012 18:47:36 -0800 Subject: [PATCH 3/7] tests: fix "#/bin/sh" typo * tests/m4sh.at (AS@&t@_EXECUTABLE): "#!/bin/sh", not "#/bin/sh". Typo reported by Tim Rice in: http://lists.gnu.org/archive/html/autoconf-patches/2012-03/msg00009.html --- tests/m4sh.at | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tests/m4sh.at b/tests/m4sh.at index a24915b..9456899 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -569,7 +569,7 @@ else echo 1 fi cat > foo.sh <<\EOF || AS_EXIT([1]) -#/bin/sh +#!/bin/sh exit 0 EOF # File systems like FAT tend to fake executable permissions on all files. -- 1.7.6.5 >From 49b68f063e33f22814de0ce01f4b7119d5c776c3 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Sat, 3 Mar 2012 21:28:01 -0800 Subject: [PATCH 4/7] tests: port AS_TR_SH and AS_TR_CPP test to Solaris 8 wc * tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Do not assume that "wc -l" outputs only digits; on Solaris 8 it also outputs blanks and POSIX allows this. --- tests/m4sh.at | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/m4sh.at b/tests/m4sh.at index 9456899..8e9d1fe 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -1559,9 +1559,10 @@ A_B_C_P__ dnl Check that of the last 6 macros, only 2 needed command substitution. dnl This test abuses our knowledge of m4sh internals a bit; oh well. -AT_CHECK([sed -n '/start here/,$ { +AT_CHECK([tab=' ' # a single ASCII tab character +sed -n '/start here/,$ { /`.*`/p -}' script | wc -l], [], [[2 +}' script | wc -l | sed "s/[[ $tab]]//g" ], [], [[2 ]]) AT_CLEANUP -- 1.7.6.5 >From 3b78f246db536275db653903a49725179f5945c2 Mon Sep 17 00:00:00 2001 From: Paul Eggert <egg...@cs.ucla.edu> Date: Sat, 3 Mar 2012 21:35:29 -0800 Subject: [PATCH 5/7] fortran: clean up core files after AC_FC_CHECK_BOUNDS * lib/autoconf/fortran.m4 (AC_FC_CHECK_BOUNDS): Clean up core files, too. Needed for Sun Fortran 95 8.2 2005/10/13 on Solaris 8. --- lib/autoconf/fortran.m4 | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4 index afeb3ab..3803595 100644 --- a/lib/autoconf/fortran.m4 +++ b/lib/autoconf/fortran.m4 @@ -1599,7 +1599,8 @@ do [], [ac_cv_fc_check_bounds=$ac_flag; break])])])]) done -rm -f conftest$ac_exeext conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest$ac_exeext conftest.err conftest.$ac_objext conftest.$ac_ext \ + core *.core core.conftest.* FCFLAGS=$ac_fc_check_bounds_FCFLAGS_save ]) if test "x$ac_cv_fc_check_bounds" = xunknown; then -- 1.7.6.5 >From 6e7264cf45b61cf40e0cc91b63ae8365d4f2d1f1 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sun, 4 Mar 2012 16:30:17 +0100 Subject: [PATCH 6/7] tests: fix spurious failure when CONFIG_SITE is set * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Export $CONFIG_SITE to "/dev/null", to avoid spurious diffs in expected stdout/stderr. --- tests/m4sh.at | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/tests/m4sh.at b/tests/m4sh.at index 8e9d1fe..78fe967 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -120,7 +120,10 @@ exec sh "@S|@@" chmod a+x cfg-sh AT_CAPTURE_FILE([config.log]) -AT_CHECK([env CONFIG_SHELL=./cfg-sh ./configure], [0], [], []) +# Export CONFIG_SITE to /dev/null to avoid spurious diffs in expected +# stdout/stderr. +AT_CHECK([env CONFIG_SITE=/dev/null CONFIG_SHELL=./cfg-sh ./configure], + [0], [], []) # ./configure re-executed itself. AT_CHECK([test -f cfg-sh-has-run], [0]) # And did that not to cause extra execution of later commands. -- 1.7.6.5 >From 43814d248d030849c366e83e550f90a88596461d Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sun, 4 Mar 2012 17:14:14 +0100 Subject: [PATCH 7/7] tests: fix spurious failure due to Solaris XPG4 sh bug On Solaris 10, the /usr/xpg4/bin/sh shell seems unable to execute a shell script named 'script': $ touch script $ /bin/sh script; echo status: $? # As expected. status: 0 $ /usr/xpg4/bin/sh script; echo status: $? # Weirdness follows. /usr/xpg4/bin/sh: script: cannot execute status: 1 This was causing a spurious testsuite failure for users which have /usr/xpg4/bin in $PATH before /bin and /usr/bin. Fix that. * tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Rename the m4sh-produced script to 'script2', to avoid the just-described issue. --- tests/m4sh.at | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/m4sh.at b/tests/m4sh.at index 78fe967..4e4da5d 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -49,6 +49,10 @@ echo foo > sentinel ]]) AT_CHECK_M4SH +# Calling the script simply 'script' could cause problems with +# Solaris /usr/xpg4/bin/sh in the invocation 'sh script' below. +mv -f script script2 + AT_DATA([fake-shell], [[#!/bin/sh echo 'Fake shell executed.' @@ -61,7 +65,7 @@ done ]]) chmod a+x fake-shell -AT_CHECK([CONFIG_SHELL=./fake-shell ./script 1 2 4 8], [0], +AT_CHECK([CONFIG_SHELL=./fake-shell ./script2 1 2 4 8], [0], [Fake shell executed. nargs = 4 :1: @@ -73,7 +77,7 @@ AT_CHECK([test ! -f sentinel], [0]) test ! -f sentinel || rm -f sentinel # Cleanup for next test. AT_CHECK( -[CONFIG_SHELL=`pwd`/fake-shell sh script a 'b c' ' d e '], +[CONFIG_SHELL=`pwd`/fake-shell sh script2 a 'b c' ' d e '], [0], [Fake shell executed. nargs = 3 @@ -85,7 +89,7 @@ AT_CHECK([test ! -f sentinel], [0]) test ! -f sentinel || rm -f sentinel # Cleanup for next test. AT_CHECK([(PATH=`pwd`:$PATH; export PATH; -CONFIG_SHELL=fake-shell script '' '&' '!;*' '<($[]@%:@)>,' 'x +CONFIG_SHELL=fake-shell script2 '' '&' '!;*' '<($[]@%:@)>,' 'x y z 1 2 3')], [0], [Fake shell executed. -- 1.7.6.5