https://git.savannah.gnu.org/cgit/automake.git/commit/?h=5d02285845acfc20a4900a471c0e7c5e2ff390a0 From 5d02285845acfc20a4900a471c0e7c5e2ff390a0 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 18 Jan 2022 04:47:09 -0500 Subject: [PATCH] build: fix race in parallel builds As reported by Hongxu Jia: > The automake-$(APIVERSION) is a hardlink of automake, if it is > created later than update_mans executing, there is a failure > [snip] > |: && mkdir -p doc && ./pre-inst-env /usr/bin/env perl ../automake-1.16.1/doc/help2man --output=doc/aclocal-1.16.1 aclocal-1.16 > |help2man: can't get `--help' info from aclocal-1.16 > |Try `--no-discard-stderr' if option outputs to stderr > Makefile:3693: recipe for target 'doc/aclocal-1.16.1' failed > [snip] > > The automake_script is required by update_mans and update_mans > invokes automake-$(APIVERSION) rather than automake to generate > doc, so we should assign `automake-$(APIVERSION)' to automake_script. > > The same reason to tweak aclocal_script. However, rather than update the _script variables to point to the hardlinked copies of the programs, we can have the help2man steps run the existing scripts directly. This makes the relationship a bit more explicit and avoids implicit dependencies on names. * doc/local.mk: Pass $(aclocal_script) and $(automake_script) to $(update_mans). * THANKS: Add Hongxu Jia. --- THANKS | 1 + doc/local.mk | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/local.mk b/doc/local.mk index a29363d2d71b..06c78823a574 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -46,9 +46,9 @@ update_mans = \ && echo ".so man1/$$f-$(APIVERSION).1" > $@ %D%/aclocal-$(APIVERSION).1: $(aclocal_script) lib/Automake/Config.pm - $(update_mans) aclocal-$(APIVERSION) + $(update_mans) $(aclocal_script) %D%/automake-$(APIVERSION).1: $(automake_script) lib/Automake/Config.pm - $(update_mans) automake-$(APIVERSION) + $(update_mans) $(automake_script) ## This target is not invoked as a dependency of anything. It exists ## merely to make checking the links in automake.texi (that is, -- 2.43.0