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 17:13:19 +0100 | 
| commit | af7cd7823a8cc95c9f849498b2416cdb0d4d103e (patch) | |
| tree | 0be0ff50f2ab83d8ffadc2eb7b1b26aebfd1c038 | |
| parent | cc1c481560b81c223170230430308c7e2f08c812 (diff) | |
| download | openembedded-core-af7cd7823a8cc95c9f849498b2416cdb0d4d103e.tar.gz openembedded-core-af7cd7823a8cc95c9f849498b2416cdb0d4d103e.tar.bz2 openembedded-core-af7cd7823a8cc95c9f849498b2416cdb0d4d103e.zip | |
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 <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):  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] | 
