mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
bitbake: siggen/runqueue: Report which dependencies affect the taskhash
Report which task dependencies in BB_TASKDEPDATA are included in the taskhash. This allows tasks to identify which tasks dependencies may change without the task re-running. Knowing this information is important for tasks that want to transfer information from dependencies (such as SPDX) (Bitbake rev: 853423661779023763a87462b623b6e9ff2798b2) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
fb60467f0e
commit
fa23d0fc6d
@@ -1302,7 +1302,7 @@ class RunQueueData:
|
|||||||
return len(self.runtaskentries)
|
return len(self.runtaskentries)
|
||||||
|
|
||||||
def prepare_task_hash(self, tid):
|
def prepare_task_hash(self, tid):
|
||||||
bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
|
self.runtaskentries[tid].taskhash_deps = bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
|
||||||
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
|
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
|
||||||
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
|
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
|
||||||
|
|
||||||
@@ -2457,7 +2457,8 @@ class RunQueueExecute:
|
|||||||
unihash = self.rqdata.runtaskentries[task].unihash
|
unihash = self.rqdata.runtaskentries[task].unihash
|
||||||
deps = self.filtermcdeps(task, mc, deps)
|
deps = self.filtermcdeps(task, mc, deps)
|
||||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
||||||
taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn]
|
taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps
|
||||||
|
taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
|
||||||
|
|
||||||
self.taskdepdata_cache = taskdepdata_cache
|
self.taskdepdata_cache = taskdepdata_cache
|
||||||
|
|
||||||
@@ -2836,7 +2837,8 @@ class RunQueueExecute:
|
|||||||
taskhash = self.rqdata.runtaskentries[revdep].hash
|
taskhash = self.rqdata.runtaskentries[revdep].hash
|
||||||
unihash = self.rqdata.runtaskentries[revdep].unihash
|
unihash = self.rqdata.runtaskentries[revdep].unihash
|
||||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
||||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn]
|
taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps
|
||||||
|
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
|
||||||
for revdep2 in deps:
|
for revdep2 in deps:
|
||||||
if revdep2 not in taskdepdata:
|
if revdep2 not in taskdepdata:
|
||||||
additional.append(revdep2)
|
additional.append(revdep2)
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
|
|||||||
self.taints[tid] = taint
|
self.taints[tid] = taint
|
||||||
logger.warning("%s is tainted from a forced run" % tid)
|
logger.warning("%s is tainted from a forced run" % tid)
|
||||||
|
|
||||||
return
|
return set(dep for _, dep in self.runtaskdeps[tid])
|
||||||
|
|
||||||
def get_taskhash(self, tid, deps, dataCaches):
|
def get_taskhash(self, tid, deps, dataCaches):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user