diff options
| -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]) |
