mirror of
https://git.yoctoproject.org/poky
synced 2026-04-07 14:02:22 +02:00
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:
committed by
Richard Purdie
parent
8fdf082c11
commit
297debd5ea
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user