From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: James Hogan <james.hogan@imgtec.com>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
linux-kernel@vger.kernel.org, Michal Marek <mmarek@suse.cz>,
Stephen Warren <swarren@nvidia.com>,
Grant Likely <grant.likely@secretlab.ca>,
linux-kbuild@vger.kernel.org
Subject: Re: [PATCH] Kbuild: Avoid DTB rebuilds if source files are untouched
Date: Tue, 9 Apr 2013 19:07:10 +0530 [thread overview]
Message-ID: <51641986.4070904@synopsys.com> (raw)
In-Reply-To: <515DBA0E.6000604@wwwdotorg.org>
On 04/04/2013 11:06 PM, Stephen Warren wrote:
>
>> Technically .SECONDARY is better - however it doesn't seem to work.
> Hmmm. It does for me.
>
> $ make --version
> GNU Make 3.81
Same tools here !
$ make -v
GNU Make 3.81
> I hacked the ARM makefiles as follows:
>
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 4737408..70247c6 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -256,6 +256,7 @@ core-y +=
> arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
> core-y += arch/arm/net/
> core-y += arch/arm/crypto/
> core-y += $(machdirs) $(platdirs)
> +core-y += arch/arm/boot/dts/
>
> drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index dedca49..af2202e 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -197,3 +197,5 @@ dtbs: $(addprefix $(obj)/, $(dtb-y))
> $(Q)rm -f $(obj)/../*.dtb
>
> clean-files := *.dtb
> +
> +obj-y += tegra20-test.dtb.o
>
> and manually created a tegra20-test.dts. For reasons I didn't bother
> investigating, the .dtb.S -> .dtb.o conversion failed with syntax
> errors, and because the .dtb.S file was an intermediate file, make rm's
> it in this case. That's exactly the issue you're seeing.
>
> I then added the following to Makefile.lib:
>
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index a0ab6d7..fc11a67 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -258,6 +258,8 @@ cmd_dt_S_dtb=
> \
> echo '.balign STRUCT_ALIGNMENT'; \
> ) > $@
>
> +.SECONDARY: $(obj)/%.dtb.S
> +
> $(obj)/%.dtb.S: $(obj)/%.dtb
> $(call cmd,dt_S_dtb)
>
> and no longer see make rm'ing the .dtb.S file. So, the .SECONDARY is
> behaving as expected, and should fix your problem.
Nope, doesn't work for me. The slight difference in build system could be that ARC
as of now only supports vmlinux embedded dtbs (so that likely changes what is
intermediate from make's perspective and what is not).
James, I remeber u once mentioned the rm of *.dtb.S file for metag as well - can
you please try adding the .secondary/.precious to makefile.lib to confirm what
fixes deletion of intermediate .S files for you.
> One other problem this highlighted: Unless you also mark the generated
> .dtb file as PRECIOUS/SECONDARY (or unless that DTB is included in
> targets for some reason) then make also rm's that, since it considers it
> intermediate:
>
> DTC arch/arm/boot/dts/tegra20-test.dtb
> DTB arch/arm/boot/dts/tegra20-test.dtb.S
> AS arch/arm/boot/dts/tegra20-test.dtb.o
> [error]
> rm arch/arm/boot/dts/tegra20-test.dtb
>
> So, your patch would probably need modification to apply the fix to
> *.dtb too, since they might also be intermediate?
>
> Perhaps add something like the following to arch/arc/boot/dts/Makefile?
>
> .SECONDARY: $(obj)/$(builtindtb-y).dtb
angel4.dtb is not deleted in my case.
If you add tegra20-test.dtb to targets (just as I do in dts/Makefile) what do u see !
-Vineet
next prev parent reply other threads:[~2013-04-09 13:37 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1364973141-16354-1-git-send-email-vgupta@synopsys.com>
2013-04-03 7:14 ` [PATCH] Kbuild: Avoid DTB rebuilds if source files are untouched Vineet Gupta
2013-04-03 7:14 ` Vineet Gupta
2013-04-03 16:18 ` Stephen Warren
2013-04-04 5:30 ` Vineet Gupta
2013-04-04 5:30 ` Vineet Gupta
2013-04-04 17:36 ` Stephen Warren
2013-04-04 17:36 ` Stephen Warren
2013-04-09 13:37 ` Vineet Gupta [this message]
2013-04-09 13:37 ` Vineet Gupta
2013-04-09 14:10 ` Vineet Gupta
2013-04-12 7:40 ` Vineet Gupta
2013-04-12 7:40 ` Vineet Gupta
2013-04-12 21:52 ` Stephen Warren
2013-04-12 21:52 ` Stephen Warren
2013-04-15 13:59 ` Vineet Gupta
2013-04-15 13:59 ` Vineet Gupta
2013-04-15 17:12 ` Stephen Warren
2013-04-16 15:53 ` James Hogan
2013-04-16 15:53 ` James Hogan
2013-04-16 16:02 ` James Hogan
2013-04-16 16:02 ` James Hogan
2013-04-17 4:15 ` Vineet Gupta
2013-04-17 4:15 ` Vineet Gupta
2013-04-17 4:13 ` Vineet Gupta
2013-04-17 9:13 ` James Hogan
2013-04-17 9:13 ` James Hogan
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=51641986.4070904@synopsys.com \
--to=vineet.gupta1@synopsys.com \
--cc=grant.likely@secretlab.ca \
--cc=james.hogan@imgtec.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.cz \
--cc=swarren@nvidia.com \
--cc=swarren@wwwdotorg.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).