On Mon, Nov 4, 2019 at 10:11 PM Marcel Holtmann <marcel(a)holtmann.org> wrote:
Hi Khem,
> This can cause a build race in a highly parallelised build where a
directory is not yet created but
> output file is being written using redirection e.g.
>
> rst2man.py --strict --no-raw --no-generator --no-datestamp <
../git/monitor/iwmon.rst > monitor/iwmon.1
> /bin/sh: monitor/iwmon.1: No such file or directory
> make[1]: *** [Makefile:3544: monitor/iwmon.1] Error 1
> ---
> Makefile.am | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 823b7d02..21dd707c 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -627,7 +627,7 @@ SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) &&
$(SED) \
>
> if RUN_RST2MAN
> RST2MAN_PROCESS = $(AM_V_GEN)$(RST2MAN) --strict --no-raw --no-generator
\
> - --no-datestamp < $< > $@
> + --no-datestamp
> else
> RST2MAN_PROCESS = $(AM_V_GEN)test -f $@ || \
> { echo "Generated manual page $@ does not exist"; false; }
so this is bad in case the else clause is used.
> @@ -637,13 +637,13 @@ endif
> $(SED_PROCESS)
>
> %.1: %.rst Makefile
> - $(RST2MAN_PROCESS)
> + $(RST2MAN_PROCESS) $< $@
>
> %.5: %.rst Makefile
> - $(RST2MAN_PROCESS)
> + $(RST2MAN_PROCESS) $< $@
>
> %.8: %.rst Makefile
> - $(RST2MAN_PROCESS)
> + $(RST2MAN_PROCESS) $< $@
Is adding this to the RST2MAN_PROCESS variable not working?
I think that will work fine I just moved it here for
Convenience I can move it back I think real race is that directory is not
created before a file inside the directory is being redirected to. This
happens when doing out of tree build so the directory is not pre existing
Regards
Marcel