public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: mmarek@suse•cz (Michal Marek)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH] ARM: kbuild: Fix forced rebuild after 'make dtbs'
Date: Wed, 26 Nov 2014 10:39:48 +0100	[thread overview]
Message-ID: <54759FE4.5030700@suse.cz> (raw)
In-Reply-To: <20141125235150.GH3836@n2100.arm.linux.org.uk>

On 2014-11-26 00:51, Russell King - ARM Linux wrote:
> On Tue, Nov 25, 2014 at 10:41:35PM +0100, Michal Marek wrote:
>> Dne 2.11.2014 v 21:52 Jason Cooper napsal(a):
>>> After this patch:
>>>
>>>   f4d4ffc03efc kbuild: dtbs_install: new make target
>>>
>>> was added the kernel tree, Linus Walleij noticed that 'make dtbs' forced
>>> a following 'make zImage' to rebuild the entire tree, even though
>>> nothing had changed.  His report:
>>>
>>>   After this patch a while back I have observed the following behaviour
>>>   of the kernel build:
>>>
>>>   make zImage
>>>   make zImage
>>>   -> incremental build, just relink
>>>
>>>   make zImage
>>>   make dtbs
>>>   make zImage
>>>   -> The whole kernel gets rebuilt
>>>
>>>   So now if I happen to recompile my device trees, I suddenly want
>>>   the entire zImage to be rebuilt to? It's by definition not changes
>>>   that affect the kernel build :-(
>>>
>>>   I noticed this because my build scripts calls make dtbs && make
>>>   zImage, and started to rebuild absolutely everything all the time.
>>>
>>> To fix this, we make only the dtbs_install target depend on the prepare
>>> target.  It's needed to make sure KERNELVERSION is calculated prior to
>>> installing.
>>
>> If a mere 'make prepare' causes a rebuild of the whole kernel, then
>> there is something fishy in the ARM Makefiles. However, if you only need
>> the KERNELRELEASE variable, then you do not need to depend on prepare.
>> The main Makefile makes sure that silentoldconfig is ran and therefore
>> KERNELRELEASE set for all targets except make *config.
> 
> Running make prepare and then re-running a build doesn't rebuild anything
> for me.  However, I always build with O=  Also works if I do a make
> dtbs too.  So, everything seems to work as expected here.

Good :).


> I think this needs a bit more debugging to see why the whole kernel is
> being rebuilt - the kernel build system has methods to tell you why stuff
> is being built, which would be a good place to start.

Right, this is make V=2.

Michal

      parent reply	other threads:[~2014-11-26  9:39 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CACRpkdYmJWy1_vs0tWRA7SvkQnvbXXKqf7pHpH5b5tZ6vR+KJg@mail.gmail.com>
2014-11-02 20:52 ` [PATCH] ARM: kbuild: Fix forced rebuild after 'make dtbs' Jason Cooper
2014-11-25 21:41   ` Michal Marek
2014-11-25 23:51     ` Russell King - ARM Linux
2014-11-26  0:57       ` Jason Cooper
2014-11-26 13:57         ` Linus Walleij
2014-11-26 14:41           ` Russell King - ARM Linux
2014-11-28 14:10             ` Linus Walleij
2014-12-01 13:55               ` Michal Marek
2014-12-04 11:22                 ` Grant Likely
2014-12-04 11:24                   ` Russell King - ARM Linux
2014-11-26  9:39       ` Michal Marek [this message]

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=54759FE4.5030700@suse.cz \
    --to=mmarek@suse$(echo .)cz \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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