[U-Boot] [U-Boot, 1/2] common: Add CCACHE variable to allow use of ccache

sun york-R58495 R58495 at freescale.com
Thu Aug 22 05:42:40 CEST 2013


On Aug 21, 2013, at 7:51 PM, Marek Vasut wrote:

> Dear York Sun,
> 
>> On 05/20/2013 10:25 AM, Marek Vasut wrote:
>>> Prefix HOSTCC and CC with CCACHE variable to allow easy use of ccache.
>>> In case the user wants to use ccache, exporting CCACHE=ccache will do
>>> the trick. It is of course possible to either make the cross-compiler
>>> name into a shellscript which invokes the ccache and the compiler, but
>>> setting this variable makes use of ccache easier and more convenient.
>>> 
>>> Using ccache becomes convenient when using MAKEALL for large build
>>> tests, where the speedup after building the cache for the first time
>>> is about 4-6 times.
>>> 
>>> Signed-off-by: Marek Vasut <marex at denx.de>
>>> Cc: Tom Rini <trini at ti.com>
>>> 
>>> ---
>>> config.mk |    8 +++++---
>>> 
>>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>> 
>>> diff --git a/config.mk b/config.mk
>>> index 1fd109f..d59ded2 100644
>>> --- a/config.mk
>>> +++ b/config.mk
>>> @@ -98,6 +98,8 @@ else
>>> 
>>> HOSTCC		= gcc
>>> endif
>>> 
>>> +HOSTCC		:= $(CCACHE) $(HOSTCC)
>>> +
>>> 
>>> ifeq ($(HOSTOS),cygwin)
>>> HOSTCFLAGS	+= -ansi
>>> endif
>>> 
>>> @@ -140,13 +142,13 @@ binutils-version = $(shell $(SHELL)
>>> $(SRCTREE)/tools/binutils-version.sh $(AS))
>>> 
>>> #
>>> # Include the make variables (CC, etc...)
>>> #
>>> 
>>> -AS	= $(CROSS_COMPILE)as
>>> +AS	= $(CCACHE) $(CROSS_COMPILE)as
>>> 
>>> # Always use GNU ld
>>> LD	= $(shell if $(CROSS_COMPILE)ld.bfd -v > /dev/null 2>&1; \
>>> 
>>> 		then echo "$(CROSS_COMPILE)ld.bfd"; else echo 
> "$(CROSS_COMPILE)ld";
>>> 		fi;)
>>> 
>>> -CC	= $(CROSS_COMPILE)gcc
>>> +CC	= $(CCACHE) $(CROSS_COMPILE)gcc
>>> 
>>> CPP	= $(CC) -E
>>> AR	= $(CROSS_COMPILE)ar
>>> NM	= $(CROSS_COMPILE)nm
>>> 
>>> @@ -320,7 +322,7 @@ endif
>>> 
>>> ########################################################################
>>> #
>>> 
>>> -export	HOSTCC HOSTCFLAGS HOSTLDFLAGS PEDCFLAGS HOSTSTRIP CROSS_COMPILE 
> \
>>> +export	HOSTCC HOSTCFLAGS HOSTLDFLAGS PEDCFLAGS HOSTSTRIP CROSS_COMPILE
>>> CCACHE \
>>> 
>>> 	AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP MAKE
>>> 
>>> export	CONFIG_SYS_TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS 
> CPPFLAGS
>>> CFLAGS AFLAGS
>> 
>> Where did this patch go? I found it useful.
> 
> It needs additional fixes, try running with MAKEALL and you will see the problem 
> -- the problem is you would need separate ccache for each MAKEALL thread.


I didn't use this patch but I modified config.mk as this patch did. MAKEALL works fine for "-a powerpc". It cuts my compiling time more than half for 660+ boards.

York




More information about the U-Boot mailing list