summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2012-06-25 17:31:19 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-28 16:32:57 +0100
commitf64d68fb977c0d8410916a88281df8b6f463b89e (patch)
treef488c80d50c247fbd7bf1a533204d3ff0acc90f3
parentc3d8b100a2d98770aa977555f11dc70de0a2e1d4 (diff)
downloadpoky-f64d68fb977c0d8410916a88281df8b6f463b89e.tar.gz
bitbake.conf: disable ccache explicitly if it is not enabled
The autogen-native built error on FC17: ccache: failed to create /dev/null/.ccache This is because the default gcc command of FC17 is a symlink to ccache, so the ccache will always be used regardless to the setting of CCACHE, ccache uses $HOME/.ccache as the CACHE_DIR by default, but autogen set HOME=/dev/null, so the error happens. Disable ccache explicitly if it is not enabled would fix the problem, otherwise it would always use ccache regardless to the setting of CCACHE on Fedora 17. The ccache 3.1.7 has a bug, it would always create $CCCHE_DIR/.ccache even CCACHE_DISABLE=1. Unset CCACHE_DISABLE in ccache.bbclass, since ccache only checks whether there is a CCACHE_DISABLE in the environment or not, it doesn't care about its value, so we need unset it explicitly when enable ccache. [YOCTO #2554] (From OE-Core rev: dd2bab9b6a973d8086dfb6282e781fd79d30b05a) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/ccache.bbclass1
-rw-r--r--meta/conf/bitbake.conf8
2 files changed, 9 insertions, 0 deletions
diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 10f9b9f9aa..5aa2da2df4 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -1,5 +1,6 @@
1CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}" 1CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}"
2export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}" 2export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
3CCACHE_DISABLE[unexport] = "1"
3 4
4do_configure[dirs] =+ "${CCACHE_DIR}" 5do_configure[dirs] =+ "${CCACHE_DIR}"
5do_kernel_configme[dirs] =+ "${CCACHE_DIR}" 6do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index fbc0ca205a..9b26580f1b 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -414,6 +414,14 @@ export PATH
414################################################################## 414##################################################################
415 415
416CCACHE ??= "" 416CCACHE ??= ""
417# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
418# of ccache some distributions (e.g., Fedora 17).
419export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
420# Assign CCACHE_DIR a default vaule to fix a bug of ccache 3.1.7,
421# since it would always create CCACHE_DIR/.ccache even if
422# CCACHE_DISABLE = 1.
423export CCACHE_DIR ??= "${@os.getenv('HOME')}"
424
417TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" 425TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
418 426
419export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 427export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"