summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog41
-rw-r--r--HACKING4
-rw-r--r--NEWS4
-rw-r--r--THANKS2
-rw-r--r--lib/Automake/tests/Makefile.in2
-rw-r--r--lib/am/check.am7
-rw-r--r--lib/am/java.am2
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/Makefile.in20
-rwxr-xr-xtests/check-concurrency-bug9245.test62
-rwxr-xr-xtests/java-empty-classpath.test90
11 files changed, 219 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d7e5d6ea..ea42a25c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+2011-08-17 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ * THANKS (Daniel Richard G.): Update e-mail address.
+
+2011-08-16 Daniel Richard G. <skunk@iskunk.org> (tiny change)
+ Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ java: avoid compilation errors when CLASSPATH is empty
+ * lib/am/java.am (CLASSPATH_ENV): When redefining `$CLASSPATH',
+ do not append an empty component in case the previous value of
+ CLASSPATH is empty or unset.
+ * tests/java-empty-classpath.test: New test.
+ * tests/Makefile.am (TESTS): Update.
+ Fixes automake bug#9306.
+
+2011-08-16 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ parallel-tests: no more spurious successes for FreeBSD make
+ Work around a bug of FreeBSD make bug that was causing the
+ automake-generated "check" target to complete with success
+ even if some tests failed; this happened only when FreeBSD
+ make was run in concurrent mode (as in, e.g., "make -j2
+ check"). The bug is not present in NetBSD make.
+ This change fixes automake bug#9245:
+ <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
+ See also FreeBSD PR bin/159730:
+ <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>
+ * lib/am/check.am [%?PARALLEL_TESTS%] $(TEST_SUITE_LOG): Use a
+ more "safe" (and apparently redundant) idiom to exit with error,
+ so that the non-zero exit status is picked up also by FreeBSD
+ make when it's running in concurrent mode.
+ * NEWS: Update.
+ * tests/check-concurrency-bug9245.test: New test.
+ * tests/Makefile.am (TESTS): Update.
+
+2011-08-11 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ hacking: we now require autoconf 2.68
+ * HACKING ("Working in git"): Use autoconf and autom4te 2.68,
+ not 2.67, in the examples.
+
2011-08-09 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: possible infinite recursion in the test harness
diff --git a/HACKING b/HACKING
index 231e3fcb3..1cc43fe3e 100644
--- a/HACKING
+++ b/HACKING
@@ -102,8 +102,8 @@
not installed as "autoconf", pass it explicitly (along with the
accompanying "autom4te") when calling `bootstrap' and `configure'.
For example:
- $ AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67 ./bootstrap
- $ ./configure AUTOCONF=autoconf2.67 AUTOM4TE=autom4te2.67
+ $ AUTOCONF=autoconf2.68 AUTOM4TE=autom4te2.68 ./bootstrap
+ $ ./configure AUTOCONF=autoconf2.68 AUTOM4TE=autom4te2.68
* Dependent files aclocal.m4, configure and Makefile.in in all
directories should be up to date in the git repository, so that
diff --git a/NEWS b/NEWS
index 35b223aab..50e702bc4 100644
--- a/NEWS
+++ b/NEWS
@@ -64,7 +64,9 @@ Bugs fixed in 1.11a:
* Bugs introduced by 1.11:
- The `parallel-tests' test driver works around a GNU make 3.80 bug with
- trailing white space in the test list (`TESTS = foo $(EMPTY)').
+ trailing white space in the test list (`TESTS = foo $(EMPTY)'), and
+ does not report spurious successes when used with concurrent FreeBSD
+ make (e.g., "make check -j3").
- The `silent-rules' option now also silences all compile rules if dependency
tracking is disabled. Also, when `silent-rules' is not used, the output from
diff --git a/THANKS b/THANKS
index 4f8950a3f..54c2320d7 100644
--- a/THANKS
+++ b/THANKS
@@ -67,7 +67,7 @@ Dalibor Topic robilad@kaffe.org
danbp danpb@nospam.postmaster.co.uk
Daniel Jacobowitz drow@false.org
Daniel Kahn Gillmor dkg@fifthhorseman.net
-Daniel Richard G. danielg@teragram.com
+Daniel Richard G. skunk@iskunk.org
Debarshi Ray rishi@gnu.org
Dave Brolley brolley@redhat.com
Dave Korn dave.korn.cygwin@googlemail.com
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index 67a074775..967a95286 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -431,7 +431,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
col="$$red"; \
fi; \
echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \
- $$exit
+ $$exit || exit 1
# Run all the tests.
check-TESTS:
diff --git a/lib/am/check.am b/lib/am/check.am
index 82ba7ce8c..a65d1fe79 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -227,7 +227,12 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
col="$$red"; \
fi; \
echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \
- $$exit
+## The use of "exit 1" below is required to work around a FreeBSD make bug
+## (present only when running in concurrent mode). See automake bug#9245:
+## <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9245>
+## and FreeBSD PR bin/159730:
+## <http://www.freebsd.org/cgi/query-pr.cgi?pr=159730>.
+ $$exit || exit 1
RECHECK_LOGS = $(TEST_LOGS)
diff --git a/lib/am/java.am b/lib/am/java.am
index d6eb45585..604df2229 100644
--- a/lib/am/java.am
+++ b/lib/am/java.am
@@ -21,7 +21,7 @@
## ---------- ##
JAVAC = javac
-CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT):$$CLASSPATH
+CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"}
JAVAROOT = $(top_builddir)
class%DIR%.stamp: $(%DIR%_JAVA)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 833dc7a26..850240974 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -239,6 +239,7 @@ check12.test \
check-exported-srcdir.test \
check-tests-in-builddir.test \
check-tests_environment.test \
+check-concurrency-bug9245.test \
tests-environment-backcompat.test \
checkall.test \
clean.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ede80e6eb..5b5714123 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -300,14 +300,14 @@ XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \
override-conditional-2.test pr8365-remake-timing.test \
yacc-dist-nobuild-subdir.test txinfo5.test \
$(instspc_xfail_tests)
-parallel_tests = backcompat5-p.test check-exported-srcdir-p.test \
- check-tests-in-builddir-p.test check-tests_environment-p.test \
- check-p.test check10-p.test check11-p.test check12-p.test \
- check2-p.test check3-p.test check4-p.test check5-p.test \
- check6-p.test check7-p.test check8-p.test check9-p.test \
- color-p.test color2-p.test comment9-p.test dejagnu-p.test \
- exeext4-p.test maken3-p.test maken4-p.test \
- posixsubst-tests-p.test
+parallel_tests = backcompat5-p.test check-concurrency-bug9245-p.test \
+ check-exported-srcdir-p.test check-tests-in-builddir-p.test \
+ check-tests_environment-p.test check-p.test check10-p.test \
+ check11-p.test check12-p.test check2-p.test check3-p.test \
+ check4-p.test check5-p.test check6-p.test check7-p.test \
+ check8-p.test check9-p.test color-p.test color2-p.test \
+ comment9-p.test dejagnu-p.test exeext4-p.test maken3-p.test \
+ maken4-p.test posixsubst-tests-p.test
instspc_tests = instspc-squote-build.test instspc-squote-install.test \
instspc-dquote-build.test instspc-dquote-install.test \
instspc-bquote-build.test instspc-bquote-install.test \
@@ -512,6 +512,7 @@ check12.test \
check-exported-srcdir.test \
check-tests-in-builddir.test \
check-tests_environment.test \
+check-concurrency-bug9245.test \
tests-environment-backcompat.test \
checkall.test \
clean.test \
@@ -1474,7 +1475,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
col="$$red"; \
fi; \
echo "$$msg" | $(am__text_box) "col=$$col" "std=$$std"; \
- $$exit
+ $$exit || exit 1
# Run all the tests.
check-TESTS:
@@ -1675,6 +1676,7 @@ uninstall-am:
pdf-am ps ps-am recheck recheck-html uninstall uninstall-am
backcompat5-p.log: backcompat5.test
+check-concurrency-bug9245-p.log: check-concurrency-bug9245.test
check-exported-srcdir-p.log: check-exported-srcdir.test
check-tests-in-builddir-p.log: check-tests-in-builddir.test
check-tests_environment-p.log: check-tests_environment.test
diff --git a/tests/check-concurrency-bug9245.test b/tests/check-concurrency-bug9245.test
new file mode 100755
index 000000000..e5dd1535b
--- /dev/null
+++ b/tests/check-concurrency-bug9245.test
@@ -0,0 +1,62 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Look for a bug where FreeBSD make in concurrent mode reported success
+# even when the Automake-generated parallel testsuite harness failed.
+# See automake bug#9245.
+
+. ./defs || Exit 1
+
+cat >> configure.in << 'END'
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+TESTS = foo.test bar.test
+END
+
+cat > foo.test <<'END'
+#!/bin/sh
+exit 1
+END
+chmod a+x foo.test
+
+cp foo.test bar.test
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+./configure
+
+# Some make implementations don't grok the `-j' option.
+$MAKE -j1 || Exit 77
+
+for j in '' -j1 -j2; do
+ $MAKE $j check && Exit 1
+ TESTS=foo.test $MAKE $j -e check && Exit 1
+ if test x"$parallel_tests" = x"yes"; then
+ $MAKE $j recheck && Exit 1
+ TEST_LOGS=foo.log $MAKE $j -e check && Exit 1
+ rm -f test-suite.log
+ $MAKE $j test-suite.log && Exit 1
+ test -f test-suite.log || Exit 1
+ else
+ : # For shells with buggy 'set -e'.
+ fi
+done
+
+:
diff --git a/tests/java-empty-classpath.test b/tests/java-empty-classpath.test
new file mode 100755
index 000000000..230bb7cd3
--- /dev/null
+++ b/tests/java-empty-classpath.test
@@ -0,0 +1,90 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Java compilation works also when CLASSPATH is unset or empty at
+# compilation time. See automake bug#9306.
+
+required=javac
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in <<'END'
+AC_CONFIG_SRCDIR([org/gnu/bug/Library.java])
+AC_CONFIG_FILES([
+ org/Makefile
+ org/gnu/Makefile
+ org/gnu/bug/Makefile
+])
+AC_OUTPUT
+END
+
+mkdir org org/gnu org/gnu/bug
+cat > Makefile.am <<END
+CLEANFILES = *.class
+SUBDIRS = org
+END
+echo SUBDIRS = gnu > org/Makefile.am
+echo SUBDIRS = bug > org/gnu/Makefile.am
+cat > org/gnu/bug/Makefile.am <<'END'
+JAVAROOT = ../../..
+dist_noinst_JAVA = Library.java Application.java
+END
+
+cat > org/gnu/bug/Library.java <<'END'
+package org.gnu.bug;
+public class Library
+{
+ public Library ()
+ {
+ // Nothing to do.
+ }
+ public static void doSomethingUseful (String arg)
+ {
+ System.out.println (arg);
+ }
+}
+END
+
+cat > org/gnu/bug/Application.java <<'END'
+import org.gnu.bug.*;
+public class Application
+{
+ public static void main (String args[])
+ {
+ Library lib = new Library ();
+ lib.doSomethingUseful ("PLUGH");
+ }
+}
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+
+unset CLASSPATH || :
+$MAKE
+$MAKE clean
+
+CLASSPATH=''; export CLASSPATH
+$MAKE
+$MAKE clean
+
+unset CLASSPATH || :
+$MAKE distcheck
+
+: