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 <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4494f59a26
commit
6e1105e1e8
|
@ -1203,8 +1203,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
||||||
if task in self.rq.scenequeue_covered:
|
if task in self.rq.scenequeue_covered:
|
||||||
continue
|
continue
|
||||||
if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
|
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
|
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
|
# 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
|
# if any of its dependencies within the same package are scheduled
|
||||||
|
|
Loading…
Reference in New Issue