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