From fe5f742865c6578b99396ddda282c71c0a4dc557 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 25 May 2011 23:19:41 +0100 Subject: 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 --- bitbake/lib/bb/build.py | 6 ++++++ bitbake/lib/bb/siggen.py | 3 +++ 2 files changed, 9 insertions(+) (limited to 'bitbake') diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index 80bb887..f1384ef 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): f = open(stamp, "w") f.close() + # If we're in task context, write out a signature file for each task + # as it completes + if not task.endswith("_setscene") and task != "do_setscene" and not file_name: + file_name = d.getVar('BB_FILENAME', True) + bb.parse.siggen.dump_sigtask(file_name, task, d.getVar('STAMP', True), True) + def del_stamp(task, d, file_name = None): """ Removes a stamp for a given task diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 494282b..5502803 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py @@ -47,6 +47,9 @@ class SignatureGenerator(object): def stampfile(self, stampbase, file_name, taskname, extrainfo): return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.') + def dump_sigtask(self, fn, task, stampbase, runtime): + return + class SignatureGeneratorBasic(SignatureGenerator): """ """ -- cgit v1.1