Re: [git pull] Devicetree changes for v3.15

From: Jason Cooper
Date: Mon Sep 29 2014 - 09:52:13 EST


On Mon, Sep 29, 2014 at 01:49:22PM +0100, Grant Likely wrote:
> On Fri, 26 Sep 2014 10:19:43 -0400
> , Jason Cooper <jason@xxxxxxxxxxxxxx>
> wrote:
> > Linus,
> >
> > On Fri, Sep 26, 2014 at 02:30:53PM +0200, Linus Walleij wrote:
> > > On Tue, Apr 1, 2014 at 12:15 PM, Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:
> > >
> > > > Here are the dt changes I've got queued up for v3.15. The full
> > > > description is below in the tag. Please pull.
> > > (...)
> > > > Jason Cooper (1):
> > > > kbuild: dtbs_install: new make target
> >
> > Exact patch is:
> >
> > f4d4ffc03efc kbuild: dtbs_install: new make target
> >
> > > 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.
> > >
> > > Do you think this can be fixed? It's quite simple to reproduce...
> >
> > Does the attached fix your problem?
> >
> > thx,
> >
> > Jason.
> >
> > ----------->8------------------------------------------
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index 0ce9d0f71f2a..a88b13af58d2 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -313,7 +313,9 @@ $(INSTALL_TARGETS):
> > $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
> >
> > PHONY += dtbs dtbs_install
> > -dtbs dtbs_install: prepare scripts
> > +dtbs: scripts
> > + $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
> > +dtbs_install: prepare scripts
> > $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
> >
> > # We use MRPROPER_FILES and CLEAN_FILES now
>
> Is this the right fix though? It seems that it would fix the problem for
> the dtbs target, but would still cause a kernel rebuild for
> dtbs_install. Why does dtbs_install need to depend on the 'prepare'
> target?

iirc, it was added as a dependency to ensure $KERNELVERSION was set
before attempting to install into /path/to/$KERNELVERSION/dtbs.

This patch was just a confirmation that the 'prepare' target was the
source of the problem for Linus. Now that we know that, we need to dig
and find a proper fix for setting $KERNELVERSION for dtbs_install.

I dug into the prepare* menagerie a bit preparing this test patch, and
it seems that any existing target which would get us $KERNELVERSION also
depends on FORCE. I haven't had time to dig into it more... Perhaps one
of the kbuild maintainers would have some insight?

thx,

Jason.
--
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/