summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/sstatesig.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe/sstatesig.py')
-rw-r--r--meta/lib/oe/sstatesig.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 5828a9def8..b2319ff213 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -189,20 +189,35 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
189 f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys()))) 189 f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys())))
190 190
191 def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): 191 def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d):
192 checklevel = d.getVar("SIGGEN_LOCKEDSIGS_CHECK_LEVEL", True) 192 warn_msgs = []
193 error_msgs = []
194 sstate_missing_msgs = []
195
193 for task in range(len(sq_fn)): 196 for task in range(len(sq_fn)):
194 if task not in ret: 197 if task not in ret:
195 for pn in self.lockedsigs: 198 for pn in self.lockedsigs:
196 if sq_hash[task] in self.lockedsigs[pn].itervalues(): 199 if sq_hash[task] in self.lockedsigs[pn].itervalues():
197 if sq_task[task] == 'do_shared_workdir': 200 if sq_task[task] == 'do_shared_workdir':
198 continue 201 continue
199 self.mismatch_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?" 202 sstate_missing_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?"
200 % (pn, sq_task[task], sq_hash[task])) 203 % (pn, sq_task[task], sq_hash[task]))
201 204
202 if self.mismatch_msgs and checklevel == 'warn': 205 checklevel = d.getVar("SIGGEN_LOCKEDSIGS_TASKSIG_CHECK", True)
203 bb.warn("\n".join(self.mismatch_msgs)) 206 if checklevel == 'warn':
204 elif self.mismatch_msgs and checklevel == 'error': 207 warn_msgs += self.mismatch_msgs
205 bb.fatal("\n".join(self.mismatch_msgs)) 208 elif checklevel == 'error':
209 error_msgs += self.mismatch_msgs
210
211 checklevel = d.getVar("SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK", True)
212 if checklevel == 'warn':
213 warn_msgs += sstate_missing_msgs
214 elif checklevel == 'error':
215 error_msgs += sstate_missing_msgs
216
217 if warn_msgs:
218 bb.warn("\n".join(warn_msgs))
219 if error_msgs:
220 bb.fatal("\n".join(error_msgs))
206 221
207 222
208# Insert these classes into siggen's namespace so it can see and select them 223# Insert these classes into siggen's namespace so it can see and select them