From 3051f3644496ab570f3c6fb8f5def9d5843b1508 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 4 Jul 2012 16:39:11 +0000 Subject: bitbake: runqueue.py: Fix recursive task pruning to only prune self referencing tasks (Bitbake rev: 4962a59793504b26b06cf058dda600a07fbbd951) Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 212d297af4..cb4ffb21fb 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/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 -- cgit v1.2.3-54-g00ecf