From 6e1105e1e8764eded2d0dff47fe095b81db75aa1 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Fri, 11 Nov 2011 18:38:15 +0000 Subject: lib/bb/runqueue: avoid marking runtime dependencies as covered The code which populates setscene_covered list was adding a task to the covered list if all of the tasks that depend upon it were also covered; however, this means that tasks that would have installed "runtime" dependencies were being marked as covered also, e.g. gmp-native and mpfr-native are needed by gcc-cross at runtime since they are shared libraries that gcc links to, but their do_populate_sysroot tasks were being marked as covered, resulting in failures later on if gcc-cross was available from sstate but mpfr-native and gmp-native weren't. Since we currently have no real way to handle runtime dependencies for native packages, add a workaround which avoids marking tasks as covered if one or more of their revdeps are from a different recipe. Fixes [YOCTO #1536]. (Bitbake rev: e492eb4dc9016cd0bed194377c6f2b85cf0ad113) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index aca06b57be..675f830712 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1203,8 +1203,13 @@ class RunQueueExecuteTasks(RunQueueExecute): if task in self.rq.scenequeue_covered: continue if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered): - self.rq.scenequeue_covered.add(task) found = True + for revdep in self.rqdata.runq_revdeps[task]: + if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]: + found = False + break + if found: + self.rq.scenequeue_covered.add(task) # Detect when the real task needs to be run anyway by looking to see # if any of its dependencies within the same package are scheduled -- cgit v1.2.3-54-g00ecf