From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754321AbdKIMYR (ORCPT ); Thu, 9 Nov 2017 07:24:17 -0500 Received: from conssluserg-03.nifty.com ([210.131.2.82]:28524 "EHLO conssluserg-03.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754178AbdKIMYP (ORCPT ); Thu, 9 Nov 2017 07:24:15 -0500 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-03.nifty.com vA9CNtxC011770 X-Nifty-SrcIP: [209.85.161.179] X-Google-Smtp-Source: ABhQp+SIgzPa9gCYMaaWq34E8uliuepfdKG1xSVgUqgtZlIo5Xf/rSKKZMIx4gWMWP6OvaN+QwL5hNXrLstgEGWcpng= 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: Masahiro Yamada Date: Thu, 9 Nov 2017 21:23:14 +0900 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: James Hogan , Rob Herring Cc: 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 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? Thanks! > arch/mips/cavium-octeon/setup.o: In function `__octeon_is_model_runtime__': > /work/mips/linux/main/./arch/mips/include/asm/octeon/octeon-model.h:368: > undefined reference to `__dtb_octeon_3xxx_begin' > arch/mips/cavium-octeon/setup.o: In function `device_tree_init': > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1188: undefined > reference to `__dtb_octeon_3xxx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > > Thanks > James > > -- Best Regards Masahiro Yamada From mboxrd@z Thu Jan 1 00:00:00 1970 From: Masahiro Yamada Subject: Re: [PATCH 2/2] kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib Date: Thu, 9 Nov 2017 21:23:14 +0900 Message-ID: References: <1509859853-27473-1-git-send-email-yamada.masahiro@socionext.com> <1509859853-27473-3-git-send-email-yamada.masahiro@socionext.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: In-Reply-To: Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: James Hogan , Rob Herring Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.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 List-Id: devicetree@vger.kernel.org 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? Thanks! > arch/mips/cavium-octeon/setup.o: In function `__octeon_is_model_runtime__': > /work/mips/linux/main/./arch/mips/include/asm/octeon/octeon-model.h:368: > undefined reference to `__dtb_octeon_3xxx_begin' > arch/mips/cavium-octeon/setup.o: In function `device_tree_init': > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1188: undefined > reference to `__dtb_octeon_3xxx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > > Thanks > James > > -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 From: yamada.masahiro@socionext.com (Masahiro Yamada) Date: Thu, 9 Nov 2017 21:23:14 +0900 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 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? Thanks! > arch/mips/cavium-octeon/setup.o: In function `__octeon_is_model_runtime__': > /work/mips/linux/main/./arch/mips/include/asm/octeon/octeon-model.h:368: > undefined reference to `__dtb_octeon_3xxx_begin' > arch/mips/cavium-octeon/setup.o: In function `device_tree_init': > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1188: undefined > reference to `__dtb_octeon_3xxx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > /work/mips/linux/main/arch/mips/cavium-octeon/setup.c:1184: undefined > reference to `__dtb_octeon_68xx_begin' > > Thanks > James > > -- Best Regards Masahiro Yamada