Re: kbuild: fix make -jN with multiple targets with O=...

From: Andrew Morton
Date: Tue Feb 14 2006 - 23:12:00 EST


Benjamin LaHaise <bcrl@xxxxxxxxx> wrote:
>
> Hello folks,
>
> This patch causes a ~95% increase in build time for the kernel. Before:
> 4m21s after: 8m1.403s. Can we revert this until another approach is found?
>

Yowch. Is that with a regular old build-in-place, or is it specific to
out-of-tree builds, or what?


> -ben
>
> On Mon, Jan 16, 2006 at 09:10:55PM -0800, Linux Kernel Mailing List wrote:
> tree b918bb866edc339d51b2b71176265f6d424600e7
> parent 60f33b80443a3e7e79e2a3ddc625ab6246a61d3d
> author Sam Ravnborg <sam@xxxxxxxxxxxxxxxxx> Sun, 15 Jan 2006 20:02:31 +0100
> committer Sam Ravnborg <sam@xxxxxxxxxxxxxxxxx> Sun, 15 Jan 2006 20:02:31 +0100
>
> kbuild: fix make -jN with multiple targets with O=...
>
> The way multiple targets was handled with make O=...
> broke because for each high-level target make spawned
> a parallel make resulting in a broken build.
> Reported by Keith Owens <kaos@xxxxxxxxxx>
>
> Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
>
> Makefile | 7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index deedaf7..b3dd9db 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -106,12 +106,13 @@ KBUILD_OUTPUT := $(shell cd $(KBUILD_OUT
> $(if $(KBUILD_OUTPUT),, \
> $(error output directory "$(saved-output)" does not exist))
>
> -.PHONY: $(MAKECMDGOALS)
> +.PHONY: $(MAKECMDGOALS) cdbuilddir
> +$(MAKECMDGOALS) _all: cdbuilddir
>
> -$(filter-out _all,$(MAKECMDGOALS)) _all:
> +cdbuilddir:
> $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
> KBUILD_SRC=$(CURDIR) \
> - KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile $@
> + KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile $(MAKECMDGOALS)
>
> # Leave processing to above invocation of make
> skip-makefile := 1
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/