mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 21:32:12 +02:00
bitbake: siggen: Add new unitaskhashes data variable which is cached
We need to preserve unihash task hashes between runs. Use the new SimpleCache class to create such a class within the signature generator which is loaded at init time and saved when builds complete. The default is unpopulated but metadata sig handlers can populate this cache. (Bitbake rev: 1f326f2c29c2664a5daaeeb0c1fd332630efbdba) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1516,6 +1516,7 @@ class RunQueue:
|
||||
self.dm_event_handler_registered = False
|
||||
|
||||
if build_done and self.rqexe:
|
||||
bb.parse.siggen.save_unitaskhashes()
|
||||
self.teardown_workers()
|
||||
if self.rqexe:
|
||||
if self.rqexe.stats.failed:
|
||||
|
||||
@@ -41,6 +41,7 @@ class SignatureGenerator(object):
|
||||
self.runtaskdeps = {}
|
||||
self.file_checksum_values = {}
|
||||
self.taints = {}
|
||||
self.unitaskhashes = {}
|
||||
|
||||
def finalise(self, fn, d, varient):
|
||||
return
|
||||
@@ -73,14 +74,23 @@ class SignatureGenerator(object):
|
||||
return
|
||||
|
||||
def get_taskdata(self):
|
||||
return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash)
|
||||
return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes)
|
||||
|
||||
def set_taskdata(self, data):
|
||||
self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash = data
|
||||
self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes = data
|
||||
|
||||
def reset(self, data):
|
||||
self.__init__(data)
|
||||
|
||||
def get_taskhashes(self):
|
||||
return self.taskhash, self.unitaskhashes
|
||||
|
||||
def set_taskhashes(self, hashes):
|
||||
self.taskhash, self.unitaskhashes = hashes
|
||||
|
||||
def save_unitaskhashes(self):
|
||||
return
|
||||
|
||||
|
||||
class SignatureGeneratorBasic(SignatureGenerator):
|
||||
"""
|
||||
@@ -107,6 +117,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
||||
else:
|
||||
self.checksum_cache = None
|
||||
|
||||
self.unihash_cache = bb.cache.SimpleCache("1")
|
||||
self.unitaskhashes = self.unihash_cache.init_cache(data, "bb_unihashes.dat", {})
|
||||
|
||||
def init_rundepcheck(self, data):
|
||||
self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None
|
||||
if self.taskwhitelist:
|
||||
@@ -244,6 +257,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
||||
bb.fetch2.fetcher_parse_save()
|
||||
bb.fetch2.fetcher_parse_done()
|
||||
|
||||
def save_unitaskhashes(self):
|
||||
self.unihash_cache.save(self.unitaskhashes)
|
||||
|
||||
def dump_sigtask(self, fn, task, stampbase, runtime):
|
||||
|
||||
k = fn + "." + task
|
||||
|
||||
Reference in New Issue
Block a user