Re: [Regression] Docs build broken by commit 51e46c7a4007

From: Kees Cook
Date: Thu Feb 20 2020 - 15:05:27 EST


On Thu, Feb 20, 2020 at 07:50:47PM +0100, Rafael J. Wysocki wrote:
> On two of my systems the docs build has been broken by commit
> 51e46c7a4007 ("docs, parallelism: Rearrange how jobserver reservations
> are made").
>
> The symptom is that the build system complains about the "output"
> directory not being there and returns with an error.
>
> Reverting the problematic commit makes the problem go away.

How strange! This must be some race in the parallel build. AFAICT,
"output" is made in the first sub-target (Documentation/media). This
doesn't look entirely stable (there's no ordering implied by the "all"
target in there)...

Does this work for you?


diff --git a/Documentation/Makefile b/Documentation/Makefile
index d77bb607aea4..5654e087ae1e 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -62,7 +62,8 @@ loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit;
# e.g. "media" for the linux-tv book-set at ./Documentation/media

quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
- cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \
+ cmd_sphinx = mkdir -p $(abspath $(BUILDDIR)) && \
+ $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \
PYTHONDONTWRITEBYTECODE=1 \
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
$(PYTHON) $(srctree)/scripts/jobserver-exec \

--
Kees Cook