summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index f457ec21ef..212d297af4 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -510,7 +510,7 @@ class RunQueueData:
510 # We need to do this separately since we need all of self.runq_depends to be complete before this is processed 510 # We need to do this separately since we need all of self.runq_depends to be complete before this is processed
511 extradeps = {} 511 extradeps = {}
512 for task in recursivetasks: 512 for task in recursivetasks:
513 extradeps[task] = set() 513 extradeps[task] = set(self.runq_depends[task])
514 tasknames = recursivetasks[task] 514 tasknames = recursivetasks[task]
515 seendeps = set() 515 seendeps = set()
516 seenfnid = [] 516 seenfnid = []
@@ -527,10 +527,15 @@ class RunQueueData:
527 generate_recdeps(n) 527 generate_recdeps(n)
528 generate_recdeps(task) 528 generate_recdeps(task)
529 529
530 # Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
531 recursivetaskset = set(recursivetasks.keys())
532 for task in recursivetasks:
533 extradeps[task].difference_update(recursivetaskset)
534
530 for task in xrange(len(taskData.tasks_name)): 535 for task in xrange(len(taskData.tasks_name)):
531 # Add in extra dependencies 536 # Add in extra dependencies
532 if task in extradeps: 537 if task in extradeps:
533 self.runq_depends[task].update(extradeps[task]) 538 self.runq_depends[task] = extradeps[task]
534 # Remove all self references 539 # Remove all self references
535 if task in self.runq_depends[task]: 540 if task in self.runq_depends[task]:
536 logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], self.runq_depends[task]) 541 logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], self.runq_depends[task])