path: root/Config.in
diff options
authorGravatar Arnout Vandecappelle <arnout@mind.be>2015-10-04 16:25:32 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2015-10-04 18:22:21 +0200
commit1e97b2787331c5f4452d8c9a76961a89ec355d9d (patch)
tree3650a31a1a9b2fa3b9955823839057fa7b91ac89 /Config.in
parentf4682cf933a3e0e1017aa8827a8c57fdd79e30f3 (diff)
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 'Config.in')
1 files changed, 27 insertions, 0 deletions
diff --git a/Config.in b/Config.in
index 74aeb465ee..d795361148 100644
--- a/Config.in
+++ b/Config.in
@@ -286,6 +286,33 @@ config BR2_CCACHE_INITIAL_SETUP
These initial settings are applied after ccache has been compiled.
+ bool "Use relative paths"
+ default y
+ help
+ Allow ccache to convert absolute paths within the output
+ directory into relative paths.
+ During the build, many -I include directives are given with
+ an absolute path. These absolute paths end up in the hashes
+ that are computed by ccache. Therefore, when you build from a
+ different directory, the hash will be different and the
+ cached object will not be used.
+ To improve cache performance, set this option to y. This
+ allows ccache to rewrite absolute paths within the output
+ directory into relative paths. Note that only paths within
+ the output directory will be rewritten; therefore, if you
+ change BR2_HOST_DIR to point outside the output directory and
+ subsequently move it to a different location, this will lead
+ to cache misses.
+ This option has as a result that the debug information in the
+ object files also has only relative paths. Therefore, make
+ sure you cd to the build directory before starting gdb. See
+ ccache manual for more information.