[oe-commits] [openembedded-core] 01/03: staging/image: Fix multilib recipe sysroot issues

git at git.openembedded.org git at git.openembedded.org
Thu Jul 19 09:55:33 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch sumo-next
in repository openembedded-core.

commit 7631301b5fc27ab9dda00fcf3d4a0faf685c26dd
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Fri Jun 29 16:33:26 2018 +0000

    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 at linuxfoundation.org>
---
 meta/classes/staging.bbclass | 4 ++++
 meta/classes/utils.bbclass   | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 3fcbc9f..f04c7b6 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -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
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index 4f016e3..3f4f51b 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 = '
     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:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list