Cross-compiling Rust is easy to start and hard to standardize across teams. I treat toolchains as part of the project, not local machine state.
Target triples, linker config, and environment variables live in versioned project files. That removes guesswork when onboarding new contributors.
For ARM Linux deployments, I test build artifacts in CI with smoke checks before shipping. If binaries link against wrong system libraries, failure should happen in pipeline, not on device.
Once configured, release cadence improves dramatically because developers can produce deployable builds without touching target hardware.