Re: [PATCH v2 6/9] kbuild: consolidate Devicetree dtb build rules
From: Masahiro Yamada <hidden>
Date: 2018-09-07 16:48:32
Also in:
linux-arm-kernel, linux-kbuild, linux-mips, linuxppc-dev, lkml
Hi Rob, 2018-09-07 21:17 GMT+09:00 Rob Herring [off-list ref]:
On Fri, Sep 7, 2018 at 5:33 AM Masahiro Yamada [off-list ref] wrote:quoted
2018-09-06 8:53 GMT+09:00 Rob Herring [off-list ref]:quoted
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. Cc: Masahiro Yamada <redacted> Cc: Michal Marek <redacted> Cc: Vineet Gupta <redacted> Cc: Russell King <linux@armlinux.org.uk> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <redacted> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Michal Simek <monstr@monstr.eu> Cc: Ralf Baechle <redacted> Cc: Paul Burton <redacted> Cc: James Hogan <jhogan@kernel.org> Cc: Ley Foon Tan <redacted> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <redacted> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Chris Zankel <chris@zankel.net> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: linux-kbuild@vger.kernel.org Cc: linux-snps-arc@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: uclinux-h8-devel@lists.sourceforge.jp Cc: linux-mips@linux-mips.org Cc: nios2-dev@lists.rocketboards.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-xtensa@linux-xtensa.org Signed-off-by: Rob Herring <robh@kernel.org> --- Please ack so I can take the whole series via the DT tree. v2: - Fix $arch/boot/dts path check for out of tree builds - Fix dtc dependency for building built-in dtbs - Fix microblaze built-in dtb buildingThis breaks parallel building because two threads could descend into scripts/dtc at the same time. 'all' depends on both 'scripts' and 'dtc'. * 'scripts' target -- descends into scripts/, then scripts/dtc * 'dtc' target -- descents into scripts/dtc directlyAny suggestions for how to fix given the problem with depending on scripts? I suppose I could make scripts depend on dtc instead, but I'd be back to needing to fix cleaning.
How about making 'prepare' depend on 'dtc'? Then, remove subdir-$(CONFIG_DTC) += dtc from scripts/Makefile but, add dtc to subdir-
Or I could just skip removing the cross compiler dependency for now.
I want to build scripts/ without target compiler. modpost is a special host-program that depends on $(CC). I will take a look at it when I find some time. -- Best Regards Masahiro Yamada