summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-28 00:02:46 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-28 11:51:03 +0000
commit6571d4ee291a6224b3ebc0e7c317d94f25ea2c66 (patch)
treeedd436e09a53c98a182273be128b52afd9ea6add /meta/lib/oe
parent88448accde35fc6ffd39091617acb904cfbae6d1 (diff)
downloadpoky-6571d4ee291a6224b3ebc0e7c317d94f25ea2c66.tar.gz
sstatesig: Test cross/native hashserv method extension
We can have one taskhash which represents multiple native/cross sstate objects since they're stored by BUILD_ARCH or possibly host distro (or host gcc version). We need to put these into separate namespaces on hashserv since their outhashes will never match and we need deterministic lookups for the different namespaces. Use this extramethod option to handle this. This fixes several problematic failures on the autobuilder. (From OE-Core rev: 766b57a1f9030429b546276a537fbce3a175cc25) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2a76082363d189880613765ad339718e3614049d) Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r--meta/lib/oe/sstatesig.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index c566ce5a0c..24a221eb1a 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -103,6 +103,7 @@ class SignatureGeneratorOEBasicHashMixIn(object):
103 self.unlockedrecipes = (data.getVar("SIGGEN_UNLOCKED_RECIPES") or 103 self.unlockedrecipes = (data.getVar("SIGGEN_UNLOCKED_RECIPES") or
104 "").split() 104 "").split()
105 self.unlockedrecipes = { k: "" for k in self.unlockedrecipes } 105 self.unlockedrecipes = { k: "" for k in self.unlockedrecipes }
106 self.buildarch = data.getVar('BUILD_ARCH')
106 pass 107 pass
107 108
108 def tasks_resolved(self, virtmap, virtpnmap, dataCache): 109 def tasks_resolved(self, virtmap, virtpnmap, dataCache):
@@ -140,6 +141,14 @@ class SignatureGeneratorOEBasicHashMixIn(object):
140 self.dump_lockedsigs(sigfile) 141 self.dump_lockedsigs(sigfile)
141 return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options) 142 return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)
142 143
144 def prep_taskhash(self, tid, deps, dataCache):
145 super().prep_taskhash(tid, deps, dataCache)
146 if hasattr(self, "extramethod"):
147 (_, _, _, fn) = bb.runqueue.split_tid_mcfn(tid)
148 inherits = " ".join(dataCache.inherits[fn])
149 if inherits.find("/native.bbclass") != -1 or inherits.find("/cross.bbclass") != -1:
150 self.extramethod[tid] = ":" + self.buildarch
151
143 def get_taskhash(self, tid, deps, dataCache): 152 def get_taskhash(self, tid, deps, dataCache):
144 h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache) 153 h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
145 154