diff options
Diffstat (limited to 'poky/meta/classes/staging.bbclass')
-rw-r--r-- | poky/meta/classes/staging.bbclass | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/poky/meta/classes/staging.bbclass b/poky/meta/classes/staging.bbclass index 3fcbc9f15..939042eb4 100644 --- a/poky/meta/classes/staging.bbclass +++ b/poky/meta/classes/staging.bbclass @@ -383,8 +383,6 @@ python extend_recipe_sysroot() { lock = bb.utils.lockfile(recipesysroot + "/sysroot.lock") fixme = {} - fixme[''] = [] - fixme['native'] = [] seendirs = set() postinsts = [] multilibs = {} @@ -471,7 +469,14 @@ python extend_recipe_sysroot() { os.symlink(c + "." + taskhash, depdir + "/" + c) manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "populate_sysroot", d, multilibs) + if d2 is not d: + # If we don't do this, the recipe sysroot will be placed in the wrong WORKDIR for multilibs + # We need a consistent WORKDIR for the image + d2.setVar("WORKDIR", d.getVar("WORKDIR")) destsysroot = d2.getVar("RECIPE_SYSROOT") + # We put allarch recipes into the default sysroot + if manifest and "allarch" in manifest: + destsysroot = d.getVar("RECIPE_SYSROOT") native = False if c.endswith("-native") or "-cross-" in c or "-crosssdk" in c: @@ -479,12 +484,13 @@ python extend_recipe_sysroot() { if manifest: newmanifest = collections.OrderedDict() + targetdir = destsysroot if native: - fm = fixme['native'] targetdir = recipesysrootnative - else: - fm = fixme[''] - targetdir = destsysroot + if targetdir not in fixme: + fixme[targetdir] = [] + fm = fixme[targetdir] + with open(manifest, "r") as f: manifests[dep] = manifest for l in f: @@ -542,12 +548,7 @@ python extend_recipe_sysroot() { bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists)) for f in fixme: - if f == '': - staging_processfixme(fixme[f], recipesysroot, recipesysroot, recipesysrootnative, d) - elif f == 'native': - staging_processfixme(fixme[f], recipesysrootnative, recipesysroot, recipesysrootnative, d) - else: - staging_processfixme(fixme[f], multilibs[f].getVar("RECIPE_SYSROOT"), recipesysroot, recipesysrootnative, d) + staging_processfixme(fixme[f], f, recipesysroot, recipesysrootnative, d) for p in postinsts: subprocess.check_output(p, shell=True, stderr=subprocess.STDOUT) |