aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-04 16:39:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-04 17:39:53 +0100
commit4962a59793504b26b06cf058dda600a07fbbd951 (patch)
tree4508accda152fe88d49a0a56e42181b1990432a9
parentebd3ecdb5f3c6d3fe1fad27cbed4d80f4277e92e (diff)
downloadbitbake-4962a59793504b26b06cf058dda600a07fbbd951.tar.gz
bitbake-4962a59793504b26b06cf058dda600a07fbbd951.tar.bz2
bitbake-4962a59793504b26b06cf058dda600a07fbbd951.zip
runqueue.py: Fix recursive task pruning to only prune self referencing tasks
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/runqueue.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 212d297a..cb4ffb21 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -376,6 +376,7 @@ class RunQueueData:
runq_build = []
recursivetasks = {}
+ recursivetasksselfref = set()
taskData = self.taskData
@@ -494,6 +495,8 @@ class RunQueueData:
recursivetasks[task] = tasknames
add_build_dependencies(taskData.depids[fnid], tasknames, depends)
add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
+ if taskData.tasks_name[task] in tasknames:
+ recursivetasksselfref.add(task)
self.runq_fnid.append(taskData.tasks_fnid[task])
self.runq_task.append(taskData.tasks_name[task])
@@ -528,9 +531,8 @@ class RunQueueData:
generate_recdeps(task)
# Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
- recursivetaskset = set(recursivetasks.keys())
for task in recursivetasks:
- extradeps[task].difference_update(recursivetaskset)
+ extradeps[task].difference_update(recursivetasksselfref)
for task in xrange(len(taskData.tasks_name)):
# Add in extra dependencies