summaryrefslogtreecommitdiffstats
path: root/scripts/Makefile.dtbinst
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2017-11-05 14:30:53 +0900
committerRob Herring <robh@kernel.org>2017-11-09 17:03:07 -0600
commit7e7962dd1a5307bca1793a3f9a98ad5514306c7a (patch)
treef864a54ad98215bb7408767d9d2e32690e925980 /scripts/Makefile.dtbinst
parent3cad14d56adbf7d621fc5a35db42f3acc0a2d6e8 (diff)
downloadlinux-7e7962dd1a5307bca1793a3f9a98ad5514306c7a.tar.gz
linux-7e7962dd1a5307bca1793a3f9a98ad5514306c7a.tar.bz2
linux-7e7962dd1a5307bca1793a3f9a98ad5514306c7a.zip
kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib
If CONFIG_OF_ALL_DTBS is enabled, "make ARCH=arm64 dtbs" compiles each DTB twice; one from arch/arm64/boot/dts/*/Makefile and the other from the dtb-$(CONFIG_OF_ALL_DTBS) line in arch/arm64/boot/dts/Makefile. It could be a race problem when building DTBS in parallel. Another minor issue is CONFIG_OF_ALL_DTBS covers only *.dts in vendor sub-directories, so this broke when Broadcom added one more hierarchy in arch/arm64/boot/dts/broadcom/<soc>/. One idea to fix the issues in a clean way is to move DTB handling to Kbuild core scripts. Makefile.dtbinst already recognizes dtb-y natively, so it should not hurt to do so. Add $(dtb-y) to extra-y, and $(dtb-) as well if CONFIG_OF_ALL_DTBS is enabled. All clutter things in Makefiles go away. As a bonus clean-up, I also removed dts-dirs. Just use subdir-y directly to traverse sub-directories. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Arnd Bergmann <arnd@arndb.de> [robh: corrected BUILTIN_DTB to CONFIG_BUILTIN_DTB] Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'scripts/Makefile.dtbinst')
-rw-r--r--scripts/Makefile.dtbinst6
1 files changed, 2 insertions, 4 deletions
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index 993fb85982df..8e8fdfdc92a0 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -5,8 +5,6 @@
# INSTALL_DTBS_PATH directory or the default location:
#
# $INSTALL_PATH/dtbs/$KERNELRELEASE
-#
-# Traverse through subdirectories listed in $(dts-dirs).
# ==========================================================================
src := $(obj)
@@ -20,8 +18,8 @@ include include/config/auto.conf
include scripts/Kbuild.include
include $(src)/Makefile
-dtbinst-files := $(dtb-y)
-dtbinst-dirs := $(dts-dirs)
+dtbinst-files := $(sort $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-)))
+dtbinst-dirs := $(subdir-y) $(subdir-m)
# Helper targets for Installing DTBs into the boot directory
quiet_cmd_dtb_install = INSTALL $<