All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frank Rowand <frowand.list@gmail.com>
To: Masahiro Yamada <masahiroy@kernel.org>,
	Alexandre Torgue <alexandre.torgue@st.com>
Cc: Rob Herring <robh+dt@kernel.org>,
	Michal Marek <michal.lkml@markovi.net>,
	David Gibson <david@gibson.dropbear.id.au>,
	Simon Glass <sjg@chromium.org>, DTML <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Devicetree Compiler <devicetree-compiler@vger.kernel.org>,
	Ian Lepore <ian@freebsd.org>
Subject: Re: [RFC PATCH v2 1/4] scripts: Add script to generate dtb build information
Date: Wed, 26 Feb 2020 10:38:40 -0600	[thread overview]
Message-ID: <e0b65cba-6e37-8937-897d-ae82973f34e8@gmail.com> (raw)
In-Reply-To: <CAK7LNATmJN-U2GNe2Qd7fS=h5URswe=aFgVJRaBTZt7pi374wg@mail.gmail.com>

Hi Alexandre,

On 2/24/20 11:45 AM, Masahiro Yamada wrote:
> Hi.
> 
> On Sat, Feb 22, 2020 at 1:12 AM Alexandre Torgue
> <alexandre.torgue@st.com> wrote:
>>
>> This commit adds a new script to create a file (in dts file directory) with
>> some information (date, Linux version, user). This file could then be used
>> to populate "build-info" property in every dts file that would use this
>> build information:
>>
>> Example:
>>
>> / {
>>         ...
>>         build-info = /incbin/("dtb-build.txt");
>>         ...
>> };
>>
>> Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
>>
>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>> index bae62549e3d2..a5af84ef4ffc 100644
>> --- a/scripts/Makefile.lib
>> +++ b/scripts/Makefile.lib
>> @@ -246,6 +246,7 @@ quiet_cmd_gzip = GZIP    $@
>>  # DTC
>>  # ---------------------------------------------------------------------------
>>  DTC ?= $(objtree)/scripts/dtc/dtc
>> +DTB_GEN_INFO ?= $(objtree)/scripts/gen_dtb_build_info.sh
>>
>>  # Disable noisy checks by default
>>  ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),)
>> @@ -286,6 +287,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE
>>
>>  quiet_cmd_dtc = DTC     $@
>>  cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
>> +       $(DTB_GEN_INFO) $(src) ; \
>>         $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
>>         $(DTC) -O $(2) -o $@ -b 0 \
>>                 $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \
>> diff --git a/scripts/gen_dtb_build_info.sh b/scripts/gen_dtb_build_info.sh
>> new file mode 100755
>> index 000000000000..0cd8bd98e410
>> --- /dev/null
>> +++ b/scripts/gen_dtb_build_info.sh
>> @@ -0,0 +1,10 @@
>> +#!/bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +
>> +set -o nounset
>> +
>> +DTB_DIR=$1
>> +DTB_COMPILE_BY=$(whoami | sed 's/\\/\\\\/')
>> +DTB_INFO="From Linux $KERNELRELEASE by $DTB_COMPILE_BY the $(date).\0"
>> +
>> +printf "$DTB_INFO" > "$DTB_DIR/dtb-build.txt"
>> --
>> 2.17.1
>>
> 
> 
> There are more than 1000 *.dts files
> in arch/arm/boot/dts/.
> 
> So, with this patch, the build system will creates
> arch/arm/boot/dts/dtb-build.txt 1000 times.
> 
> 
> Does it work with parallel build ?
> 
> Think about what would happen
> with 'make -j32 ARCH=arm  dtbs'
> 
> 
> The 32 threads will write to
> arch/arm/boot/dts/dtb-build.txt
> at the same time.
> 
> Then, some of DTB would very likely to
> include the broken dtb-build.txt
> 
> 
> A list of missing parts in this approach:
> 
>  - make it work with parallel build
>  - clean it up with 'make clean'
>  - add it .gitignore  (and Documentation/dontdiff)
> 
> 
> 

You might be able to rework script 'version_dtb_increment_once' from my
previous attempt at this concept.  I do not know if the build system
has changed since 2015 in a way that would make the script incorrect
or if it is still valid.

https://lore.kernel.org/linux-arm-kernel/550A44A8.9090302@gmail.com/

-Frank

WARNING: multiple messages have this Message-ID (diff)
From: Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Masahiro Yamada
	<masahiroy-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Alexandre Torgue <alexandre.torgue-qxv4g6HH51o@public.gmane.org>
Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Michal Marek
	<michal.lkml-yyZNWGI4GtDR7s880joybQ@public.gmane.org>,
	David Gibson
	<david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>,
	Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	DTML <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux Kbuild mailing list
	<linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Devicetree Compiler
	<devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Ian Lepore <ian-h+KGxgPPiopAfugRpC6u6w@public.gmane.org>
Subject: Re: [RFC PATCH v2 1/4] scripts: Add script to generate dtb build information
Date: Wed, 26 Feb 2020 10:38:40 -0600	[thread overview]
Message-ID: <e0b65cba-6e37-8937-897d-ae82973f34e8@gmail.com> (raw)
In-Reply-To: <CAK7LNATmJN-U2GNe2Qd7fS=h5URswe=aFgVJRaBTZt7pi374wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi Alexandre,

On 2/24/20 11:45 AM, Masahiro Yamada wrote:
> Hi.
> 
> On Sat, Feb 22, 2020 at 1:12 AM Alexandre Torgue
> <alexandre.torgue-qxv4g6HH51o@public.gmane.org> wrote:
>>
>> This commit adds a new script to create a file (in dts file directory) with
>> some information (date, Linux version, user). This file could then be used
>> to populate "build-info" property in every dts file that would use this
>> build information:
>>
>> Example:
>>
>> / {
>>         ...
>>         build-info = /incbin/("dtb-build.txt");
>>         ...
>> };
>>
>> Signed-off-by: Alexandre Torgue <alexandre.torgue-qxv4g6HH51o@public.gmane.org>
>>
>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>> index bae62549e3d2..a5af84ef4ffc 100644
>> --- a/scripts/Makefile.lib
>> +++ b/scripts/Makefile.lib
>> @@ -246,6 +246,7 @@ quiet_cmd_gzip = GZIP    $@
>>  # DTC
>>  # ---------------------------------------------------------------------------
>>  DTC ?= $(objtree)/scripts/dtc/dtc
>> +DTB_GEN_INFO ?= $(objtree)/scripts/gen_dtb_build_info.sh
>>
>>  # Disable noisy checks by default
>>  ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),)
>> @@ -286,6 +287,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE
>>
>>  quiet_cmd_dtc = DTC     $@
>>  cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
>> +       $(DTB_GEN_INFO) $(src) ; \
>>         $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
>>         $(DTC) -O $(2) -o $@ -b 0 \
>>                 $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \
>> diff --git a/scripts/gen_dtb_build_info.sh b/scripts/gen_dtb_build_info.sh
>> new file mode 100755
>> index 000000000000..0cd8bd98e410
>> --- /dev/null
>> +++ b/scripts/gen_dtb_build_info.sh
>> @@ -0,0 +1,10 @@
>> +#!/bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +
>> +set -o nounset
>> +
>> +DTB_DIR=$1
>> +DTB_COMPILE_BY=$(whoami | sed 's/\\/\\\\/')
>> +DTB_INFO="From Linux $KERNELRELEASE by $DTB_COMPILE_BY the $(date).\0"
>> +
>> +printf "$DTB_INFO" > "$DTB_DIR/dtb-build.txt"
>> --
>> 2.17.1
>>
> 
> 
> There are more than 1000 *.dts files
> in arch/arm/boot/dts/.
> 
> So, with this patch, the build system will creates
> arch/arm/boot/dts/dtb-build.txt 1000 times.
> 
> 
> Does it work with parallel build ?
> 
> Think about what would happen
> with 'make -j32 ARCH=arm  dtbs'
> 
> 
> The 32 threads will write to
> arch/arm/boot/dts/dtb-build.txt
> at the same time.
> 
> Then, some of DTB would very likely to
> include the broken dtb-build.txt
> 
> 
> A list of missing parts in this approach:
> 
>  - make it work with parallel build
>  - clean it up with 'make clean'
>  - add it .gitignore  (and Documentation/dontdiff)
> 
> 
> 

You might be able to rework script 'version_dtb_increment_once' from my
previous attempt at this concept.  I do not know if the build system
has changed since 2015 in a way that would make the script incorrect
or if it is still valid.

https://lore.kernel.org/linux-arm-kernel/550A44A8.9090302-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org/

-Frank

  reply	other threads:[~2020-02-26 16:38 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-21 16:12 [RFC PATCH v2 0/4] Alexandre Torgue
2020-02-21 16:12 ` Alexandre Torgue
2020-02-21 16:12 ` [RFC PATCH v2 1/4] scripts: Add script to generate dtb build information Alexandre Torgue
2020-02-21 16:12   ` Alexandre Torgue
2020-02-24 17:45   ` Masahiro Yamada
2020-02-24 17:45     ` Masahiro Yamada
2020-02-26 16:38     ` Frank Rowand [this message]
2020-02-26 16:38       ` Frank Rowand
2020-02-21 16:12 ` [RFC PATCH v2 2/4] of: fdt: print " Alexandre Torgue
2020-02-21 16:12   ` Alexandre Torgue
2020-02-21 16:12   ` Alexandre Torgue
2020-02-21 16:12 ` [RFC PATCH v2 3/4] ARM: dts: stm32: Add dtb build information entry for stm32mp157c-dk2 Alexandre Torgue
2020-02-21 16:12   ` Alexandre Torgue
2020-02-21 16:12 ` [RFC PATCH v2 4/4] script: make automatic dtb build info generation Alexandre Torgue
2020-02-21 16:12   ` Alexandre Torgue
2020-02-21 16:14 [RFC PATCH v2 0/4] Add device tree build information Alexandre Torgue
2020-02-21 16:14 ` [RFC PATCH v2 1/4] scripts: Add script to generate dtb " Alexandre Torgue
2020-02-21 16:14   ` Alexandre Torgue
2020-02-21 16:14   ` Alexandre Torgue
2020-02-21 17:52   ` Frank Rowand
2020-02-21 17:52     ` Frank Rowand
2020-02-21 19:38     ` Rob Herring
2020-02-21 19:38       ` Rob Herring
2020-03-02 12:40       ` Alexandre Torgue
2020-03-02 12:40         ` Alexandre Torgue
2020-02-23 21:59     ` David Gibson
2020-02-23 21:59       ` David Gibson
2020-02-24  0:57       ` Frank Rowand

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=e0b65cba-6e37-8937-897d-ae82973f34e8@gmail.com \
    --to=frowand.list@gmail.com \
    --cc=alexandre.torgue@st.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=devicetree-compiler@vger.kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=ian@freebsd.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=robh+dt@kernel.org \
    --cc=sjg@chromium.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.