Commit 1cacc9ab authored by Sam Ravnborg's avatar Sam Ravnborg Committed by Sam Ravnborg

kbuild: fix building with redirected output.

Jan Altenberg <jan.altenberg@linutronix.de> reported that
building with redirected input like this failed:
make O=dir oldconfig bzImage < /dev/null

The problem were caused by a make silentoldconfig being
run before oldconfig and with a non-recent .config the build
failed because silentoldconfig requires non-redirected stdin.

Silentoldconfig was run as a side-effect of having the
top-level Makefile re-made by make.
Introducing an empty rule for the top-level Makefile
(and Kbuild.include) fixed the issue.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent 94545bad
...@@ -108,6 +108,9 @@ endif ...@@ -108,6 +108,9 @@ endif
PHONY := _all PHONY := _all
_all: _all:
# Cancel implicit rules on top Makefile
$(CURDIR)/Makefile Makefile: ;
ifneq ($(KBUILD_OUTPUT),) ifneq ($(KBUILD_OUTPUT),)
# Invoke a second make in the output directory, passing relevant variables # Invoke a second make in the output directory, passing relevant variables
# check that the output directory actually exists # check that the output directory actually exists
...@@ -121,7 +124,7 @@ $(if $(filter-out $(KBUILD_OUTPUT),$(shell /bin/pwd)),, \ ...@@ -121,7 +124,7 @@ $(if $(filter-out $(KBUILD_OUTPUT),$(shell /bin/pwd)),, \
PHONY += $(MAKECMDGOALS) sub-make PHONY += $(MAKECMDGOALS) sub-make
$(filter-out _all sub-make,$(MAKECMDGOALS)) _all: sub-make $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
$(Q)@: $(Q)@:
sub-make: FORCE sub-make: FORCE
...@@ -291,7 +294,8 @@ export quiet Q KBUILD_VERBOSE ...@@ -291,7 +294,8 @@ export quiet Q KBUILD_VERBOSE
# Look for make include files relative to root of kernel src # Look for make include files relative to root of kernel src
MAKEFLAGS += --include-dir=$(srctree) MAKEFLAGS += --include-dir=$(srctree)
# We need some generic definitions. # We need some generic definitions (do not try to remake the file).
$(srctree)/scripts/Kbuild.include: ;
include $(srctree)/scripts/Kbuild.include include $(srctree)/scripts/Kbuild.include
# Make variables (CC, etc...) # Make variables (CC, etc...)
...@@ -1560,9 +1564,6 @@ endif # skip-makefile ...@@ -1560,9 +1564,6 @@ endif # skip-makefile
PHONY += FORCE PHONY += FORCE
FORCE: FORCE:
# Cancel implicit rules on top Makefile, `-rR' will apply to sub-makes.
Makefile: ;
# Declare the contents of the .PHONY variable as phony. We keep that # Declare the contents of the .PHONY variable as phony. We keep that
# information in a variable se we can use it in if_changed and friends. # information in a variable se we can use it in if_changed and friends.
.PHONY: $(PHONY) .PHONY: $(PHONY)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment