summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorjoshua Watt <JPEWhacker@gmail.com>2024-05-01 10:16:57 -0600
committerSteve Sakoman <steve@sakoman.com>2024-06-06 06:53:49 -0700
commitfa23d0fc6d7adca5c8a38169f4477755ee33bdbf (patch)
treebb1b123ff11c97b06d333ff1b529d22581296214 /bitbake
parentfb60467f0e51f405997c545dd8ddf7c6c818e2f3 (diff)
downloadpoky-fa23d0fc6d7adca5c8a38169f4477755ee33bdbf.tar.gz
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>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/runqueue.py8
-rw-r--r--bitbake/lib/bb/siggen.py2
2 files changed, 6 insertions, 4 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 85c3581f9d..84a6f4172c 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1302,7 +1302,7 @@ class RunQueueData:
1302 return len(self.runtaskentries) 1302 return len(self.runtaskentries)
1303 1303
1304 def prepare_task_hash(self, tid): 1304 def prepare_task_hash(self, tid):
1305 bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches) 1305 self.runtaskentries[tid].taskhash_deps = bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
1306 self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches) 1306 self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
1307 self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid) 1307 self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
1308 1308
@@ -2457,7 +2457,8 @@ class RunQueueExecute:
2457 unihash = self.rqdata.runtaskentries[task].unihash 2457 unihash = self.rqdata.runtaskentries[task].unihash
2458 deps = self.filtermcdeps(task, mc, deps) 2458 deps = self.filtermcdeps(task, mc, deps)
2459 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn] 2459 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
2460 taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn] 2460 taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps
2461 taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
2461 2462
2462 self.taskdepdata_cache = taskdepdata_cache 2463 self.taskdepdata_cache = taskdepdata_cache
2463 2464
@@ -2836,7 +2837,8 @@ class RunQueueExecute:
2836 taskhash = self.rqdata.runtaskentries[revdep].hash 2837 taskhash = self.rqdata.runtaskentries[revdep].hash
2837 unihash = self.rqdata.runtaskentries[revdep].unihash 2838 unihash = self.rqdata.runtaskentries[revdep].unihash
2838 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn] 2839 hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
2839 taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn] 2840 taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps
2841 taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
2840 for revdep2 in deps: 2842 for revdep2 in deps:
2841 if revdep2 not in taskdepdata: 2843 if revdep2 not in taskdepdata:
2842 additional.append(revdep2) 2844 additional.append(revdep2)
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 8ab08ec961..03dfda6f3c 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -381,7 +381,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
381 self.taints[tid] = taint 381 self.taints[tid] = taint
382 logger.warning("%s is tainted from a forced run" % tid) 382 logger.warning("%s is tainted from a forced run" % tid)
383 383
384 return 384 return set(dep for _, dep in self.runtaskdeps[tid])
385 385
386 def get_taskhash(self, tid, deps, dataCaches): 386 def get_taskhash(self, tid, deps, dataCaches):
387 387