Rust ESP32-S3 build problém: nie je možné skompilovať xtensa-lx-rt (lib)

Pri kompilácii Rust projektu pre ESP32-S3 sa môže vyskytnúť nasledujúca chyba:

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)) };

Aj keď je Rust kompilátor vždy veľmi nápomocný s chybovými správami, je dosť ťažké určiť, kde je chyba.

Tento problém v podstate nastane, keď kompilujete projekt pre ESP32-S3, ktorý používa Xtensa cieľ a projektu chýba nasledujúci súbor: .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" ]