Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751923AbaKZJjx (ORCPT ); Wed, 26 Nov 2014 04:39:53 -0500 Received: from cantor2.suse.de ([195.135.220.15]:35011 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750834AbaKZJju (ORCPT ); Wed, 26 Nov 2014 04:39:50 -0500 Message-ID: <54759FE4.5030700@suse.cz> Date: Wed, 26 Nov 2014 10:39:48 +0100 From: Michal Marek User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Linus Walleij CC: Russell King - ARM Linux , Jason Cooper , Grant Likely , Rob Herring , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] ARM: kbuild: Fix forced rebuild after 'make dtbs' References: <1414961549-31666-1-git-send-email-jason@lakedaemon.net> <5474F78F.2060906@suse.cz> <20141125235150.GH3836@n2100.arm.linux.org.uk> In-Reply-To: <20141125235150.GH3836@n2100.arm.linux.org.uk> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/