externalsrc: use shared CONFIGURESTAMPFILE if B=S
External source tree is used as the builddir even for different architectures in case ${B}=${S}. This may cause problems if MACHINE is changed as do_configure is not being re-run (which would run make clean). This patches changes externalsrc to use a common (per-recipe) CONFIGURESTAMPFILE under 'work-shared' if ${B}=${S}. In addition, do_configure will depend on changes of this stamp file. As a result, do_configure is re-run and the build dir is cleaned correctly if a rebuild for different MACHINE is done. [YOCTO #8950] (From OE-Core rev: f44f12af346888bdeb3ae01a275cb5dd4396b505) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
c6b8227083
commit
c43da12333
|
@ -85,6 +85,17 @@ python () {
|
|||
|
||||
# Ensure compilation happens every time
|
||||
d.setVarFlag('do_compile', 'nostamp', '1')
|
||||
|
||||
# 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.
|
||||
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')
|
||||
}
|
||||
|
||||
python externalsrc_compile_prefunc() {
|
||||
|
|
Loading…
Reference in New Issue