From 5646749d60b003b30d30d68c342eefb513dd8373 Mon Sep 17 00:00:00 2001 From: Michael Ho Date: Thu, 29 Nov 2018 14:21:36 +0200 Subject: 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. (From OE-Core rev: 27642449f95e38598f9c83948ce109c5891e5877) (From OE-Core rev: f57d83c72b5f53fb10bc8377862668580d331a8c) Signed-off-by: Michael Ho Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- meta/classes/sstate.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'meta/classes') diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 9f059a04a0..e61490ae90 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) -- cgit v1.2.3-54-g00ecf