diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-04 16:39:11 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-04 17:40:38 +0100 |
commit | 3051f3644496ab570f3c6fb8f5def9d5843b1508 (patch) | |
tree | 256a22051801518a0eb2c012826a03210c18bf4e /bitbake/lib/bb/runqueue.py | |
parent | ee89e38d478b5f9e13dd87c9333f9c4d56d51e3e (diff) | |
download | poky-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.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 |