I am trying to CC=aarch64-linux-musl-gcc cargo install atuin --target aarch64-unknown-linux-musl
Rust 1.75 was installed with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --target aarch64-unknown-linux-musl and my PATH is set.
My cross compiler is built with GitHub - richfelker/musl-cross-make: Simple makefile-based build for musl cross compiler
I am currently running in an Alpine container although I do not think this is my issue as I've been able to compile C and Go programs just fine.
If the host gcc is installed, I get
#9 9.974 error: linking with `cc` failed: exit status: 1
#9 9.974 |
#9 9.974 = note: LC_ALL="C" PATH="/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-Wl,--version-script=/tmp/rustcRL4kPD/list" "-Wl,--no-undefined-version" "-m64" "/tmp/rustcRL4kPD/symbols.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.0.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.1.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.2.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.3.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.4.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.5.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.6.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.paste.3734dbcae4d99ab4-cgu.7.rcgu.o" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.20tx951b1dewxvf.rcgu.rmeta" "/tmp/cargo-installcktr0O/release/deps/paste-015eafe3df781245.1sssaccup4tlqywi.rcgu.o" "-Wl,--as-needed" "-L" "/tmp/cargo-installcktr0O/release/deps" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libproc_macro-771f5f282c47560d.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-11c02606063fb1b5.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libpanic_unwind-527b1ade0207850b.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libobject-5c6479882291983e.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libmemchr-b30d7598b031e855.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libaddr2line-7bdd9f1650697dee.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libgimli-af6e6b96893335a7.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_demangle-61a774fd0ca56cef.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd_detect-0bdaa2154e535182.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libhashbrown-40daaa64e7b3ff16.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_alloc-51b0c25ea806d020.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libminiz_oxide-503b1c30e4fe986c.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libadler-0dfa15d5b98a6f2c.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libunwind-7e3d215879e752d5.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcfg_if-f91de774775af47a.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liblibc-a172c9da7a8c39aa.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liballoc-05ed26095d7bae0a.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_core-940bcdced839ada6.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcore-ece58c607aadf4ad.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcompiler_builtins-cfd03998b63f49b3.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-o" "/tmp/cargo-installcktr0O/release/deps/libpaste-015eafe3df781245.so" "-Wl,--gc-sections" "-shared" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
#9 9.974 = note: /usr/lib/gcc/x86_64-alpine-linux-musl/13.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory
#9 9.975 collect2: error: ld returned 1 exit status
Why is it trying to run the x86_64 linker?
Even with various RUSTFLAGS set or with a .cargo/config.toml
[target.aarch64-unknown-linux-musl]
linker = "aarch64-unknown-linux-musl-ld"
If I don't have the host gcc installed, I get
#9 6.131 Compiling futures-core v0.3.30
#9 6.201 error: linker `cc` not found
#9 6.201 |
#9 6.201 = note: No such file or directory (os error 2)
#9 6.201
#9 6.270 error: could not compile `parking_lot_core` (build script) due to previous error
What cc is it trying to run? Why?
Semi-related open issue: Automatically detect the appropriate linker to use when cross-compiling · Issue #4133 · rust-lang/cargo · GitHub - this'd help a bit if it were fixed