On 04/11/2012 09:27 PM, Jim Meyering wrote: > Surprised by parallel build failures, > Oops *blush* I must admit that, while I usually run the testsuite with a high degree of parallelism, I also usually run the build proper with a simple "make all", because that is so fast anyway. So I ended up releasing the beta tarball without having truly tried a fully parallel build -- how foolish. Do you think this issue warrants another beta release?
> I tracked them down: > > From 3fcf1fe611140eb6677d5893719bec1d96f106db Mon Sep 17 00:00:00 2001 > From: Jim Meyering <meyer...@redhat.com> > Date: Wed, 11 Apr 2012 21:25:48 +0200 > Subject: [PATCH] avoid parallel build failures > Minor tiny nit (feel free to ignore it): could you prepend the summary line with either "build:" or "fixup:", so that the guidelines in HACKING are followed? > A parallel build would fail when two concurrent sub-make processes > tried to build lib/Automake/Config.pm. The loser would complain that > grep: lib/Automake/Config.pm-t: No such file or directory > chmod: cannot access `lib/Automake/Config.pm-t': No such file or\ > directory > make[1]: *** [lib/Automake/Config.pm] Error 1 > * Makefile.am (update_mans): Don't build lib/Automake/Config.pm here. > Instead, depend on it from the two rules that use it: > ($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on it. > ($(srcdir)/doc/automake-$(APIVERSION).1): Likewise. > Oops, a distributed file cannot depend on a non-distributed one :-( This makes the patch unusable unfortunately. > However, that was not enough, since even then, a parallel build > would still fail, now with this: > > help2man: can't get `--help' info from automake-1.11a > Try `--no-discard-stderr' if option outputs to stderr > make: *** [doc/automake-1.11a.1] Error 1 > > a subsequent "make -j3" would create the missing file. > That was because help2man would invoke t/wrap/aclocal.in and > t/wrap/automake.in, each of which would require aclocal and > automake, yet those two files weren't guaranteed to be created. > Add explicit dependencies: > ($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on aclocal. > ($(srcdir)/doc/automake-$(APIVERSION).1): Depend on automake. > Ditto :-( Any other idea on how to fix the issue portably and properly? Regards, and sorry for the confusion, Stefano