There is nothing arch specific about building dtb files other than their location under /arch/*/boot/dts/. Keeping each arch aligned is a pain. The dependencies and supported targets are all slightly different. Also, a cross-compiler for each arch is needed, but really the host compiler preprocessor is perfectly fine for building dtbs. Move the build rules to a common location and remove the arch specific ones. This is done in a single step to avoid warnings about overriding rules. The build dependencies had been a mixture of 'scripts' and/or 'prepare'. These pull in several dependencies some of which need a target compiler (specifically devicetable-offsets.h) and aren't needed to build dtbs. All that is really needed is dtc, so adjust the dependencies to only be dtc. This change enables support 'dtbs_install' on some arches which were missing the target.
Showing the changes to scripts (3 of 17 files). Show all
Unified · Split
| @@ -39,8 +39,7 @@ build_unifdef: $(obj)/unifdef · 38 unmodified lines | |||
| 39 | subdir-$(CONFIG_MODVERSIONS) += genksyms | 39 | subdir-$(CONFIG_MODVERSIONS) += genksyms |
| 40 | subdir-y += mod | 40 | subdir-y += mod |
| 41 | subdir-$(CONFIG_SECURITY_SELINUX) += selinux | 41 | subdir-$(CONFIG_SECURITY_SELINUX) += selinux |
| 42 | subdir-$(CONFIG_DTC) += dtc | ||
| 43 | subdir-$(CONFIG_GDB_SCRIPTS) += gdb | 42 | subdir-$(CONFIG_GDB_SCRIPTS) += gdb |
| 44 | 43 | ||
| 45 | # Let clean descend into subdirs | 44 | # Let clean descend into subdirs |
| 46 | subdir- += basic kconfig package gcc-plugins | 45 | subdir- += basic dtc kconfig package gcc-plugins |
| @@ -283,7 +283,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE · 282 unmodified lines | |||
| 283 | 283 | ||
| 284 | quiet_cmd_dtc = DTC $@ | 284 | quiet_cmd_dtc = DTC $@ |
| 285 | cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ | 285 | cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ |
| 286 | $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ | 286 | $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ |
| 287 | $(DTC) -O dtb -o $@ -b 0 \ | 287 | $(DTC) -O dtb -o $@ -b 0 \ |
| 288 | $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ | 288 | $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ |
| 289 | -d $(depfile).dtc.tmp $(dtc-tmp) ; \ | 289 | -d $(depfile).dtc.tmp $(dtc-tmp) ; \ |
| @@ -1,7 +1,7 @@ | |||
| 1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | # scripts/dtc makefile | 2 | # scripts/dtc makefile |
| 3 | 3 | ||
| 4 | hostprogs-y := dtc | 4 | hostprogs-$(CONFIG_DTC) := dtc |
| 5 | always := $(hostprogs-y) | 5 | always := $(hostprogs-y) |
| 6 | 6 | ||
| 7 | dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \ | 7 | dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \ |