diff options
Diffstat (limited to 'meta/lib/oe')
| -rw-r--r-- | meta/lib/oe/sstatesig.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index ca3c6dfeaa..32a500552c 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py | |||
| @@ -104,6 +104,7 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
| 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 | self.buildarch = data.getVar('BUILD_ARCH') |
| 107 | self._internal = False | ||
| 107 | pass | 108 | pass |
| 108 | 109 | ||
| 109 | def tasks_resolved(self, virtmap, virtpnmap, dataCache): | 110 | def tasks_resolved(self, virtmap, virtpnmap, dataCache): |
| @@ -156,7 +157,12 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
| 156 | else: | 157 | else: |
| 157 | return super().get_taskhash(tid, deps, dataCache) | 158 | return super().get_taskhash(tid, deps, dataCache) |
| 158 | 159 | ||
| 160 | # get_taskhash will call get_unihash internally in the parent class, we | ||
| 161 | # need to disable our filter of it whilst this runs else | ||
| 162 | # incorrect hashes can be calculated. | ||
| 163 | self._internal = True | ||
| 159 | h = super().get_taskhash(tid, deps, dataCache) | 164 | h = super().get_taskhash(tid, deps, dataCache) |
| 165 | self._internal = False | ||
| 160 | 166 | ||
| 161 | (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) | 167 | (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) |
| 162 | 168 | ||
| @@ -184,7 +190,9 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
| 184 | h_locked = self.lockedsigs[recipename][task][0] | 190 | h_locked = self.lockedsigs[recipename][task][0] |
| 185 | var = self.lockedsigs[recipename][task][1] | 191 | var = self.lockedsigs[recipename][task][1] |
| 186 | self.lockedhashes[tid] = h_locked | 192 | self.lockedhashes[tid] = h_locked |
| 187 | unihash = super().get_unihash(tid) | 193 | self._internal = True |
| 194 | unihash = self.get_unihash(tid) | ||
| 195 | self._internal = False | ||
| 188 | self.taskhash[tid] = h_locked | 196 | self.taskhash[tid] = h_locked |
| 189 | #bb.warn("Using %s %s %s" % (recipename, task, h)) | 197 | #bb.warn("Using %s %s %s" % (recipename, task, h)) |
| 190 | 198 | ||
| @@ -199,7 +207,7 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
| 199 | return h | 207 | return h |
| 200 | 208 | ||
| 201 | def get_unihash(self, tid): | 209 | def get_unihash(self, tid): |
| 202 | if tid in self.lockedhashes and self.lockedhashes[tid]: | 210 | if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal: |
| 203 | return self.lockedhashes[tid] | 211 | return self.lockedhashes[tid] |
| 204 | return super().get_unihash(tid) | 212 | return super().get_unihash(tid) |
| 205 | 213 | ||
