staging/image: Fix multilib recipe sysroot issues

Currently if you enable multilib, then build an image, the multilib
recipe sysroot is build in the wrong WORKDIR. If you then clean and
rebuild the image you see "file exists" errors.

This patch ensures the real WORKDIR is used consistently and then
cleans/rebuilds also work correctly.

(From OE-Core rev: c013ae59a158378d06ecf8eb123df0a10bf986b4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2018-06-29 16:33:26 +00:00
parent e9e1107c61
commit f1079cd193
2 changed files with 6 additions and 0 deletions

View File

@@ -471,6 +471,10 @@ 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")
native = False

View File

@@ -338,6 +338,8 @@ def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = '
variants = d.getVar("MULTILIB_VARIANTS") or ""
for item in variants.split():
localdata = get_multilib_datastore(item, d)
# We need WORKDIR to be consistent with the original datastore
localdata.setVar("WORKDIR", d.getVar("WORKDIR"))
value = localdata.getVar(var) or ""
if value != "":
if need_split: