Patchwork icecc: improve interaction with sstate

login
register
mail settings
Submitter Martin Jansa
Date March 13, 2013, 7:04 p.m.
Message ID <1363201491-27766-1-git-send-email-Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/46159/
State Accepted
Commit 1ceb13dda11645229053fc4840954333f8910ba4
Headers show

Comments

Martin Jansa - March 13, 2013, 7:04 p.m.
* exclude ICECC_PARALLEL_MAKE (like PARALLEL_MAKE is)
* add ICECC_DISBLED to be able to disable whole icecc functionality
  while keeping icecc enabled. This is useful when you want multiple
  builders sharing same sstate-cache, but only some of them using icecc.

* inheriting icecc changes all checksums because of do_*_prepends calls,
  but because icecc should not influence binary output of task we should
  get same checksums for tasks build with and without icecc

* ICECC_DISABLED when set (to any non-empty value will disable icecc env
  modifications but while keeping same sstate checksum

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/icecc.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

Patch

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index ae74050..f3e89a9 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -26,6 +26,8 @@ 
 #Error checking is kept to minimum so double check any parameters you pass to the class
 ###########################################################################################
 
+BB_HASHBASE_WHITELIST += "ICECC_PARALLEL_MAKE ICECC_DISABLED"
+
 ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env"
 
 def icecc_dep_prepend(d):
@@ -160,6 +162,10 @@  def icc_get_tool(bb, d, tool):
         return os.path.join(ice_dir, "%s-%s" % (target_sys, tool))
 
 set_icecc_env() {
+    if [ "x${ICECC_DISABLED}" != "x" ]
+    then
+        return
+    fi
     ICECC_VERSION="${@icc_version(bb, d)}"
     if [ "x${ICECC_VERSION}" = "x" ]
     then