automake
[Top][All Lists]
Advanced

[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



reply via email to

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