summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
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:40:38 +0100
commit3051f3644496ab570f3c6fb8f5def9d5843b1508 (patch)
tree256a22051801518a0eb2c012826a03210c18bf4e /bitbake/lib/bb/runqueue.py
parentee89e38d478b5f9e13dd87c9333f9c4d56d51e3e (diff)
downloadpoky-3051f3644496ab570f3c6fb8f5def9d5843b1508.tar.gz
bitbake: runqueue.py: Fix recursive task pruning to only prune self referencing tasks
(Bitbake rev: 4962a59793504b26b06cf058dda600a07fbbd951) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py6
1 files changed, 4 insertions, 2 deletions
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:
376 376
377 runq_build = [] 377 runq_build = []
378 recursivetasks = {} 378 recursivetasks = {}
379 recursivetasksselfref = set()
379 380
380 taskData = self.taskData 381 taskData = self.taskData
381 382
@@ -494,6 +495,8 @@ class RunQueueData:
494 recursivetasks[task] = tasknames 495 recursivetasks[task] = tasknames
495 add_build_dependencies(taskData.depids[fnid], tasknames, depends) 496 add_build_dependencies(taskData.depids[fnid], tasknames, depends)
496 add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends) 497 add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
498 if taskData.tasks_name[task] in tasknames:
499 recursivetasksselfref.add(task)
497 500
498 self.runq_fnid.append(taskData.tasks_fnid[task]) 501 self.runq_fnid.append(taskData.tasks_fnid[task])
499 self.runq_task.append(taskData.tasks_name[task]) 502 self.runq_task.append(taskData.tasks_name[task])
@@ -528,9 +531,8 @@ class RunQueueData:
528 generate_recdeps(task) 531 generate_recdeps(task)
529 532
530 # Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work 533 # Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
531 recursivetaskset = set(recursivetasks.keys())
532 for task in recursivetasks: 534 for task in recursivetasks:
533 extradeps[task].difference_update(recursivetaskset) 535 extradeps[task].difference_update(recursivetasksselfref)
534 536
535 for task in xrange(len(taskData.tasks_name)): 537 for task in xrange(len(taskData.tasks_name)):
536 # Add in extra dependencies 538 # Add in extra dependencies