I have been trying to cross compile from an M1 OSX to a Raspberry Pi 4 running aarch64. I have
rustup add-ed the targets:
$ rustup show Default host: aarch64-apple-darwin rustup home: /Users/daniel/.rustup installed targets for active toolchain -------------------------------------- aarch64-apple-darwin aarch64-unknown-linux-gnu aarch64-unknown-linux-musl aarch64-unknown-none wasm32-wasi active toolchain ---------------- stable-aarch64-apple-darwin (default) rustc 1.64.0 (a55dd71d5 2022-09-19)
I have brew-installed the aarch64-elf-binutils. And have set up the cargo config:
$ cat ~/.cargo/config [target.aarch64-unknown-linux-gnu] linker = "aarch64-elf-ld" ar = "aarch64-elf-ar"
I yet when I try to build ripgrep I get:
$ cargo build --target=aarch64-unknown-linux-gnu Compiling cfg-if v1.0.0 Compiling lazy_static v1.4.0 Compiling regex-automata v0.1.10 Compiling regex-syntax v0.6.25 Compiling same-file v1.0.6 Compiling once_cell v1.10.0 Compiling fnv v1.0.7 Compiling ryu v1.0.9 error[E0463]: can't find crate for `core` | = note: the `aarch64-unknown-linux-gnu` target may not be installed = help: consider downloading the target with `rustup target add aarch64-unknown-linux-gnu` error[E0463]: can't find crate for `compiler_builtins` etc.....
As I was writing this post I figured out the problem and just thought I may as well post it here so it doesn't get lost to the next person who stumbles on this problem.
If you have a "system" cargo installed and a rustup one at the same time, they can conflict. Removing my brew installed rust/cargo solved my problem.