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

From: Benjamin LaHaise
Date: Tue Feb 14 2006 - 23:07:28 EST


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?

-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/