Commit f044e037 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

ccache: set COMPILERCHECK to 'none'



This allows ccache to re-use its cache contents even if the compiler
binary mtime has changed. It is the simplest approach to solve this
problem, and it works for the internal, external and crosstool-ng
toolchain backends.

Of course, it leaves the user responsible for invalidating the cache
when necessary, but there doesn't seem to be a real good solution that
allows both to: 1/ keep the cache contents accross builds and re-use
it and 2/ invalidate the cache automatically when the compiler chances
in an incompatible way.

Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 7ea11daf
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -191,6 +191,13 @@ config BR2_CCACHE
	  up future builds. The cache is stored in
	  $HOME/.buildroot-ccache.

	  Note that Buildroot does not try to invalidate the cache
	  contents when the compiler changes in an incompatible
	  way. Therefore, if you make a change to the compiler version
	  and/or configuration, you are responsible for purging the
	  ccache cache by removing the $HOME/.buildroot-ccache
	  directory.

config BR2_DEPRECATED
	bool "Show packages that are deprecated or obsolete"
	help
+10 −2
Original line number Diff line number Diff line
@@ -25,10 +25,18 @@ HOST_CCACHE_CONF_ENV = \
# has zero dependency besides the C library.
HOST_CCACHE_CONF_OPT += ccache_cv_zlib_1_2_3=no

# We directly hardcode the cache location into the binary, as it is
# much easier to handle than passing an environment variable.
# We directly hardcode configuration into the binary, as it is much
# easier to handle than passing an environment variable. Our
# configuration is:
#  - the cache location
#  - the fact that ccache shouldn't use the compiler binary mtime to
#  - detect a change in the compiler, because in the context of
#  - Buildroot, that completely defeats the purpose of ccache. Of
#  - course, that leaves the user responsible for purging its cache
#  - when the compiler changes.
define HOST_CCACHE_FIX_CCACHE_DIR
	sed -i 's,getenv("CCACHE_DIR"),"$(CCACHE_CACHE_DIR)",' $(@D)/ccache.c
	sed -i 's,getenv("CCACHE_COMPILERCHECK"),"none",' $(@D)/ccache.c
endef

HOST_CCACHE_POST_CONFIGURE_HOOKS += \