From 72d67410e92207a98a801ddf0cb9f1297a752975 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 21 Aug 2021 22:36:29 +0100 Subject: rust-cross*: Fix OVERRRIDE references in task signature computation The oeqa selftest test: sstatetests.SStateTests.test_sstate_sametune_samesigs which checks if the sstate checksums of two identical machines (using the same tune) are the same, apart from changes within the machine specific stamps directory, fails on the assertion: self.assertCountEqual(files1, files2) due to the signature of various 32 bit package builds such as: x86_64-linux/lib32-rust-cross-i686 x86_64-linux/rust-cross-i686 x86-pokymllib32-linux/lib32-libstd-rs x86-pokymllib32-linux/lib32-rust differing. Jumping down the rabbit hole past all the bitbake-diffsig outputs that differ due to dependent hashes, you come to a diff of: -Variable MACHINEOVERRIDES value is ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '', d)}qemuall:${MACHINE} +Variable MACHINEOVERRIDES value is ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '', d)}qemuall:${MACHINE}:qemux86 in stamps/x86_64-linux/rust-cross-i686/1.54.0-r0.do_rust_gen_target. This is because there are two rust functions referencing OVERRIDES related variables (target_is_armv7 and llvm_features_from_tune). These indirectly influnce the build and should be excluded from the signatures directly as is done in other toolchain recipes, e.g.: 39bfa0dd32 recipes/*-cross recipes: ignore TARGET_ARCH sstate hash Signed-off-by: Randy MacLeod Signed-off-by: Richard Purdie --- meta/recipes-devtools/rust/rust-common.inc | 1 + 1 file changed, 1 insertion(+) (limited to 'meta/recipes-devtools/rust/rust-common.inc') diff --git a/meta/recipes-devtools/rust/rust-common.inc b/meta/recipes-devtools/rust/rust-common.inc index f574152815..153fa3aa97 100644 --- a/meta/recipes-devtools/rust/rust-common.inc +++ b/meta/recipes-devtools/rust/rust-common.inc @@ -70,6 +70,7 @@ def llvm_features_from_tune(d): if ('riscv64' in feat) or ('riscv32' in feat): f.append("+a,+c,+d,+f,+m") return f +llvm_features_from_tune[vardepvalue] = "${@llvm_features_from_tune(d)}" # TARGET_CC_ARCH changes from build/cross/target so it'll do the right thing # this should go away when https://github.com/rust-lang/rust/pull/31709 is -- cgit 1.2.3-korg