summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-25 23:19:41 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-25 23:39:37 +0100
commitfe5f742865c6578b99396ddda282c71c0a4dc557 (patch)
tree331c8a29fcf3c1b82ee4dbe59f81749613bdeab5 /bitbake
parent1607d7b6809eb3f0aa8d09713a4e467a1f4585a2 (diff)
downloadpoky-fe5f742865c6578b99396ddda282c71c0a4dc557.tar.gz
build/siggen: Ensure a task signature file is generated for each task that is executed
Tracing down signature changes and dependencies is hard unless the complete task chain can be evaultated. Since we have the data available at task exeuction time, writing it to disk makes sense. This change is suboptimal internal knowledge stamp_internal() has leaks into make_stamp() and the concepts used by this code need revisiting but the change brings enough usability benefit to warrant its inclusion despite that. Addresses issue [YOCTO #1074] (Bitbake rev: 139b8a625818225c358a1b8363518d7ed6913188) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/build.py6
-rw-r--r--bitbake/lib/bb/siggen.py3
2 files changed, 9 insertions, 0 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 80bb887383..f1384ef312 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -416,6 +416,12 @@ def make_stamp(task, d, file_name = None):
416 f = open(stamp, "w") 416 f = open(stamp, "w")
417 f.close() 417 f.close()
418 418
419 # If we're in task context, write out a signature file for each task
420 # as it completes
421 if not task.endswith("_setscene") and task != "do_setscene" and not file_name:
422 file_name = d.getVar('BB_FILENAME', True)
423 bb.parse.siggen.dump_sigtask(file_name, task, d.getVar('STAMP', True), True)
424
419def del_stamp(task, d, file_name = None): 425def del_stamp(task, d, file_name = None):
420 """ 426 """
421 Removes a stamp for a given task 427 Removes a stamp for a given task
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index 494282b247..550280339c 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -47,6 +47,9 @@ class SignatureGenerator(object):
47 def stampfile(self, stampbase, file_name, taskname, extrainfo): 47 def stampfile(self, stampbase, file_name, taskname, extrainfo):
48 return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.') 48 return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
49 49
50 def dump_sigtask(self, fn, task, stampbase, runtime):
51 return
52
50class SignatureGeneratorBasic(SignatureGenerator): 53class SignatureGeneratorBasic(SignatureGenerator):
51 """ 54 """
52 """ 55 """