mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 09:11:49 +00:00
7e7962dd1a
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>
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
# ==========================================================================
|
|
# Installing dtb files
|
|
#
|
|
# Installs all dtb files listed in $(dtb-y) either in the
|
|
# INSTALL_DTBS_PATH directory or the default location:
|
|
#
|
|
# $INSTALL_PATH/dtbs/$KERNELRELEASE
|
|
# ==========================================================================
|
|
|
|
src := $(obj)
|
|
|
|
PHONY := __dtbs_install
|
|
__dtbs_install:
|
|
|
|
export dtbinst_root ?= $(obj)
|
|
|
|
include include/config/auto.conf
|
|
include scripts/Kbuild.include
|
|
include $(src)/Makefile
|
|
|
|
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 $<
|
|
cmd_dtb_install = mkdir -p $(2); cp $< $(2)
|
|
|
|
install-dir = $(patsubst $(dtbinst_root)%,$(INSTALL_DTBS_PATH)%,$(obj))
|
|
|
|
$(dtbinst-files): %.dtb: $(obj)/%.dtb
|
|
$(call cmd,dtb_install,$(install-dir))
|
|
|
|
$(dtbinst-dirs):
|
|
$(Q)$(MAKE) $(dtbinst)=$(obj)/$@
|
|
|
|
PHONY += $(dtbinst-files) $(dtbinst-dirs)
|
|
__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
|
|
|
|
.PHONY: $(PHONY)
|