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 devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html