Hi,

rust-cross-* imported from meta-rust has incorrect signatures, depending on
MACHINEOVERRIDES making it effectively MACHINE_ARCH

as shown by sstate-diff-machines.sh:

  oe-core$ openembedded-core/scripts/sstate-diff-machines.sh
--tmpdir=tmp-glibc --machines="qemux86 qemux86copy qemuarm"
--targets=rust-cross-i686 --analyze

   === Comparing signatures for task do_populate_sysroot.sigdata between
qemux86 and qemux86copy ===
  ERROR: rust-cross-i686 different signature for task
do_populate_sysroot.sigdata between qemux86 and qemux86copy
  NOTE: Reconnecting to bitbake server...
  Hash for dependent task rust/rust-cross_1.54.0.bb:do_install changed from
37177b89e1a76ec6909e82b96628d18981e1364707419717bff49b778eba04b6 to
b7291126cd73c139372aa5fa32fa78be1882005ac62110513dec609d30fbb2ba
  Unable to find matching sigdata for
/OE/build/oe-core/meta-rust/recipes-devtools/rust/rust-cross_1.54.0.bb:do_install
with hashes
37177b89e1a76ec6909e82b96628d18981e1364707419717bff49b778eba04b6 or
b7291126cd73c139372aa5fa32fa78be1882005ac62110513dec609d30fbb2ba
  ...
  ERROR: 2 issues were found in these recipes: rust-cross-i686
  INFO: Output written in:
/OE/build/oe-core/tmp-glibc/sstate-diff/1633081880

  oe-core$ bitbake-diffsigs
/OE/build/oe-core/tmp-glibc/sstate-diff/1633081880/qemu*/*/rust-cross*/*do_rust_gen_targets*
  NOTE: Reconnecting to bitbake server...
  basehash changed from
ece96c782bdfbeaabfb3e9c7e30e4713afa1ed4f1f208f3adcbf0f10f1c25114 to
87bc2d064dc9b7cdd6d91598f8660238ef345385ac4df7474edf918223e6e779
  Variable MACHINE value changed from 'qemux86copy' to 'qemux86'
  Variable MACHINEOVERRIDES value changed:
  @@ -1,3 +1,3 @@
  -${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '',
d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '',
d)}qemuall:${MACHINE}:qemux86
  +${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '',
d)}${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '',
d)}qemuall:${MACHINE}
   TUNE_FEATURES{m32} = Set
   TUNE_FEATURES{mx32} = Unset

Just dropping the suspiciously looking MACHINEOVERRIDES
from meta/classes/rust-common.bbclass
and meta/recipes-devtools/rust/rust-common.inc isn't as easy, because it
was introduced in:
https://github.com/meta-rust/meta-rust/commit/186ec59085be9282ad56541356b7e3d3609e5075
https://github.com/meta-rust/meta-rust/commit/cb4f8294d4b2037e80ff772c985f5ee370e7c956
because of this oe-core change in warrior:
https://github.com/openembedded/openembedded-core/commit/ac83d22eb5031f7fdd09d34a1a46d92fd3e39a3c

and the reason is still valid, e.g. for qemuarm:
$ grep TUNE_FEATURES= env.rust-cross-arm
TUNE_FEATURES="arm vfp cortexa15 neon thumb callconvention-hard"
$ grep MACHINEOVERRIDES= env.rust-cross-arm
MACHINEOVERRIDES="qemuall:armv7ve:qemuarm"

Some other way to detect v7 target should be implemented and now when it's
in oe-core and doesn't need the backwards compatibility with pre-warrior
releases, we probably don't need to look at both TUNE_FEATURES and
MACHINEOVERRIDES when doing that.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156516): 
https://lists.openembedded.org/g/openembedded-core/message/156516
Mute This Topic: https://lists.openembedded.org/mt/85995072/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to