[oe-commits] [openembedded-core] 51/82: externalsrc: use shared stamp directory if B=S

git at git.openembedded.org git at git.openembedded.org
Sun Mar 20 07:53:01 UTC 2016


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

commit 2972d64d71093054bd65c406caca9c2f04ddfd6e
Author: Markus Lehtonen <markus.lehtonen at linux.intel.com>
AuthorDate: Fri Mar 18 09:41:51 2016 +0200

    externalsrc: use shared stamp directory if B=S
    
    We have a common build directory for all target architectures if
    externalsrc is used and ${B}=${S}. In this case we also need to have a
    common stamp directory. The reason is that e.g. changing MACHINE will
    basically "invalidate" the artefacts in ${B} (wrt. to the new MACHINE)
    but old stamp files with matching hashes from an earlier build might be
    available in the machine-specific stamps directory and tasks would not
    be correctly re-run.
    
    Previous attempt in f44f12af346888bdeb3ae01a275cb5dd4396b505 to handle
    this correctly was faulty as it threw some spurious warnings and caused
    do_configure to be re-run in every build if that would not be necessary.
    
    [YOCTO #8950]
    [YOCTO #9237]
    
    Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/externalsrc.bbclass | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index 0ec338c..d3cede2 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -92,15 +92,13 @@ python () {
         d.appendVar('RM_WORK_EXCLUDE', ' ' + d.getVar('PN', True))
 
         # If B=S the same builddir is used even for different architectures.
-        # Thus, use a shared CONFIGURESTAMPFILE so that change of do_configure
-        # task hash is correctly detected if e.g. MACHINE changes. In addition,
-        # do_configure needs to depend on the stamp file so that the task is
-        # re-run when the stamp was changed since the last run on this
-        # architecture.
+        # Thus, use a shared CONFIGURESTAMPFILE and STAMP directory so that
+        # change of do_configure task hash is correctly detected and stamps are
+        # invalidated if e.g. MACHINE changes.
         if d.getVar('S', True) == d.getVar('B', True):
             configstamp = '${TMPDIR}/work-shared/${PN}/${EXTENDPE}${PV}-${PR}/configure.sstate'
             d.setVar('CONFIGURESTAMPFILE', configstamp)
-            d.setVarFlag('do_configure', 'file-checksums', configstamp + ':True')
+            d.setVar('STAMP', '${STAMPS_DIR}/work-shared/${PN}/${EXTENDPE}${PV}-${PR}')
 }
 
 python externalsrc_configure_prefunc() {

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


More information about the Openembedded-commits mailing list