sstate: Write out siginfo files for non-sstate tasks

Submitted by Richard Purdie on Dec. 18, 2013, 1:49 p.m.

Details

Message ID 1387374563.6402.40.camel@ted
State Accepted
Commit 04d108cd16f5ad8f92a62ea537d1330fee712470
Headers show

Commit Message

Richard Purdie Dec. 18, 2013, 1:49 p.m.
Currently siginfo files are only written for sstate tasks. In order to be truly
debuggable, its helpful to have the siginfo for intermediate tasks. This
adds that functionality so the extra siginfo files are written out too.

This will be used to add better sstate debugging in future changes.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---

Patch hide | download patch | download mbox

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 517c100..678d5e3 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -735,3 +735,14 @@  def setscene_depvalid(task, taskdependees, notneeded, d):
         return False
     return True
 
+addhandler sstate_eventhandler
+sstate_eventhandler[eventmask] = "bb.build.TaskSucceeded"
+python sstate_eventhandler() {
+    d = e.data
+    # When we write an sstate package we rewrite the SSTATE_PKG
+    spkg = d.getVar('SSTATE_PKG', True)
+    if not spkg.endswith(".tgz"):
+        taskname = d.getVar("BB_RUNTASK", True)[3:]
+        bb.siggen.dump_this_task(d.getVar('SSTATE_PKG', True) + '_' + taskname + ".tgz" ".siginfo", d)
+}
+