path: root/meta/classes/rust-common.bbclass
diff options
authorRichard Purdie <>2021-08-21 21:36:29 (GMT)
committerRichard Purdie <>2021-08-26 21:09:44 (GMT)
commit857cf2d7b39f7e6f0445fea6a591dd27061142ea (patch)
tree69e9b56c77f0b58ca46ec05ae2f4884d7ec83a9e /meta/classes/rust-common.bbclass
parent9632185627369c390d994b52c28f2c2359886cbc (diff)
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.<sig> 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 (From OE-Core rev: 72d67410e92207a98a801ddf0cb9f1297a752975) Signed-off-by: Randy MacLeod <> Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta/classes/rust-common.bbclass')
1 files changed, 1 insertions, 0 deletions
diff --git a/meta/classes/rust-common.bbclass b/meta/classes/rust-common.bbclass
index 2093654..70f1ee0 100644
--- a/meta/classes/rust-common.bbclass
+++ b/meta/classes/rust-common.bbclass
@@ -48,6 +48,7 @@ def target_is_armv7(d):
48 return False 48 return False
49 else: 49 else:
50 return True 50 return True
51target_is_armv7[vardepvalue] = "${@target_is_armv7(d)}"
51 52
52# Responsible for taking Yocto triples and converting it to Rust triples 53# Responsible for taking Yocto triples and converting it to Rust triples
53def rust_base_triple(d, thing): 54def rust_base_triple(d, thing):