[oe-commits] [openembedded-core] 45/46: ccache: Disable CCACHE_HASHDIR by default

git at git.openembedded.org git at git.openembedded.org
Fri Mar 17 15:37:28 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit a9f57c0a475001a89a8087ac46b0c0c9a0498d82
Author: Mike Crowe <mac at mcrowe.com>
AuthorDate: Wed Mar 15 12:29:16 2017 +0000

    ccache: Disable CCACHE_HASHDIR by default
    
    As of ccache-3.3, ccache tries to ensure that the paths in the debug
    information are always correct. It does this by including the current
    directory in the hash if debug output is enabled. It includes support for
    detecting remapping via a single -fdebug-prefix-map argument uses the
    remapped directory in the hash instead.
    
    The DEBUG_PREFIX_MAP in bitbake.conf remaps the source directory, target
    sysroot and native sysroot separately which results in multiple
    -fdebug-prefix-map arguments. Although ccache passes all these arguments
    through to the compiler, it only enables the special behaviour described
    above if the last one matches the current directory. (See
    https://github.com/ccache/ccache/issues/163 )
    
    Even if ccache did correctly honour each of the remapping arguments, the
    hashes would still be different every time ${PV} or ${PR} change because
    the default DEBUG_PREFIX_MAP contains maps to paths including them.
    
    So it seems that for ccache to be of any use with this configuration,
    CCACHE_NOHASHDIR needs to be set.
    
    Signed-off-by: Mike Crowe <mac at mcrowe.com>
    Helped-by: Ross Burton <ross.burton at intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/ccache.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 76c8828..9713fea 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -2,6 +2,12 @@ CCACHE = "${@bb.utils.which(d.getVar('PATH'), 'ccache') and 'ccache '}"
 export CCACHE_DIR ?= "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
 CCACHE_DISABLE[unexport] = "1"
 
+# We need to stop ccache considering the current directory or the
+# debug-prefix-map target directory to be significant when calculating
+# its hash. Without this the cache would be invalidated every time
+# ${PV} or ${PR} change.
+export CCACHE_NOHASHDIR ?= "1"
+
 DEPENDS_append_class-target = " ccache-native"
 DEPENDS[vardepvalueexclude] = " ccache-native"
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list