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

git at git.openembedded.org git at git.openembedded.org
Mon Jul 2 10:46:30 UTC 2018


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

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

commit 8088c01f4266302ae35b8470b1233eee86fe7de2
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.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/staging.bbclass | 4 ++++
 meta/classes/utils.bbclass   | 3 +++
 2 files changed, 7 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..09a07ec 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -338,6 +338,9 @@ 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)
+        # Used in populate_sdk_base we want it to point at the correct workdir
+        if var == "STAGING_BINDIR_CROSS":
+            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