From af7cd7823a8cc95c9f849498b2416cdb0d4d103e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 2 Jul 2018 09:05:17 +0000 Subject: lib/oe/sstatesig: Fix task mappings from multilib<->non-multilib contexts If we're in a multilib context already and want a non-multilib context this function returned incorrect values. Try and retain optimisations for the common case not needing to request a datastore but allow the different multilib/non-multilib combinations to work too. This fixes bugs where rootfs generation of a multilib image would write into incorrect locations, or be unable to find sstate manifest files due to incorrect data stores being used to expand data. Signed-off-by: Richard Purdie --- meta/lib/oe/sstatesig.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'meta/lib/oe/sstatesig.py') diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index b82e0f422e..0aa577d44d 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py @@ -372,8 +372,14 @@ def sstate_get_manifest_filename(task, d): def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache): d2 = d variant = '' + curr_variant = '' + if d.getVar("BBEXTENDCURR") == "multilib": + curr_variant = d.getVar("BBEXTENDVARIANT") + if "virtclass-multilib" not in d.getVar("OVERRIDES"): + curr_variant = "invalid" if taskdata2.startswith("virtual:multilib"): variant = taskdata2.split(":")[2] + if curr_variant != variant: if variant not in multilibcache: multilibcache[variant] = oe.utils.get_multilib_datastore(variant, d) d2 = multilibcache[variant] -- cgit 1.2.3-korg