From 7538be0a50106f61b59b1d2cb830273d73700931 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 28 Dec 2019 00:02:46 +0000 Subject: 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: 2a76082363d189880613765ad339718e3614049d) Signed-off-by: Richard Purdie --- meta/lib/oe/sstatesig.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index 7cecb59d8e..ca3c6dfeaa 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py @@ -103,6 +103,7 @@ class SignatureGeneratorOEBasicHashMixIn(object): self.unlockedrecipes = (data.getVar("SIGGEN_UNLOCKED_RECIPES") or "").split() self.unlockedrecipes = { k: "" for k in self.unlockedrecipes } + self.buildarch = data.getVar('BUILD_ARCH') pass def tasks_resolved(self, virtmap, virtpnmap, dataCache): @@ -140,6 +141,14 @@ class SignatureGeneratorOEBasicHashMixIn(object): self.dump_lockedsigs(sigfile) return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options) + def prep_taskhash(self, tid, deps, dataCache): + super().prep_taskhash(tid, deps, dataCache) + if hasattr(self, "extramethod"): + (_, _, _, fn) = bb.runqueue.split_tid_mcfn(tid) + inherits = " ".join(dataCache.inherits[fn]) + if inherits.find("/native.bbclass") != -1 or inherits.find("/cross.bbclass") != -1: + self.extramethod[tid] = ":" + self.buildarch + def get_taskhash(self, tid, deps, dataCache): if tid in self.lockedhashes: if self.lockedhashes[tid]: -- cgit v1.2.3-54-g00ecf