[oe-commits] Robert Yang : bitbake.conf: disable ccache explicitly if it is not enabled

git at git.openembedded.org git at git.openembedded.org
Thu Jun 28 15:24:47 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: dd2bab9b6a973d8086dfb6282e781fd79d30b05a
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=dd2bab9b6a973d8086dfb6282e781fd79d30b05a

Author: Robert Yang <liezhi.yang at windriver.com>
Date:   Mon Jun 25 17:31:19 2012 +0800

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]

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>

---

 meta/classes/ccache.bbclass |    1 +
 meta/conf/bitbake.conf      |    8 ++++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 10f9b9f..5aa2da2 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -1,5 +1,6 @@
 CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}"
 export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
+CCACHE_DISABLE[unexport] = "1"
 
 do_configure[dirs] =+ "${CCACHE_DIR}"
 do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index fbc0ca2..9b26580 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -414,6 +414,14 @@ export PATH
 ##################################################################
 
 CCACHE ??= ""
+# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
+# of ccache some distributions (e.g., Fedora 17).
+export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
+# Assign CCACHE_DIR a default vaule to fix a bug of ccache 3.1.7,
+# since it would always create CCACHE_DIR/.ccache even if
+# CCACHE_DISABLE = 1.
+export CCACHE_DIR ??= "${@os.getenv('HOME')}"
+
 TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
 
 export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"





More information about the Openembedded-commits mailing list