All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <yamada.masahiro@socionext.com>
To: James Hogan <james@albanarts.com>, Rob Herring <robh+dt@kernel.org>
Cc: devicetree@vger.kernel.org,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Pantelis Antoniou <pantelis.antoniou@konsulko.com>,
	ARM Kernel List <linux-arm-kernel@lists.infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Michal Marek <michal.lkml@markovi.net>,
	Sam Ravnborg <sam@ravnborg.org>,
	Linux MIPS Mailing List <linux-mips@linux-mips.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	David Daney <david.daney@cavium.com>,
	James Hogan <james.hogan@mips.com>,
	Linux-Next Mailing List <linux-next@vger.kernel.org>
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	[thread overview]
Message-ID: <CAK7LNAT-3yBTFqnFECbGzSHRUiaG38b0BG3_3ouRAZRTF+iiDQ@mail.gmail.com> (raw)
In-Reply-To: <CAAG0J99envT6gtM6tHdTvetrHr0itX1dexkuWSU=u1c5UTLE1A@mail.gmail.com>

Hi James,


2017-11-09 21:19 GMT+09:00 James Hogan <james@albanarts.com>:
> (resend using a working From address)
>
> <yamada.masahiro@socionext.com> 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/<soc>/.
>>
>> 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 <yamada.masahiro@socionext.com>
>
>  ...
>
>> 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

WARNING: multiple messages have this Message-ID (diff)
From: Masahiro Yamada <yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org>
To: James Hogan <james-IP01RNCDaiKakBO8gow8eQ@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Linux Kbuild mailing list
	<linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Pantelis Antoniou
	<pantelis.antoniou-OWPKS81ov/FWk0Htik3J/w@public.gmane.org>,
	ARM Kernel List
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Michal Marek
	<michal.lkml-yyZNWGI4GtDR7s880joybQ@public.gmane.org>,
	Sam Ravnborg <sam-uyr5N9Q2VtJg9hUCZPvPmw@public.gmane.org>,
	Linux MIPS Mailing List
	<linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org>,
	Ralf Baechle <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org>,
	David Daney <david.daney-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
	James Hogan <james.hogan-8NJIiSa5LzA@public.gmane.org>,
	Linux-Next Mailing List
	<linux-next-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
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	[thread overview]
Message-ID: <CAK7LNAT-3yBTFqnFECbGzSHRUiaG38b0BG3_3ouRAZRTF+iiDQ@mail.gmail.com> (raw)
In-Reply-To: <CAAG0J99envT6gtM6tHdTvetrHr0itX1dexkuWSU=u1c5UTLE1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi James,


2017-11-09 21:19 GMT+09:00 James Hogan <james-IP01RNCDaiKakBO8gow8eQ@public.gmane.org>:
> (resend using a working From address)
>
> <yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org> 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/<soc>/.
>>
>> 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 <yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org>
>
>  ...
>
>> 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

WARNING: multiple messages have this Message-ID (diff)
From: yamada.masahiro@socionext.com (Masahiro Yamada)
To: linux-arm-kernel@lists.infradead.org
Subject: [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	[thread overview]
Message-ID: <CAK7LNAT-3yBTFqnFECbGzSHRUiaG38b0BG3_3ouRAZRTF+iiDQ@mail.gmail.com> (raw)
In-Reply-To: <CAAG0J99envT6gtM6tHdTvetrHr0itX1dexkuWSU=u1c5UTLE1A@mail.gmail.com>

Hi James,


2017-11-09 21:19 GMT+09:00 James Hogan <james@albanarts.com>:
> (resend using a working From address)
>
> <yamada.masahiro@socionext.com> 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/<soc>/.
>>
>> 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 <yamada.masahiro@socionext.com>
>
>  ...
>
>> 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

  reply	other threads:[~2017-11-09 12:24 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-05  5:30 [PATCH 0/2] kbuild: move dtb-y and CONFIG_OF_ALL_DTBS to Kbuild core to fix some issues Masahiro Yamada
2017-11-05  5:30 ` Masahiro Yamada
2017-11-05  5:30 ` Masahiro Yamada
2017-11-05  5:30 ` [PATCH 1/2] MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry Masahiro Yamada
2017-11-05  5:30   ` Masahiro Yamada
2017-11-05 14:11   ` Masahiro Yamada
2017-11-05 14:11     ` Masahiro Yamada
2017-11-06 10:41     ` James Hogan
2017-11-06 10:41       ` James Hogan
2017-11-06 10:41       ` James Hogan
2017-11-06 11:00       ` Masahiro Yamada
2017-11-06 11:00         ` Masahiro Yamada
2017-11-08 16:51         ` Rob Herring
2017-11-08 16:51           ` Rob Herring
2017-11-09  0:11           ` Masahiro Yamada
2017-11-09  0:11             ` Masahiro Yamada
2017-11-09  0:38             ` Masahiro Yamada
2017-11-09  0:38               ` Masahiro Yamada
2017-11-09  0:38               ` Masahiro Yamada
2017-11-09 23:06               ` Rob Herring
2017-11-09 23:06                 ` Rob Herring
2017-11-09 23:06                 ` Rob Herring
2017-11-09  8:06         ` James Hogan
2017-11-09  8:06           ` James Hogan
2017-11-09  8:06           ` James Hogan
2017-11-09  8:06           ` James Hogan
2017-11-05  5:30 ` [PATCH 2/2] kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib Masahiro Yamada
2017-11-05  5:30   ` Masahiro Yamada
2017-11-05  8:39   ` Sam Ravnborg
2017-11-05  8:39     ` Sam Ravnborg
2017-11-05 13:49   ` Arnd Bergmann
2017-11-05 13:49     ` Arnd Bergmann
2017-11-05 13:49     ` Arnd Bergmann
2017-11-08 17:23     ` Rob Herring
2017-11-08 17:23       ` Rob Herring
2017-11-08 17:23       ` Rob Herring
     [not found]   ` <CAAG0J98rRS+Sw8k_87gmTqYdNWByk=9zWVbWnC348vd63H4N9w@mail.gmail.com>
2017-11-09 12:19     ` James Hogan
2017-11-09 12:19       ` James Hogan
2017-11-09 12:19       ` James Hogan
2017-11-09 12:23       ` Masahiro Yamada [this message]
2017-11-09 12:23         ` Masahiro Yamada
2017-11-09 12:23         ` Masahiro Yamada
2017-11-09 20:34         ` Rob Herring
2017-11-09 20:34           ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK7LNAT-3yBTFqnFECbGzSHRUiaG38b0BG3_3ouRAZRTF+iiDQ@mail.gmail.com \
    --to=yamada.masahiro@socionext.com \
    --cc=arnd@arndb.de \
    --cc=david.daney@cavium.com \
    --cc=devicetree@vger.kernel.org \
    --cc=james.hogan@mips.com \
    --cc=james@albanarts.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-next@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=michal.lkml@markovi.net \
    --cc=pantelis.antoniou@konsulko.com \
    --cc=ralf@linux-mips.org \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.