summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-14 10:31:51 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-15 17:44:59 +0100
commitf5f2467e4bdd1a3fda9b443712d32502645ebe3e (patch)
treedbee5e17187aaa7e02fff5a60ea9d036abb2ee17
parentfab7da4f8030a4067db0522f77eaa6d3b501c68f (diff)
downloadpoky-f5f2467e4bdd1a3fda9b443712d32502645ebe3e.tar.gz
kernel/rm_work: Improve interaction
The do_shared_workdir task does leave behind the necessary information in shared-work after it completes. We don't make this a "full" sstate task however since that means tarring up and copying what is usually a large amount of data which would be better extracted straight from the original SCM. The issue with rm_work occurs since it removes the do_shared_workdir stamp meaning subsequent builds will add it back if they need to touch any kernel modules for example. This ends up triggering a near enough complete kernerl rebuild since if configure reruns, populate_sysroot has to rerun. This change promotes the task to have a "setscene" variant but it doesn't use any of the sstate class lifting to generate the sstate file. The sstate function will therefore never get called since the sstate object will never exist. We can add the task to the list of tasks rm_work promotes to a setscene variant and unwanted rebuilds of the kernel should be avoided. (From OE-Core rev: 55b4f7fd217f0c65d457c731150340c18fb3fa19) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel.bbclass5
-rw-r--r--meta/classes/rm_work.bbclass2
2 files changed, 6 insertions, 1 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 74092e96aa..54725baaf1 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -235,6 +235,11 @@ kernel_do_install() {
235do_install[prefuncs] += "package_get_auto_pr" 235do_install[prefuncs] += "package_get_auto_pr"
236 236
237addtask shared_workdir after do_compile before do_compile_kernelmodules 237addtask shared_workdir after do_compile before do_compile_kernelmodules
238addtask shared_workdir_setscene
239
240do_shared_workdir_setscene () {
241 exit 1
242}
238 243
239emit_depmod_pkgdata() { 244emit_depmod_pkgdata() {
240 # Stash data for depmod 245 # Stash data for depmod
diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index e68d02a783..5e9efc1d06 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -49,7 +49,7 @@ do_rm_work () {
49 cd `dirname ${STAMP}` 49 cd `dirname ${STAMP}`
50 for i in `basename ${STAMP}`* 50 for i in `basename ${STAMP}`*
51 do 51 do
52 for j in ${SSTATETASKS} 52 for j in ${SSTATETASKS} do_shared_workdir
53 do 53 do
54 case $i in 54 case $i in
55 *do_setscene*) 55 *do_setscene*)