diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-28 00:02:46 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-02 16:43:01 +0000 |
commit | 7538be0a50106f61b59b1d2cb830273d73700931 (patch) | |
tree | 4fc775f91dee56f0eb831b4748e0e14cbe71bf53 /meta/lib | |
parent | 0224fe0f52f6f9d01cd467df6a75a3d7346c6134 (diff) | |
download | poky-7538be0a50106f61b59b1d2cb830273d73700931.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: 2a76082363d189880613765ad339718e3614049d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/sstatesig.py | 9 |
1 files changed, 9 insertions, 0 deletions
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): | |||
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 | if tid in self.lockedhashes: | 153 | if tid in self.lockedhashes: |
145 | if self.lockedhashes[tid]: | 154 | if self.lockedhashes[tid]: |