summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-05 15:26:56 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-11 11:06:22 +0000
commit376f8eaeb9ef22b2e94b78d368c57b79de9c32a5 (patch)
tree147327991cec2f597706fa5bb261e742224b5f52 /bitbake
parentcbb463612535f1e87f1314d2fcf927427e81d449 (diff)
downloadpoky-376f8eaeb9ef22b2e94b78d368c57b79de9c32a5.tar.gz
bitbake: siggen: Avoid taskhash mismatch errors for nostamp tasks when dependencies rehash
An example: NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Started ERROR: Taskhash mismatch b074da4334aff8aa06572e7a8725c941fa6b08de4ce714a65a90c0c0b680abea versus 17375278daed609a7129769b74a1336a37bdef14b534ae85189ccc033a9f2db4 for /home/pokybuild/yocto-worker/qemux86-64/build/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb:do_check NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Succeeded Is caused by a rehash in a dependency happening somewhere earlier in the build and the taint being reset. Change the code so that nostamp taints are preserved to avoid the issue. (Bitbake rev: c42d00ff293d0538cad1b84c108bf7f5f49d4d84) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 61624a3fc38e8546e01356d5ce7a09f21e7094ab) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/siggen.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index edf10105f9..de85326872 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -232,10 +232,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
232 taskdep = dataCache.task_deps[fn] 232 taskdep = dataCache.task_deps[fn]
233 if 'nostamp' in taskdep and task in taskdep['nostamp']: 233 if 'nostamp' in taskdep and task in taskdep['nostamp']:
234 # Nostamp tasks need an implicit taint so that they force any dependent tasks to run 234 # Nostamp tasks need an implicit taint so that they force any dependent tasks to run
235 import uuid 235 if tid in self.taints and self.taints[tid].startswith("nostamp:"):
236 taint = str(uuid.uuid4()) 236 # Don't reset taint value upon every call
237 data = data + taint 237 data = data + self.taints[tid][8:]
238 self.taints[tid] = "nostamp:" + taint 238 else:
239 import uuid
240 taint = str(uuid.uuid4())
241 data = data + taint
242 self.taints[tid] = "nostamp:" + taint
239 243
240 taint = self.read_taint(fn, task, dataCache.stamp[fn]) 244 taint = self.read_taint(fn, task, dataCache.stamp[fn])
241 if taint: 245 if taint: