[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141125235150.GH3836@n2100.arm.linux.org.uk>
Date: Tue, 25 Nov 2014 23:51:50 +0000
From: Russell King - ARM Linux <linux@....linux.org.uk>
To: Michal Marek <mmarek@...e.cz>
Cc: Jason Cooper <jason@...edaemon.net>,
Linus Walleij <linus.walleij@...aro.org>,
Grant Likely <grant.likely@...retlab.ca>,
Rob Herring <rob.herring@...aro.org>,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH] ARM: kbuild: Fix forced rebuild after 'make dtbs'
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.
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.
--
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists