[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Avoid VPATH-related distcheck failures with non-GNU make
From: |
Stefano Lattarini |
Subject: |
Re: Avoid VPATH-related distcheck failures with non-GNU make |
Date: |
Sat, 15 Jan 2011 16:50:31 +0100 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
[ Adding automake to CC: ]
On Saturday 15 January 2011, Ralf Wildenhues wrote:
> OK, so all the added '$MAKE distcheck' "for safety" at the end of the
> tests caused roughly a thousand new test failures across the board, it
> seems, drowning other signals. Most of these failures apparently have
> two reasons:
>
> 1) Cleanup failed to remove some directory because of stale NFS handles,
>
> 2) The native make is not up to the task of VPATH builds.
>
> Now, distcheck is not a GCS-mandated target, so it need not work
> everywhere. Also, we already document in the GNU-global INSTALL file
> that GNU make is preferred when doing VPATH builds (although Automake
> currently still does try to work around all issues except those from
> Solaris 2.6 and IRIX make for the standard targets).
>
> So, how about changing *those* $MAKE distcheck invocations which don't
> have added value over "checking that the distribution is complete" to
> call ensure_distcheck_, with this in defs.in:
>
> ensure_distcheck_ ()
> {
> if $MAKE --version -v | grep GNU; then
> $MAKE distcheck
> else
> :
> fi
> }
>
> (not turning the test result into a SKIP since this is not a major point
> of the test).
>
> Remains only the task to identify for which tests this is true.
>
Hmm... To me, this sounds an awful lot like sweeping the dirt under
the rug.
What about a more radical but IMHO more honest approach, to be implemented
in four steps:
[1] Clearly document in the manual that VPATH builds are expected to
work with GNU make only.
[2] Update AM_INIT_AUTOMAKE to make it complain(*) if it detects that
$MAKE is not GNU make but a VPATH build is being attempted. The
user should be allowed to override this check, obviously.
(*) With a warning or an error? Not sure yet, but it should be warning
in the next Automake version, not to suddenly disrupt backward
compatibility.
[3] Update "make distcheck" to attempt a VPATH build only with GNU make
(otherwise, an in-tree build should be attempted). Again, the user
should be allowed to easily force a VPATH build if he wants to. The
role/implementation of the "distcleancheck" target might be somewhat
complicated by this.
[4] Fix testsuite fallout, and update/extend the testsuite as
appropriate.
Opinions?
>
> Addressing (1) right may turn out to be more tricky: if there are files
> which are held open by some process, then that would probably be a bug
> in the test. Otherwise, I'm suspecting bugs in the NFS implementation.
> Maybe some of the clean rules are lacking '-' prefix (to ignore return
> status), but that should only be added for those rules where we really
> cannot miss an important failure (e.g., bug in the rule) that we must
> address.
>
This is a separate issue (and anyway I'm pretty ignorant about NFS), so
I'll leave it to another thread.
> Thanks,
> Ralf
>
Regards,
Stefano