summaryrefslogtreecommitdiffstats
path: root/package/gcc
diff options
context:
space:
mode:
authorArnout Vandecappelle <arnout@mind.be>2015-10-04 16:25:32 +0100
committerPeter Korsgaard <peter@korsgaard.com>2015-10-04 18:22:21 +0200
commit1e97b2787331c5f4452d8c9a76961a89ec355d9d (patch)
tree3650a31a1a9b2fa3b9955823839057fa7b91ac89 /package/gcc
parentf4682cf933a3e0e1017aa8827a8c57fdd79e30f3 (diff)
downloadbuildroot-1e97b2787331c5f4452d8c9a76961a89ec355d9d.tar.gz
buildroot-1e97b2787331c5f4452d8c9a76961a89ec355d9d.zip
ccache: support changing the output directory
When building in a different output directory than the original build, there will currently be a lot of ccache misses because in many cases there is some -I/... absolute path in the compilation. Ccache has an option CCACHE_BASEDIR to substitute absolute paths with relative paths, so they wil be the same in the hash (and in the output). Since there are some disadvantages to this path rewriting, it is made optional as BR2_CCACHE_USE_BASEDIR. It defaults to y because the usefulness of ccache is severely reduced without this option. In addition to CCACHE_BASEDIR, we also substitute away the occurences of $(HOST_DIR) in the calculation of the compiler hash. This is done regardless of the setting of BR2_CCACHE_USE_BASEDIR because it's quite harmless. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/gcc')
-rw-r--r--package/gcc/gcc.mk4
1 files changed, 3 insertions, 1 deletions
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 103cbe17b7..420c4e9b7c 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -256,8 +256,10 @@ HOST_GCC_COMMON_CCACHE_HASH_FILES += package/gcc/$(GCC_VERSION)/1000-powerpc-lin
endif
endif
+# _CONF_OPTS contains some references to the absolute path of $(HOST_DIR),
+# so substitute those away.
HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_HASH=\"`\
- printf '%s' $($(PKG)_CONF_OPTS) $(GCC_VERSION) \
+ printf '%s' $(subst $(HOST_DIR),@HOST_DIR@,$($(PKG)_CONF_OPTS)) \
| sha256sum - $(HOST_GCC_COMMON_CCACHE_HASH_FILES) \
| cut -c -64 | tr -d '\n'`\"
endif # BR2_CCACHE
OpenPOWER on IntegriCloud