[oe-commits] [openembedded-core] 04/13: sstate: add support for caching shared workdir tasks

git at git.openembedded.org git at git.openembedded.org
Wed Dec 19 23:04:21 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 709a21cc0c4e14f14f08cbd73590c0161d8dcd94
Author: Michael Ho <Michael.Ho at bmw.de>
AuthorDate: Thu Nov 29 14:21:36 2018 +0200

    sstate: add support for caching shared workdir tasks
    
    The sstate bbclass uses workdir as a hardcoded string in path
    manipulations. This means that the sstate caching mechanism does
    not work for the work-shared directory which the kernel uses to
    share its build configuration and source files for out of tree
    kernel modules.
    
    This commit modifies the path manipulation mechanism to use the
    work-shared directory if detected in the paths when handling the
    sstate cache packages.
    
    Signed-off-by: Michael Ho <Michael.Ho at bmw.de>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/sstate.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 8b48ab4..c856007 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -362,7 +362,10 @@ def sstate_installpkgdir(ss, d):
 
     for plain in ss['plaindirs']:
         workdir = d.getVar('WORKDIR')
+        sharedworkdir = os.path.join(d.getVar('TMPDIR', True), "work-shared")
         src = sstateinst + "/" + plain.replace(workdir, '')
+        if sharedworkdir in plain:
+            src = sstateinst + "/" + plain.replace(sharedworkdir, '')
         dest = plain
         bb.utils.mkdirhier(src)
         prepdir(dest)
@@ -620,8 +623,11 @@ def sstate_package(ss, d):
         os.rename(state[1], sstatebuild + state[0])
 
     workdir = d.getVar('WORKDIR')
+    sharedworkdir = os.path.join(d.getVar('TMPDIR', True), "work-shared")
     for plain in ss['plaindirs']:
         pdir = plain.replace(workdir, sstatebuild)
+        if sharedworkdir in plain:
+            pdir = plain.replace(sharedworkdir, sstatebuild)
         bb.utils.mkdirhier(plain)
         bb.utils.mkdirhier(pdir)
         os.rename(plain, pdir)

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


More information about the Openembedded-commits mailing list