Re: [PATCH] Documentation/Makefile: remove cmd-list.made before redirecting to it.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:27
David Kastrup [off-list ref] writes:
quoted hunk
If cmd-list.made has been created by a previous run as root, output redirection to it will fail. So remove it before regeneration. Signed-off-by: David Kastrup <redacted> --- Documentation/Makefile | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)diff --git a/Documentation/Makefile b/Documentation/Makefile index 97ee067..120e7c0 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile@@ -120,6 +120,7 @@ $(cmds_txt): cmd-list.made cmd-list.made: cmd-list.perl $(MAN1_TXT) perl ./cmd-list.perl + $(RM) $@ date >$@ git.7 git.html: git.txt core-intro.txt
Although I understand that it would be a problem if you built as root earlier, which would have left files unmodifyable by you, I think this is getting out of hand. The cmd-list.perl script itself, for example, does "creat in $out+, if the contents have changed from the last round then rename $out+ to $out" sequence in order to avoid unnecessary rebuild of files that depend on the generated command list. If it is interrupted in the middle while running as root, and then you try to do another build, I suspect "creat in $out+" part would fail. Maybe you can simply recover from such an error with a "make clean"? Also I'd prefer $(RM) before actually running the command to generate the list, but that is just the matter of taste.