This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: import move-if-change from gnulib (was: PATCH: PR binutils/12283: bfd/doc doesn't support parallel build)
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: Steve Ellcey <sje at cup dot hp dot com>, gcc-patches at gcc dot gnu dot org, Gerald Pfeifer <gerald at pfeifer dot com>
- Cc: binutils at sourceware dot org, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Fri, 28 Jan 2011 21:14:52 +0100
- Subject: PATCH: import move-if-change from gnulib (was: PATCH: PR binutils/12283: bfd/doc doesn't support parallel build)
- References: <AANLkTikAd7jWXN+2bi-OeR_-cQq7ivpSyVz+4165trVS@mail.gmail.com> <201101272357.p0RNvPZ13996@lucas.cup.hp.com>
[ adding gcc-patches ]
* Steve Ellcey wrote on Fri, Jan 28, 2011 at 12:57:25AM CET:
> I tried this patch and I think it works. Before patching I got:
>
> mv: cannot move `chew.13844' to `chew': Text file busy
> make[3]: *** [chew] Error 1
> make[2]: *** [bfdt.texi] Error 2
> make[2]: *** Waiting for unfinished jobs....
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [info-recursive] Error 1
> make: *** [all-bfd] Error 2
>
> After applying the patch and doing some builds, I still got the mv
> error message about 'cannot move' but the make did not fail.
Thank you for confirming this.
> Perhaps we should change move-if-needed to send the stderr of the mv
> -f to /dev/null like we do with cmpprog.
I don't think that it is generally useful to hide the error output:
in case of a full disk or a real write error, the message can provide
valuable help in diagnosing the cause. It can otherwise be very tricky
to analyze parallel build failures.
I have meanwhile added an improved and fixed version of my proposed
patch to the (more complete) gnulib copy of move-if-change. See here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/24860/focus=24865
I hereby propose to just import the gnulib copy into GCC and src,
http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/move-if-change
and document the change in status as below in patches to src/MAINTAINERS
and GCC www. (The Autoconf copy of move-if-change has been updated from
the gnulib one anyway.)
Any reasons against doing so?
Thanks,
Ralf
ChangeLog:
2011-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* MAINTAINERS (mkinstalldirs): Comes from Automake.
(move-if-change): Comes from gnulib.
diff --git a/MAINTAINERS b/MAINTAINERS
index a471c90..046c5ea 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -38,7 +38,7 @@ config.guess; config.sub; readline/support/config.{sub,guess}
binutils@sourceware.org
gdb-patches@sourceware.org
-depcomp
+depcomp; mkinstalldirs
Send bug reports and patches to bug-automake@gnu.org.
gdb/; readline/; sim/; GDB's part of include/
@@ -69,12 +69,8 @@ ltconfig; ltmain.sh; ltcf-*.sh
sources or submitted to the master file maintainer and brought
in via a merge.
-mkinstalldirs; move-if-change
- autoconf: http://gnu.org
- Patches to autoconf-patches@gnu.org.
- Changes need to be done in tandem with the official AUTOCONF
- sources or submitted to the master file maintainer and brought
- in via a merge.
+move-if-change
+ Send bug reports and patches to bug-gnulib@gnu.org.
symlink-tree
gcc: http://gcc.gnu.org
Index: codingconventions.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/codingconventions.html,v
retrieving revision 1.62
diff -u -r1.62 codingconventions.html
--- codingconventions.html 8 Jan 2011 12:12:42 -0000 1.62
+++ codingconventions.html 28 Jan 2011 20:13:41 -0000
@@ -490,6 +490,11 @@
symlink-tree and ylwrap: These are copied from mainline automake, using
<code>automake --add-missing --copy --force-missing</code>.</li>
+<li>move-if-change: gnulib hosts this now. The latest version can be
+retrieved from
+<a href="http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/move-if-change">http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/move-if-change</a>.
+</li>
+
<li>Top-level config.rpath: This comes originally from gettext, but
gnulib can be considered upstream. The latest version can be retrieved
from