Re: [PATCH] Kbuild: Avoid DTB rebuilds if source files are untouched

From: Stephen Warren
Date: Wed Apr 03 2013 - 12:18:35 EST


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?

>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib

>> +.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?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/