summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-29 16:33:26 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-30 00:02:52 +0100
commit842ad94cad240b7fead97bf3ac03fa70323d24e3 (patch)
treefe5aec8162ef1ed5a5683eb7dd9c9965fcd22e34 /meta
parent96fbd39ba32362416c18d90bb7a81eb6a76912e0 (diff)
downloadpoky-842ad94cad240b7fead97bf3ac03fa70323d24e3.tar.gz
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) (From OE-Core rev: 7631301b5fc27ab9dda00fcf3d4a0faf685c26dd) (From OE-Core rev: e167e99621009f92d677ff6dac303d09e42361b5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/staging.bbclass4
-rw-r--r--meta/classes/utils.bbclass2
2 files changed, 6 insertions, 0 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 3fcbc9f15d..f04c7b637d 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -471,6 +471,10 @@ python extend_recipe_sysroot() {
471 os.symlink(c + "." + taskhash, depdir + "/" + c) 471 os.symlink(c + "." + taskhash, depdir + "/" + c)
472 472
473 manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "populate_sysroot", d, multilibs) 473 manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "populate_sysroot", d, multilibs)
474 if d2 is not d:
475 # If we don't do this, the recipe sysroot will be placed in the wrong WORKDIR for multilibs
476 # We need a consistent WORKDIR for the image
477 d2.setVar("WORKDIR", d.getVar("WORKDIR"))
474 destsysroot = d2.getVar("RECIPE_SYSROOT") 478 destsysroot = d2.getVar("RECIPE_SYSROOT")
475 479
476 native = False 480 native = False
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index 4f016e3d00..3f4f51b56b 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -338,6 +338,8 @@ def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = '
338 variants = d.getVar("MULTILIB_VARIANTS") or "" 338 variants = d.getVar("MULTILIB_VARIANTS") or ""
339 for item in variants.split(): 339 for item in variants.split():
340 localdata = get_multilib_datastore(item, d) 340 localdata = get_multilib_datastore(item, d)
341 # We need WORKDIR to be consistent with the original datastore
342 localdata.setVar("WORKDIR", d.getVar("WORKDIR"))
341 value = localdata.getVar(var) or "" 343 value = localdata.getVar(var) or ""
342 if value != "": 344 if value != "":
343 if need_split: 345 if need_split: