diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-02 09:05:17 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-02 21:37:47 +0100 |
commit | 522d4224984e39af9420c7b6f3b64d116e70ec6d (patch) | |
tree | 10d5803b35effc09bee601337c7bd02c217f2436 | |
parent | 29353297b508881451b8e97f7d1db2eadaa653f6 (diff) | |
download | poky-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>
-rw-r--r-- | meta/lib/oe/sstatesig.py | 6 |
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): | |||
372 | def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache): | 372 | def 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] |