automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] avoid parallel build failures


From: Stefano Lattarini
Subject: Re: [PATCH] avoid parallel build failures
Date: Wed, 11 Apr 2012 21:59:37 +0200

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 <address@hidden>
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]