diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-10 18:01:01 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-11 23:26:33 +0000 |
commit | 43328feccc95a65e6774011aead5ae9f31a92275 (patch) | |
tree | 90a58b8b41e851fa48d2fab7dc17a1ccf6b492e5 /bitbake | |
parent | 7b905caf60b1d47e6ff1548ce134a5b678418534 (diff) | |
download | poky-43328feccc95a65e6774011aead5ae9f31a92275.tar.gz |
bitbake: runqueue: Fix setscene task dependencies
Debugging suggests that setscene tasks are being a little greedy about their
dependencies, for example, lsof is insisting that gcc-runtime's do_package
is installed. If it isn't, its requiring gcc to rebuild.
If gcc-runtime do_package_write_xxx and do_packagedata is available, there
is no reason do_package should be needed.
The reason this is happening appears to be from the batching up of task
dependencies code, rather than setscene tasks stopping when passing over
a setscene task, they were being carried forward. This patch fixes it
so the data is 'zeroed' when passing over a setscene task boundary,
which gives the dependency graph that is expected.
After this patch, lsof will rebuild quite happily without
gcc-runtime:do_package being present, as expected. This should lead to
less dependencies being installed for builds from sstate and generally
better performance in general.
(Bitbake rev: f8bcb0a1e3b008b71c9a7cd21f76d0906f2d8068)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 57b1cca525..44f270be52 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -1721,6 +1721,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1721 | sq_revdeps_new[point] = set() | 1721 | sq_revdeps_new[point] = set() |
1722 | if point in self.rqdata.runq_setscene: | 1722 | if point in self.rqdata.runq_setscene: |
1723 | sq_revdeps_new[point] = tasks | 1723 | sq_revdeps_new[point] = tasks |
1724 | tasks = set() | ||
1724 | for dep in self.rqdata.runq_depends[point]: | 1725 | for dep in self.rqdata.runq_depends[point]: |
1725 | if point in sq_revdeps[dep]: | 1726 | if point in sq_revdeps[dep]: |
1726 | sq_revdeps[dep].remove(point) | 1727 | sq_revdeps[dep].remove(point) |