From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755042AbdKIUlU (ORCPT ); Thu, 9 Nov 2017 15:41:20 -0500 Received: from mail.kernel.org ([198.145.29.99]:41736 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754671AbdKIUfA (ORCPT ); Thu, 9 Nov 2017 15:35:00 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 004B621993 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=robh+dt@kernel.org X-Google-Smtp-Source: AGs4zMbWnNgViTtxuDSim+Swa52BZ0Y+IptsMet7B609myZnwzxgZA8EQ4SnpbuPNfXVUqWyL3BIB3eBEKEHVhlcERg= MIME-Version: 1.0 In-Reply-To: References: <1509859853-27473-1-git-send-email-yamada.masahiro@socionext.com> <1509859853-27473-3-git-send-email-yamada.masahiro@socionext.com> From: Rob Herring Date: Thu, 9 Nov 2017 14:34:38 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib To: Masahiro Yamada Cc: James Hogan , "devicetree@vger.kernel.org" , Linux Kbuild mailing list , Mark Rutland , Pantelis Antoniou , ARM Kernel List , Arnd Bergmann , LKML , Michal Marek , Sam Ravnborg , Linux MIPS Mailing List , Ralf Baechle , David Daney , James Hogan , Linux-Next Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 9, 2017 at 6:23 AM, Masahiro Yamada wrote: > Hi James, > > > 2017-11-09 21:19 GMT+09:00 James Hogan : >> (resend using a working From address) >> >> wrote: >>> If CONFIG_OF_ALL_DTBS is enabled, "make ARCH=arm64 dtbs" compiles each >>> DTB twice; one from arch/arm64/boot/dts/*/Makefile and the other from >>> the dtb-$(CONFIG_OF_ALL_DTBS) line in arch/arm64/boot/dts/Makefile. >>> It could be a race problem when building DTBS in parallel. >>> >>> Another minor issue is CONFIG_OF_ALL_DTBS covers only *.dts in vendor >>> sub-directories, so this broke when Broadcom added one more hierarchy >>> in arch/arm64/boot/dts/broadcom//. >>> >>> One idea to fix the issues in a clean way is to move DTB handling >>> to Kbuild core scripts. Makefile.dtbinst already recognizes dtb-y >>> natively, so it should not hurt to do so. >>> >>> Add $(dtb-y) to extra-y, and $(dtb-) as well if CONFIG_OF_ALL_DTBS is >>> enabled. All clutter things in Makefiles go away. >>> >>> As a bonus clean-up, I also removed dts-dirs. Just use subdir-y >>> directly to traverse sub-directories. >>> >>> Signed-off-by: Masahiro Yamada >> >> ... >> >>> diff --git a/arch/mips/boot/dts/Makefile b/arch/mips/boot/dts/Makefile >>> index 7891ffa..b2b0d88 100644 >>> --- a/arch/mips/boot/dts/Makefile >>> +++ b/arch/mips/boot/dts/Makefile >>> @@ -1,20 +1,14 @@ >>> -dts-dirs += brcm >>> -dts-dirs += cavium-octeon >>> -dts-dirs += img >>> -dts-dirs += ingenic >>> -dts-dirs += lantiq >>> -dts-dirs += mti >>> -dts-dirs += netlogic >>> -dts-dirs += ni >>> -dts-dirs += pic32 >>> -dts-dirs += qca >>> -dts-dirs += ralink >>> -dts-dirs += xilfpga >>> +subdir-y += brcm >>> +subdir-y += cavium-octeon >>> +subdir-y += img >>> +subdir-y += ingenic >>> +subdir-y += lantiq >>> +subdir-y += mti >>> +subdir-y += netlogic >>> +subdir-y += ni >>> +subdir-y += pic32 >>> +subdir-y += qca >>> +subdir-y += ralink >>> +subdir-y += xilfpga >>> >>> -obj-y := $(addsuffix /, $(dts-dirs)) >>> - >>> -dtstree := $(srctree)/$(src) >>> -dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(foreach d,$(dts-dirs), $(wildcard $(dtstree)/$(d)/*.dts))) >>> - >>> -always := $(dtb-y) >>> -subdir-y := $(dts-dirs) >>> +obj-$(BUILTIN_DTB) := $(addsuffix /, $(subdir-y)) >> >> I wonder if that should be CONFIG_BUILTIN_DTB? >> >> This is causing failures in linux-next with MIPS >> cavium_octeon_defconfig like below, and changing this line to >> CONFIG_BUILTIN_DTB seems to fix it. > > Good catch! > > > Rob, > Can you fix it to CONFIG_BUILTIN_DTB? Fixed. Rob From mboxrd@z Thu Jan 1 00:00:00 1970 From: robh+dt@kernel.org (Rob Herring) Date: Thu, 9 Nov 2017 14:34:38 -0600 Subject: [PATCH 2/2] kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib In-Reply-To: References: <1509859853-27473-1-git-send-email-yamada.masahiro@socionext.com> <1509859853-27473-3-git-send-email-yamada.masahiro@socionext.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, Nov 9, 2017 at 6:23 AM, Masahiro Yamada wrote: > Hi James, > > > 2017-11-09 21:19 GMT+09:00 James Hogan : >> (resend using a working From address) >> >> wrote: >>> If CONFIG_OF_ALL_DTBS is enabled, "make ARCH=arm64 dtbs" compiles each >>> DTB twice; one from arch/arm64/boot/dts/*/Makefile and the other from >>> the dtb-$(CONFIG_OF_ALL_DTBS) line in arch/arm64/boot/dts/Makefile. >>> It could be a race problem when building DTBS in parallel. >>> >>> Another minor issue is CONFIG_OF_ALL_DTBS covers only *.dts in vendor >>> sub-directories, so this broke when Broadcom added one more hierarchy >>> in arch/arm64/boot/dts/broadcom//. >>> >>> One idea to fix the issues in a clean way is to move DTB handling >>> to Kbuild core scripts. Makefile.dtbinst already recognizes dtb-y >>> natively, so it should not hurt to do so. >>> >>> Add $(dtb-y) to extra-y, and $(dtb-) as well if CONFIG_OF_ALL_DTBS is >>> enabled. All clutter things in Makefiles go away. >>> >>> As a bonus clean-up, I also removed dts-dirs. Just use subdir-y >>> directly to traverse sub-directories. >>> >>> Signed-off-by: Masahiro Yamada >> >> ... >> >>> diff --git a/arch/mips/boot/dts/Makefile b/arch/mips/boot/dts/Makefile >>> index 7891ffa..b2b0d88 100644 >>> --- a/arch/mips/boot/dts/Makefile >>> +++ b/arch/mips/boot/dts/Makefile >>> @@ -1,20 +1,14 @@ >>> -dts-dirs += brcm >>> -dts-dirs += cavium-octeon >>> -dts-dirs += img >>> -dts-dirs += ingenic >>> -dts-dirs += lantiq >>> -dts-dirs += mti >>> -dts-dirs += netlogic >>> -dts-dirs += ni >>> -dts-dirs += pic32 >>> -dts-dirs += qca >>> -dts-dirs += ralink >>> -dts-dirs += xilfpga >>> +subdir-y += brcm >>> +subdir-y += cavium-octeon >>> +subdir-y += img >>> +subdir-y += ingenic >>> +subdir-y += lantiq >>> +subdir-y += mti >>> +subdir-y += netlogic >>> +subdir-y += ni >>> +subdir-y += pic32 >>> +subdir-y += qca >>> +subdir-y += ralink >>> +subdir-y += xilfpga >>> >>> -obj-y := $(addsuffix /, $(dts-dirs)) >>> - >>> -dtstree := $(srctree)/$(src) >>> -dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(foreach d,$(dts-dirs), $(wildcard $(dtstree)/$(d)/*.dts))) >>> - >>> -always := $(dtb-y) >>> -subdir-y := $(dts-dirs) >>> +obj-$(BUILTIN_DTB) := $(addsuffix /, $(subdir-y)) >> >> I wonder if that should be CONFIG_BUILTIN_DTB? >> >> This is causing failures in linux-next with MIPS >> cavium_octeon_defconfig like below, and changing this line to >> CONFIG_BUILTIN_DTB seems to fix it. > > Good catch! > > > Rob, > Can you fix it to CONFIG_BUILTIN_DTB? Fixed. Rob