From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Fri, 7 Mar 2014 17:29:30 -0500 Subject: [U-Boot] [U-Boot,v3,4/4] kbuild: improve Kbuild speed In-Reply-To: <1394006380-14192-5-git-send-email-yamada.m@jp.panasonic.com> References: <1394006380-14192-5-git-send-email-yamada.m@jp.panasonic.com> Message-ID: <20140307222930.GT16805@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, Mar 05, 2014 at 04:59:40PM +0900, Masahiro Yamada wrote: > Kbuild brought about many advantages for us but a significant > performance regression was reported by Simon Glass. > > After some discussions and analysis, it turned out > its main cause is in $(call cc-option,...). > > Historically, U-Boot parses all config.mk > (arch/*/config.mk and board/*/config.mk) > every time descending into subdirectories. > That means cc-options are evaluated over and over again. > > $(call cc-option,...) is useful but costly. > So we want to evaluate them only in ./Makefile > and spl/Makefile and export compiler flags. > > This commit changes the build system as follows: > > - Modify scripts/Makefile.build to not include config.mk > Instead, add $(PLATFORM_CPPFLAGS) to asflags-y, ccflags-y, > cppflags-y. > > - Export many variables > Going forward, Kbuild will not parse config.mk files > when it descends into subdirectories. > If we want to set variables in config.mk and use them > in subdirectories, they must be exported. > > This is the list of variables to get exported: > PLATFORM_CPPFLAGS > CPUDIR > BOARDDIR > OBJCOPYFLAGS > LDFLAGS > LDFLAGS_FINAL > (used in nand_spl/board/*/*/Makefile) > CONFIG_STANDALONE_LOAD_ADDR > (used in examples/standalone/Makefile) > SYM_PREFIX > (used in examples/standalone/Makefile) > RELFLAGS > (used in examples/standalone/Makefile) > > - Delete CPPFLAGS > This variable has been replaced with PLATFORM_CPPFLAGS > > - Copy gcclibdir from example/standalone/Makefile > to arch/sparc/config.mk > The reference in CONFIG_STANDALONE_LOAD_ADDR must be > resolved before it is exported. > > Signed-off-by: Masahiro Yamada > Reported-by: Simon Glass > Acked-by: Simon Glass > Tested-by: Simon Glass [on Sandbox] > Tested-by: Stephen Warren [on Tegra] Applied to u-boot/master, thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: