Rust ESP32-S3 problème de build : impossible de compiler xtensa-lx-rt (lib)

Lors de la compilation d’un projet Rust pour ESP32-S3, vous pouvez rencontrer l’erreur suivante :

cargo build --release
Compiling xtensa-lx-rt v0.16.0
Compiling esp-hal-common v0.14.1
LLVM ERROR: Global variable 'save_context' has an invalid section specifier '.rwtext': mach-o section specifier requires a segment and section separated by a comma.
error: could not compile xtensa-lx-rt (lib)
warning: build failed, waiting for other jobs to finish...
error: invalid instruction mnemonic 'rsr.ccount'
--> /Users/georgik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xtensa-lx-0.8.0/src/timer.rs:81:20
|
81 | unsafe { asm!("rsr.ccount {0}", out(reg) x, options(nostack)) };

Bien que Rust soit très utile avec les messages d’erreur, il est assez difficile de déterminer ce qui ne va pas.

En gros, ce problème survient lorsque vous construisez un projet pour ESP32-S3 qui utilise la cible Xtensa et que le projet manque le fichier suivant : .cargo/config.toml

[target.'cfg(target_arch = "xtensa")']
runner = "espflash flash --monitor"
rustflags = [
"-C", "link-arg=-Tlinkall.x",
"-C", "link-arg=-nostartfiles",
]

[build]
target = "xtensa-esp32s3-none-elf"

[unstable]
build-std = [ "core", "alloc" ]