diff options
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 1 | ||||
| -rw-r--r-- | bitbake/lib/bb/siggen.py | 20 |
2 files changed, 19 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 9883a982c2..519561c231 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -1516,6 +1516,7 @@ class RunQueue: | |||
| 1516 | self.dm_event_handler_registered = False | 1516 | self.dm_event_handler_registered = False |
| 1517 | 1517 | ||
| 1518 | if build_done and self.rqexe: | 1518 | if build_done and self.rqexe: |
| 1519 | bb.parse.siggen.save_unitaskhashes() | ||
| 1519 | self.teardown_workers() | 1520 | self.teardown_workers() |
| 1520 | if self.rqexe: | 1521 | if self.rqexe: |
| 1521 | if self.rqexe.stats.failed: | 1522 | if self.rqexe.stats.failed: |
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 0105fa7251..2bb0b68527 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
| @@ -41,6 +41,7 @@ class SignatureGenerator(object): | |||
| 41 | self.runtaskdeps = {} | 41 | self.runtaskdeps = {} |
| 42 | self.file_checksum_values = {} | 42 | self.file_checksum_values = {} |
| 43 | self.taints = {} | 43 | self.taints = {} |
| 44 | self.unitaskhashes = {} | ||
| 44 | 45 | ||
| 45 | def finalise(self, fn, d, varient): | 46 | def finalise(self, fn, d, varient): |
| 46 | return | 47 | return |
| @@ -73,14 +74,23 @@ class SignatureGenerator(object): | |||
| 73 | return | 74 | return |
| 74 | 75 | ||
| 75 | def get_taskdata(self): | 76 | def get_taskdata(self): |
| 76 | return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash) | 77 | return (self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes) |
| 77 | 78 | ||
| 78 | def set_taskdata(self, data): | 79 | def set_taskdata(self, data): |
| 79 | self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash = data | 80 | self.runtaskdeps, self.taskhash, self.file_checksum_values, self.taints, self.basehash, self.unitaskhashes = data |
| 80 | 81 | ||
| 81 | def reset(self, data): | 82 | def reset(self, data): |
| 82 | self.__init__(data) | 83 | self.__init__(data) |
| 83 | 84 | ||
| 85 | def get_taskhashes(self): | ||
| 86 | return self.taskhash, self.unitaskhashes | ||
| 87 | |||
| 88 | def set_taskhashes(self, hashes): | ||
| 89 | self.taskhash, self.unitaskhashes = hashes | ||
| 90 | |||
| 91 | def save_unitaskhashes(self): | ||
| 92 | return | ||
| 93 | |||
| 84 | 94 | ||
| 85 | class SignatureGeneratorBasic(SignatureGenerator): | 95 | class SignatureGeneratorBasic(SignatureGenerator): |
| 86 | """ | 96 | """ |
| @@ -107,6 +117,9 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 107 | else: | 117 | else: |
| 108 | self.checksum_cache = None | 118 | self.checksum_cache = None |
| 109 | 119 | ||
| 120 | self.unihash_cache = bb.cache.SimpleCache("1") | ||
| 121 | self.unitaskhashes = self.unihash_cache.init_cache(data, "bb_unihashes.dat", {}) | ||
| 122 | |||
| 110 | def init_rundepcheck(self, data): | 123 | def init_rundepcheck(self, data): |
| 111 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None | 124 | self.taskwhitelist = data.getVar("BB_HASHTASK_WHITELIST") or None |
| 112 | if self.taskwhitelist: | 125 | if self.taskwhitelist: |
| @@ -244,6 +257,9 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
| 244 | bb.fetch2.fetcher_parse_save() | 257 | bb.fetch2.fetcher_parse_save() |
| 245 | bb.fetch2.fetcher_parse_done() | 258 | bb.fetch2.fetcher_parse_done() |
| 246 | 259 | ||
| 260 | def save_unitaskhashes(self): | ||
| 261 | self.unihash_cache.save(self.unitaskhashes) | ||
| 262 | |||
| 247 | def dump_sigtask(self, fn, task, stampbase, runtime): | 263 | def dump_sigtask(self, fn, task, stampbase, runtime): |
| 248 | 264 | ||
| 249 | k = fn + "." + task | 265 | k = fn + "." + task |
