diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 9 |
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]) |