dist: avoid $(distdir) removal failure on MSYS/MinGW
authorStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 11 Jan 2012 17:09:07 +0000 (18:09 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 13 Jan 2012 11:41:03 +0000 (12:41 +0100)
commitdfb5e52f5f52fda733f1a6d27680fc347ba17286
treeef0170ae1fe8c33c09f42b9e8f312cf587f11c5d
parent657eed2e1b1f2e0fac19f4c840b72a71ec6e1141
dist: avoid $(distdir) removal failure on MSYS/MinGW

This change fixes automake bug#10470.

On MSYS (1.0.17) it is not possible to remove a directory that is
in use, and this, together with timing issues, could cause spurious
failures in the cleanup code of the "distcheck" recipe.  In fact,
it should be noted that assuming a directory can be removed while
it the CWD of a running process is a POSIX violation:

  "If the directory is the root directory or the current working
   directory of any process, it is unspecified whether the function
   succeeds, or whether it shall fail and set errno to [EBUSY]."

* lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some
seconds and retry, to give potential "pending" processes some time
to exit and "release" the directory.
* tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'.

Report and suggestions by Peter Rosin and Eric Blake.
lib/am/distdir.am
tests/Makefile.am