From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com ([217.140.101.70]:58560 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753553AbbCQKd4 (ORCPT ); Tue, 17 Mar 2015 06:33:56 -0400 Date: Tue, 17 Mar 2015 10:33:51 +0000 From: Will Deacon Subject: Re: [PATCH] kbuild: Create directory for target DTB Message-ID: <20150317103351.GC1839@arm.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Michal Simek Cc: "linux-kernel@vger.kernel.org" , "monstr@monstr.eu" , Zach Pfeffer , Nathan Rossi , Arnd Bergmann , Catalin Marinas , Nathan Rossi , Michal Marek , "linux-kbuild@vger.kernel.org" On Thu, Mar 05, 2015 at 01:38:41PM +0000, Michal Simek wrote: > From: Nathan Rossi > > When building specific DTBs out of the kernel tree the vendor subdirs > (boot/dts/) are not created, ensure that they are before > building the DTB. > > Signed-off-by: Nathan Rossi > Signed-off-by: Michal Simek > --- > > Problem is visible with arm64 for out of tree builds. > make O=/tmp/kkk/ defconfig > make O=/tmp/kkk/ cavium/thunder-88xx.dtb > > DTC arch/arm64/boot/dts/cavium/thunder-88xx.dtb > cc1: fatal error: opening output file > arch/arm64/boot/dts/cavium/.thunder-88xx.dtb.dts.tmp: No such file or > directory > compilation terminated. > make[2]: *** [arch/arm64/boot/dts/cavium/thunder-88xx.dtb] Error 1 > make[1]: *** [cavium/thunder-88xx.dtb] Error 2 > > Building specific dtb target on arm32 is working fine > make O=/tmp/kkk4/ multi_v7_defconfig > make O=/tmp/kkk4/ zynq-zc702.dtb > > This is the way how Yocto is building dtb for specific target. > --- > scripts/Makefile.lib | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 044eb4f89a91..6e3356005ec4 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -282,7 +282,8 @@ $(obj)/%.dtb.S: $(obj)/%.dtb > $(call cmd,dt_S_dtb) > > quiet_cmd_dtc = DTC $@ > -cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ > +cmd_dtc = mkdir -p `dirname ${dtc-tmp}` ; \ The backticks are fairly gross here, can you use something like $(dir ${dtc-tmp}) instead? Will