@@ -173,8 +173,10 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
ld_flags = $(LDFLAGS) $(ldflags-y)
+DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes
+
dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \
- -I$(srctree)/scripts/dtc/include-prefixes \
+ $(addprefix -I,$(DTC_INCLUDE)) \
-undef -D__DTS__
# Finds the multi-part object the current object will be linked into
@@ -315,7 +317,7 @@ quiet_cmd_dtc = DTC $@
cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
$(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
$(DTC) -O dtb -o $@ -b 0 \
- -i $(dir $<) $(DTC_FLAGS) \
+ $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \
-d $(depfile).dtc.tmp $(dtc-tmp) ; \
cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
We had include/dt-bindings as an include path only for CPP, and this makes sense because header files in dt-bindings contain useful macros that parsed by pre-processor. Commit 4027494ae6e3 ("ARM: dts: add arm/arm64 include symlinks") and commit 0a6081b673bb ("arm64: dts: add arm/arm64 include symlinks") allow us cross-arch DT reference, but this is only available for CPP's include directives, like #include <arm/foo.dtsi> It makes as much sense to include DT from another architecture by DTC's builtin include directive, like /include/ "arm/foo.dtsi" To achieve this, scripts/dtc/include-prefixes should be passed to both CPP and DTC. I refactored Makefile.lib a bit to not repeat the same path. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- scripts/Makefile.lib | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)