[PATCH 1/3] kbuild: fix false-positive need-builtin

From: Masahiro Yamada
Date: Tue Aug 06 2019 - 06:03:48 EST


The current implementation of need-builtin is false-positive,
for example, in the following Makefile:

obj-m := foo/
obj-y := foo/bar/

..., where foo/built-in.a is not required.

Fixes: f7adc3124da0 ("kbuild: create built-in.o automatically if parent directory wants it")
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
---

scripts/Makefile.build | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 0d434d0afc0b..3fe0c73e002c 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -487,7 +487,8 @@ targets += $(call intermediate_targets, .asn1.o, .asn1.c .asn1.h) \

PHONY += $(subdir-ym)
$(subdir-ym):
- $(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1)
+ $(Q)$(MAKE) $(build)=$@ \
+ need-builtin=$(if $(filter $@/built-in.a, $(subdir-obj-y)),1)

# Add FORCE to the prequisites of a target to force it to be always rebuilt.
# ---------------------------------------------------------------------------
--
2.17.1