This example should be buildable with a recent nightly rust and just executing make.
The project uses the aarch64-unknown-none target, and has additional rustflags in .cargo/config. However, it seems that xbuild is ignoring the contents of .cargo/config when it builds the sysroot crates.
In the example uploaded, it is set that no hard-float code should be emitted (-fp-armv8). This is honored for the actual crate being compiled, but not for the sysroot.
Here's a dissasembly of the emitted code where you can see that with xbuild, an ARM floating point register (q0) is being emitted:
Hi,
for the following description please refer to an example uploaded to https://github.com/rust-embedded/rust-raspi3-tutorial/tree/no_float/float_reg_emission
This example should be buildable with a recent nightly rust and just executing
make
.The project uses the
aarch64-unknown-none
target, and has additional rustflags in.cargo/config
. However, it seems that xbuild is ignoring the contents of.cargo/config
when it builds the sysroot crates.In the example uploaded, it is set that no hard-float code should be emitted (
-fp-armv8
). This is honored for the actual crate being compiled, but not for the sysroot.Here's a dissasembly of the emitted code where you can see that with
xbuild
, an ARM floating point register (q0
) is being emitted:Using
xargo
within the same example, this doesn't happen:No float regs here: