By default libc is linked statically for musl targets except for the MIPS architecture: https://github.com/rust-lang/libc/blob/master/src/unix/mod.rs#L197-L200. This is a problem for custom musl targets like ARM: https://github.com/joerg-krause/rust-cross-libs/blob/master/cfg/armv5te-unknown-linux-musl.json By design, it's wrong to depend on the architecture if linking is done dynamically or statically. It should depend on the value of `dynamic_linking`: https://github.com/rust-lang/rust/blob/master/src/librustc_back/target/mod.rs#L450.