From 296866c38e1b88df42d66bdc32cfed2d5212914c Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Thu, 10 Feb 2011 11:50:16 +0000
Subject: image-swab: Convert to attach strace to the process to obtain the
 required swabber data

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/classes/image-swab.bbclass | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

(limited to 'meta')

diff --git a/meta/classes/image-swab.bbclass b/meta/classes/image-swab.bbclass
index ec949ffe2..b939ec4b4 100644
--- a/meta/classes/image-swab.bbclass
+++ b/meta/classes/image-swab.bbclass
@@ -2,7 +2,7 @@ HOST_DATA ?= "${TMPDIR}/host-contamination-data/"
 SWABBER_REPORT ?= "${LOG_DIR}/swabber/"
 SWABBER_LOGS ?= "${LOG_DIR}/contamination-logs"
 TRACE_LOGDIR ?= "${SWABBER_LOGS}/${PACKAGE_ARCH}"
-export TRACE_LOGFILE = "${TRACE_LOGDIR}/${PN}-${PV}"
+TRACE_LOGFILE = "${TRACE_LOGDIR}/${PN}-${PV}"
 
 SWAB_ORIG_TASK := "${BB_DEFAULT_TASK}"
 BB_DEFAULT_TASK = "generate_swabber_report"
@@ -56,7 +56,22 @@ python() {
        bb.data.setVarFlag('do_setscene', 'depends', " ".join(deps), d)
        logdir = bb.data.expand("${TRACE_LOGDIR}", d)
        bb.utils.mkdirhier(logdir)
-       bb.data.setVar('BB_RUNTASK', 'bitbake-runtask-strace', d)
+    else:
+       bb.data.setVar('STRACEFUNC', '', d)
+}
+
+STRACEPID = "${@os.getpid()}"
+STRACEFUNC = "imageswab_attachstrace"
+
+do_configure[prefuncs] += "${STRACEFUNC}"
+do_compile[prefuncs] += "${STRACEFUNC}"
+
+imageswab_attachstrace () {
+	STRACE=`which strace`
+
+	if [ -x "$STRACE" ]; then
+		swabber-strace-attach "$STRACE -f -o ${TRACE_LOGFILE}-${BB_CURRENTTASK}.log -e trace=open,execve -p ${STRACEPID}" "${TRACE_LOGFILE}-traceattach-${BB_CURRENTTASK}.log"
+	fi
 }
 
 do_generate_swabber_report () {
-- 
cgit v1.2.3