All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: "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: Thu, 4 Apr 2013 11:00:35 +0530	[thread overview]
Message-ID: <515D0FFB.4030803@synopsys.com> (raw)
In-Reply-To: <515C5652.8070705@wwwdotorg.org>

On 04/03/2013 09:48 PM, Stephen Warren wrote:
> On 04/03/2013 01:14 AM, Vineet Gupta wrote:
>> forgot to CC linux-arch
>>
>> On 04/03/2013 12:42 PM, Vineet Gupta wrote:
>>> Currently, for every ARC kernel build I see the following:
>>>
>>> --------------->8-----------------
>>>   DTB    arch/arc/boot/dts/angel4.dtb.S
>>>   AS      arch/arc/boot/dts/angel4.dtb.o
>>>   LD      arch/arc/boot/dts/built-in.o
>>> rm arch/arc/boot/dts/angel4.dtb.S        <-- forces rebuild next iter
>>>   CHK     kernel/config_data.h
>>> --------------->8-----------------
> I assume that's because the file is an intermediate file, and only built
> due to a chain of build rules, and hence make clean it up itself after
> the build?

Indeed - I should have made that explicit in the Changelog.

>>> +.PRECIOUS: $(obj)/%.dtb.S
>>> +
>>>  $(obj)/%.dtb.S: $(obj)/%.dtb
>>>  	$(call cmd,dt_S_dtb)
> I'm not sure if .PRECIOUS is correct here. That prevents make from
> deleting the file if make is CTRL-C'd in the middle of generating it.
> Couldn't that leave a stale/corrupt file around that'd break the build.
> Judging by:
>
> http://www.gnu.org/software/make/manual/html_node/Special-Targets.html
>
> I think .SECONDARY might be a better choice? Does that solve the problem
> you're seeing?

Technically .SECONDARY is better - however it doesn't seem to work.
Running make with various debug toggles doesn't seem to be helping with why
.PRECIOUS works but not this.
That is also likely reason for a bunch of other .PRECIOUS entries in the same file
but no .SECONDARY.

I presume this is something not specific to ARC kernel or my host.
Can you try the .SECONDARY locally to see if it works for you.

Thx,
-Vineet

WARNING: multiple messages have this Message-ID (diff)
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: "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: Thu, 4 Apr 2013 11:00:35 +0530	[thread overview]
Message-ID: <515D0FFB.4030803@synopsys.com> (raw)
In-Reply-To: <515C5652.8070705@wwwdotorg.org>

On 04/03/2013 09:48 PM, Stephen Warren wrote:
> On 04/03/2013 01:14 AM, Vineet Gupta wrote:
>> forgot to CC linux-arch
>>
>> On 04/03/2013 12:42 PM, Vineet Gupta wrote:
>>> Currently, for every ARC kernel build I see the following:
>>>
>>> --------------->8-----------------
>>>   DTB    arch/arc/boot/dts/angel4.dtb.S
>>>   AS      arch/arc/boot/dts/angel4.dtb.o
>>>   LD      arch/arc/boot/dts/built-in.o
>>> rm arch/arc/boot/dts/angel4.dtb.S        <-- forces rebuild next iter
>>>   CHK     kernel/config_data.h
>>> --------------->8-----------------
> I assume that's because the file is an intermediate file, and only built
> due to a chain of build rules, and hence make clean it up itself after
> the build?

Indeed - I should have made that explicit in the Changelog.

>>> +.PRECIOUS: $(obj)/%.dtb.S
>>> +
>>>  $(obj)/%.dtb.S: $(obj)/%.dtb
>>>  	$(call cmd,dt_S_dtb)
> I'm not sure if .PRECIOUS is correct here. That prevents make from
> deleting the file if make is CTRL-C'd in the middle of generating it.
> Couldn't that leave a stale/corrupt file around that'd break the build.
> Judging by:
>
> http://www.gnu.org/software/make/manual/html_node/Special-Targets.html
>
> I think .SECONDARY might be a better choice? Does that solve the problem
> you're seeing?

Technically .SECONDARY is better - however it doesn't seem to work.
Running make with various debug toggles doesn't seem to be helping with why
.PRECIOUS works but not this.
That is also likely reason for a bunch of other .PRECIOUS entries in the same file
but no .SECONDARY.

I presume this is something not specific to ARC kernel or my host.
Can you try the .SECONDARY locally to see if it works for you.

Thx,
-Vineet

  reply	other threads:[~2013-04-04  5:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-03  7:12 [PATCH] Kbuild: Avoid DTB rebuilds if source files are untouched Vineet Gupta
2013-04-03  7:12 ` Vineet Gupta
2013-04-03  7:14 ` Vineet Gupta
2013-04-03  7:14   ` Vineet Gupta
2013-04-03 16:18   ` Stephen Warren
2013-04-04  5:30     ` Vineet Gupta [this message]
2013-04-04  5:30       ` Vineet Gupta
2013-04-04 17:36       ` Stephen Warren
2013-04-09 13:37         ` Vineet Gupta
2013-04-09 13:37           ` Vineet Gupta
2013-04-09 14:10         ` 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-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  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=515D0FFB.4030803@synopsys.com \
    --to=vineet.gupta1@synopsys.com \
    --cc=grant.likely@secretlab.ca \
    --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 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.