summaryrefslogtreecommitdiffstats
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-02 21:37:47 +0100
commitf1079cd1935e625c6acba3f3a2b2d493fbadddef (patch)
treeb2f31edfb840b4a6ec8cca48ad0cc2e551b03ea9
parente9e1107c6133c5363cf2849339697bc4dad2b2e3 (diff)
downloadpoky-f1079cd1935e625c6acba3f3a2b2d493fbadddef.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) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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: