On Tue, Oct 25, 2022 at 03:56 AM, Richard Purdie wrote:
I'm a bit worried that we're seeing conflicting flags, it makes me
wonder whether we have the right ones in our tune, or, are we mapping
between RUST_HOST_SYS and HOST_SYS correctly.

I'm guessing this is from "-mfpu=vfpv3-d16" and that we choose a
different fpu option?

If the difference really is something that rust simply made a different
choice on, we should set CRATE_CC_NO_DEFAULTS. rust-native is a bit
messy and whilst I would prefer we found out why the flags don't work,
I think setting the value for target and probably nativesdk might at
least be an improvement:

CRATE_CC_NO_DEFAULTS:class-target = "X"
CRATE_CC_NO_DEFAULTS:class-nativesdk = "X"

or we could just clear it for native:

CRATE_CC_NO_DEFAULTS:class-native = ""

with CRATE_CC_NO_DEFAULTS defined rustc_driver can't be built for rust-native with an error:

error: linking with `/data/shared/yocto/poky/build/tmp/work/x86_64-linux/rust-native/1.63.0-r0/wrapper/build-rust-ccld` failed: exit status: 1
  = note: /data/shared/yocto/poky/build/tmp/hosttools/ld: /data/shared/yocto/poky/build/tmp/work/x86_64-linux/rust-native/1.63.0-r0/rustc-1.63.0-src/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_llvm-c2bba4d8034ef27f.rlib(RustWrapper.o): relocation R_X86_64_TPOFF32 against `_ZL9LastError' can not be used when making a shared object; recompile with -fPIC
          collect2: error: ld returned 1 exit status

with

CRATE_CC_NO_DEFAULTS:class-target = "true"
CRATE_CC_NO_DEFAULTS:class-nativesdk = "true"

in rust-target-config.bbclass I can successively build native and target recipes.

I've raised an issue to follow this discussion:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=14947

 

Cheers,

Anton