Message ID | 1507733771-28177-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Accepted |
Commit | ecc9709fc12cc8e1a07b062d07cb8a5b296888d7 |
Headers | show |
Series | kbuild: fix dependency of DT build | expand |
On Wed, Oct 11, 2017 at 11:56:10PM +0900, Masahiro Yamada wrote: > I saw a DT build issue report some time before [1]. I was able to > reproduce the bug, and figure out the root cause. > > Since commit 6d427c6b1fa0 ("binman: Automatically include a U-Boot > .dtsi file"), invalid .*.cmd files are generated. > > Since that commit, DTS files are put into sed and piped to CPP. > Because CPP reads the stream from stdin, -Wp,-MD,$(depfile).pre.tmp > option generates a depfile with the target name "-". This is not > the format expected by fixdep. > > Use one more temporary file instead of using pipe. With this, deps_ > in the .*.cmd will be fixed. Having a temp file name in source_ is > odd, but it is unsed in the build system. Not a big deal. > > [1] https://lists.denx.de/pipermail/u-boot/2017-June/294451.html > > Fiexes: 6d427c6b1fa0 ("binman: Automatically include a U-Boot .dtsi file") > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Applied to u-boot/master, thanks! -- Tom
Hi Tom, > -----Original Message----- > > Fiexes: 6d427c6b1fa0 ("binman: Automatically include a U-Boot .dtsi > file") > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > > Applied to u-boot/master, thanks! > Could you fix my typo? Fiexes -> Fixes If it is too late, it if fine. Masahiro
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 861a3dc..0d5c529 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -175,7 +175,7 @@ u_boot_dtsi_options = $(wildcard $(dir $<)$(basename $(notdir $<))-u-boot.dtsi) # $(warning u_boot_dtsi_options: $(u_boot_dtsi_options)) # We use the first match -u_boot_dtsi = $(firstword $(u_boot_dtsi_options)) +u_boot_dtsi = $(notdir $(firstword $(u_boot_dtsi_options))) # Modified for U-Boot dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ @@ -308,9 +308,8 @@ quiet_cmd_dtc = DTC $@ # Modified for U-Boot # Bring in any U-Boot-specific include at the end of the file cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ - cat $< $(if $(u_boot_dtsi),\ - | sed "$$ a\#include \"$(u_boot_dtsi)\"") | \ - $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) - ; \ + (cat $<; $(if $(u_boot_dtsi),echo '\#include "$(u_boot_dtsi)"')) > $(pre-tmp); \ + $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $(pre-tmp) ; \ $(DTC) -O dtb -o $@ -b 0 \ -i $(dir $<) $(DTC_FLAGS) \ -d $(depfile).dtc.tmp $(dtc-tmp) ; \ @@ -319,6 +318,7 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ $(obj)/%.dtb: $(src)/%.dts FORCE $(call if_changed_dep,dtc) +pre-tmp = $(subst $(comma),_,$(dot-target).pre.tmp) dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) # DTCO
I saw a DT build issue report some time before [1]. I was able to reproduce the bug, and figure out the root cause. Since commit 6d427c6b1fa0 ("binman: Automatically include a U-Boot .dtsi file"), invalid .*.cmd files are generated. Since that commit, DTS files are put into sed and piped to CPP. Because CPP reads the stream from stdin, -Wp,-MD,$(depfile).pre.tmp option generates a depfile with the target name "-". This is not the format expected by fixdep. Use one more temporary file instead of using pipe. With this, deps_ in the .*.cmd will be fixed. Having a temp file name in source_ is odd, but it is unsed in the build system. Not a big deal. [1] https://lists.denx.de/pipermail/u-boot/2017-June/294451.html Fiexes: 6d427c6b1fa0 ("binman: Automatically include a U-Boot .dtsi file") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- Probably, I can fix this issue in an even cleaner way. But, U-Boot build system is a mirror of Linux. I generally improve Linux first, then import the outcome back to U-Boot. I will give it a try when I find some time. scripts/Makefile.lib | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)