diff options
author | Alejandro Enedino Hernandez Samaniego <alejandro.enedino.hernandez-samaniego@xilinx.com> | 2018-11-20 10:22:51 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-22 10:45:14 +0000 |
commit | d9175f3748fbf92be4b8858070fd19bd92fa9593 (patch) | |
tree | b6531468e34cb32d361d7037006faca2bf1ac73c /bitbake/lib | |
parent | ba1456ab7e6101ae83532ef5e01d5c252d13465c (diff) | |
download | poky-d9175f3748fbf92be4b8858070fd19bd92fa9593.tar.gz |
bitbake: cooker: Fix multiconfig dependencies
When multiconfig is enabled the cooker adds providers
for all the targets to be built on all the multiconfig
variables that were set, regardless if there is a dependency
to it or not.
This causes an issue when a certain target is incompatible
with one or more of the multiconfigs, e.g. the target is not
in COMPATIBLE_MACHINE for one of the MACHINEs being built,
causing the cooker to error out since no providers can be
found for that certain target on that multiconfig.
This patch modifies the behavior to only look for PROVIDERS
for a target on the multiconfig that was selected to be built,
PROVIDERS are then looked for in other multiconfigs only when
there is a defined dependency to them.
[YOCTO #12985]
(Bitbake rev: f2106a3a767542359fdde238abcf5fe35ab3a144)
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 71a0eba8e4..16681ba244 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -609,14 +609,7 @@ class BBCooker: | |||
609 | k2 = k.split(":do_") | 609 | k2 = k.split(":do_") |
610 | k = k2[0] | 610 | k = k2[0] |
611 | ktask = k2[1] | 611 | ktask = k2[1] |
612 | if mc: | 612 | taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k) |
613 | # Provider might be from another mc | ||
614 | for mcavailable in self.multiconfigs: | ||
615 | # The first element is empty | ||
616 | if mcavailable: | ||
617 | taskdata[mcavailable].add_provider(localdata[mcavailable], self.recipecaches[mcavailable], k) | ||
618 | else: | ||
619 | taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k) | ||
620 | current += 1 | 613 | current += 1 |
621 | if not ktask.startswith("do_"): | 614 | if not ktask.startswith("do_"): |
622 | ktask = "do_%s" % ktask | 615 | ktask = "do_%s" % ktask |