summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-02 09:05:17 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-02 21:37:47 +0100
commit522d4224984e39af9420c7b6f3b64d116e70ec6d (patch)
tree10d5803b35effc09bee601337c7bd02c217f2436 /meta/lib/oe
parent29353297b508881451b8e97f7d1db2eadaa653f6 (diff)
downloadpoky-522d4224984e39af9420c7b6f3b64d116e70ec6d.tar.gz
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. (From OE-Core rev: af7cd7823a8cc95c9f849498b2416cdb0d4d103e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r--meta/lib/oe/sstatesig.py6
1 files changed, 6 insertions, 0 deletions
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):
372def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache): 372def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
373 d2 = d 373 d2 = d
374 variant = '' 374 variant = ''
375 curr_variant = ''
376 if d.getVar("BBEXTENDCURR") == "multilib":
377 curr_variant = d.getVar("BBEXTENDVARIANT")
378 if "virtclass-multilib" not in d.getVar("OVERRIDES"):
379 curr_variant = "invalid"
375 if taskdata2.startswith("virtual:multilib"): 380 if taskdata2.startswith("virtual:multilib"):
376 variant = taskdata2.split(":")[2] 381 variant = taskdata2.split(":")[2]
382 if curr_variant != variant:
377 if variant not in multilibcache: 383 if variant not in multilibcache:
378 multilibcache[variant] = oe.utils.get_multilib_datastore(variant, d) 384 multilibcache[variant] = oe.utils.get_multilib_datastore(variant, d)
379 d2 = multilibcache[variant] 385 d2 = multilibcache[variant]