diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-29 13:29:44 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-30 12:04:49 +0100 |
commit | 0299499770e33e0214146132799f8779e81e581d (patch) | |
tree | 76922ab617e852e82c7636f887d2266dd37582ac /meta | |
parent | a92ff3ad4212f8966bbd3f6defcb112737d81cda (diff) | |
download | poky-0299499770e33e0214146132799f8779e81e581d.tar.gz |
ccache: Separate out into its own class
Currently, ccache is used if it is present. When building from scratch it gives
no performance improvement and creates a ton of empty directories even when its
not in use.
This change moves ccache support to a bbclass file which the user can choose to
enable. This should make builds more determinstic and make it easier/clearer
to the end user when its being used and when it is not.
(From OE-Core rev: 2acf8da4f13c175ea818b9514677b7059de1e3e2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/base.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/ccache.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/kernel-yocto.bbclass | 2 | ||||
-rw-r--r-- | meta/conf/bitbake.conf | 5 |
4 files changed, 9 insertions, 5 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 79685f7e7d..9219170a30 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -271,7 +271,7 @@ python base_eventhandler() { | |||
271 | } | 271 | } |
272 | 272 | ||
273 | addtask configure after do_patch | 273 | addtask configure after do_patch |
274 | do_configure[dirs] = "${CCACHE_DIR} ${S} ${B}" | 274 | do_configure[dirs] = "${S} ${B}" |
275 | do_configure[deptask] = "do_populate_sysroot" | 275 | do_configure[deptask] = "do_populate_sysroot" |
276 | base_do_configure() { | 276 | base_do_configure() { |
277 | : | 277 | : |
diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass new file mode 100644 index 0000000000..10f9b9f9aa --- /dev/null +++ b/meta/classes/ccache.bbclass | |||
@@ -0,0 +1,5 @@ | |||
1 | CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}" | ||
2 | export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}" | ||
3 | |||
4 | do_configure[dirs] =+ "${CCACHE_DIR}" | ||
5 | do_kernel_configme[dirs] =+ "${CCACHE_DIR}" | ||
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index e931630510..2a3373c63a 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -161,7 +161,7 @@ do_kernel_checkout[dirs] = "${S}" | |||
161 | 161 | ||
162 | addtask kernel_checkout before do_patch after do_unpack | 162 | addtask kernel_checkout before do_patch after do_unpack |
163 | 163 | ||
164 | do_kernel_configme[dirs] = "${CCACHE_DIR} ${S} ${B}" | 164 | do_kernel_configme[dirs] = "${S} ${B}" |
165 | do_kernel_configme() { | 165 | do_kernel_configme() { |
166 | echo "[INFO] doing kernel configme" | 166 | echo "[INFO] doing kernel configme" |
167 | 167 | ||
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 5fda36b01c..48287a71ab 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -409,10 +409,9 @@ export PATH | |||
409 | # Build utility info. | 409 | # Build utility info. |
410 | ################################################################## | 410 | ################################################################## |
411 | 411 | ||
412 | CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}" | 412 | CCACHE ??= "" |
413 | TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" | 413 | TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" |
414 | 414 | ||
415 | export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}" | ||
416 | export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 415 | export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
417 | export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 416 | export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
418 | export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 417 | export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
@@ -746,7 +745,7 @@ BB_CONSOLELOG ?= "${TMPDIR}/cooker.log.${DATETIME}" | |||
746 | 745 | ||
747 | # Setup our default hash policy | 746 | # Setup our default hash policy |
748 | BB_SIGNATURE_HANDLER ?= "OEBasic" | 747 | BB_SIGNATURE_HANDLER ?= "OEBasic" |
749 | BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN" | 748 | BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE" |
750 | BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK XAUTHORITY" | 749 | BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK XAUTHORITY" |
751 | 750 | ||
752 | MLPREFIX ??= "" | 751 | MLPREFIX ??= "" |