[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Makefile: preserve --jobserver-auth argument when calling ni
From: |
Fiona Ebner |
Subject: |
Re: [PATCH] Makefile: preserve --jobserver-auth argument when calling ninja |
Date: |
Fri, 12 Apr 2024 13:52:44 +0200 |
User-agent: |
Mozilla Thunderbird |
Am 02.04.24 um 10:17 schrieb Martin Hundebøll:
> Qemu wraps its call to ninja in a Makefile. Since ninja, as opposed to
> make, utilizes all CPU cores by default, the qemu Makefile translates
> the absense of a `-jN` argument into `-j1`. This breaks jobserver
> functionality, so update the -jN mangling to take the --jobserver-auth
> argument into considerationa too.
>
> Signed-off-by: Martin Hundebøll <martin@geanix.com>
> ---
> Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 8f36990335..183756018f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -142,7 +142,7 @@ MAKE.k = $(findstring k,$(firstword $(filter-out
> --%,$(MAKEFLAGS))))
> MAKE.q = $(findstring q,$(firstword $(filter-out --%,$(MAKEFLAGS))))
> MAKE.nq = $(if $(word 2, $(MAKE.n) $(MAKE.q)),nq)
> NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if $(MAKE.k), -k0) \
> - $(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \
> + $(or $(filter -l% -j%, $(MAKEFLAGS)), $(if $(filter
> --jobserver-auth=%, $(MAKEFLAGS)),, -j1)) \
> -d keepdepfile
> ninja-cmd-goals = $(or $(MAKECMDGOALS), all)
> ninja-cmd-goals += $(foreach g, $(MAKECMDGOALS), $(.ninja-goals.$g))
Hi,
unfortunately, this patch breaks build when specifying just '-j' as a
make flag (i.e. without a number), because it will now end up being
passed to ninja:
> $ make -j
> changing dir to build for make ""...
> make[1]: Entering directory '/home/febner/repos/qemu/build'
> ninja: fatal: invalid -j parameter
Best Regards,
Fiona