summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-21 22:36:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-26 22:09:44 +0100
commit857cf2d7b39f7e6f0445fea6a591dd27061142ea (patch)
tree69e9b56c77f0b58ca46ec05ae2f4884d7ec83a9e
parent9632185627369c390d994b52c28f2c2359886cbc (diff)
downloadpoky-857cf2d7b39f7e6f0445fea6a591dd27061142ea.tar.gz
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 <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/rust-common.bbclass1
-rw-r--r--meta/recipes-devtools/rust/rust-common.inc1
2 files changed, 2 insertions, 0 deletions
diff --git a/meta/classes/rust-common.bbclass b/meta/classes/rust-common.bbclass
index 2093654ac6..70f1ee0e3b 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):
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):
70 if ('riscv64' in feat) or ('riscv32' in feat): 70 if ('riscv64' in feat) or ('riscv32' in feat):
71 f.append("+a,+c,+d,+f,+m") 71 f.append("+a,+c,+d,+f,+m")
72 return f 72 return f
73llvm_features_from_tune[vardepvalue] = "${@llvm_features_from_tune(d)}"
73 74
74# TARGET_CC_ARCH changes from build/cross/target so it'll do the right thing 75# TARGET_CC_ARCH changes from build/cross/target so it'll do the right thing
75# this should go away when https://github.com/rust-lang/rust/pull/31709 is 76# this should go away when https://github.com/rust-lang/rust/pull/31709 is