From 52862e4cda1ff72e52dfaea21cf82ae93725b3be Mon Sep 17 00:00:00 2001 From: Aidan Hobson Sayers Date: Sun, 14 Jun 2015 23:55:01 +0100 Subject: [PATCH] When building libc crate with musl, don't look for libc.a musl may not be available on the target user's machine, and even if it is, we may not be able to find it because of how static libraries are searched for. Instead, use the transitively included liblibc which includes libc.a. --- src/liblibc/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/liblibc/lib.rs b/src/liblibc/lib.rs index b7a40a3f9cf13..2676d4879b5e3 100644 --- a/src/liblibc/lib.rs +++ b/src/liblibc/lib.rs @@ -146,7 +146,10 @@ pub use funcs::bsd43::*; #[link(name = "m")] extern {} -#[cfg(all(target_env = "musl", not(test)))] +// When compiling rust with musl, statically include libc.a in liblibc.rlib. +// A cargo build of the libc crate will therefore automatically pick up the +// libc.a symbols because liblibc is transitively linked to by the stdlib. +#[cfg(all(target_env = "musl", not(feature = "cargo-build"), not(test)))] #[link(name = "c", kind = "static")] extern {}