kbuild: fix false-positive need-builtin calculation
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 6 Aug 2019 10:03:21 +0000 (19:03 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 9 Aug 2019 16:45:31 +0000 (01:45 +0900)
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.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/Makefile.build

index 0d434d0afc0bc81262afebdd069a1ccb30da9787..3fe0c73e002c7257a94fc7c9f2947ee8a566e05e 100644 (file)
@@ -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.
 # ---------------------------------------------------------------------------