multilib.conf: Ensure that RECIPE_SYSROOT is unchanged for native

Ensure that RECIPE_SYSROOT is the same for -native recipes whether
multilib.conf is included or not.

Without this change task signatures for -native recipes change when
switching between MACHINEs that require multilib.conf and those that
don't.

This fix was one of the ones suggested by Khem Raj in
http://lists.openembedded.org/pipermail/openembedded-core/2019-December/290303.html

Add test_sstate_multilib_or_not_native_samesigs test case to
sstatetests.py to ensure that this stays fixed.

(From OE-Core rev: c3e957409bf68e7b310e27781ac91d24cf4452bf)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit aa05f1ded71366b86eda7fce24d8b5395e85ada2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mike Crowe
2019-12-17 08:02:25 +00:00
committed by Richard Purdie
parent 8fdf082c11
commit 297debd5ea
2 changed files with 41 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ MULTILIBS ??= "multilib:lib32"
STAGING_DIR_HOST = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
STAGING_DIR_TARGET = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
RECIPE_SYSROOT_class-native = "${WORKDIR}/recipe-sysroot"
INHERIT += "multilib_global"

View File

@@ -446,6 +446,46 @@ BB_SIGNATURE_HANDLER = "OEBasicHash"
self.assertCountEqual(files1, files2)
def test_sstate_multilib_or_not_native_samesigs(self):
"""The sstate checksums of two native recipes (and their dependencies)
where the target is using multilib in one but not the other
should be the same. We use the qemux86copy machine to test
this.
"""
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86\"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("binutils-native -S none")
self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
TCLIBCAPPEND = \"\"
MACHINE = \"qemux86copy\"
BB_SIGNATURE_HANDLER = "OEBasicHash"
""")
self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("binutils-native -S none")
def get_files(d):
f = []
for root, dirs, files in os.walk(d):
for name in files:
f.append(os.path.join(root, name))
return f
files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps")
files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.maxDiff = None
self.assertCountEqual(files1, files2)
def test_sstate_noop_samesigs(self):
"""
The sstate checksums of two builds with these variables changed or