Skip to content

Commit 52862e4

Browse files
committed
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.
1 parent 5ef2504 commit 52862e4

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/liblibc/lib.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,10 @@ pub use funcs::bsd43::*;
146146
#[link(name = "m")]
147147
extern {}
148148

149-
#[cfg(all(target_env = "musl", not(test)))]
149+
// When compiling rust with musl, statically include libc.a in liblibc.rlib.
150+
// A cargo build of the libc crate will therefore automatically pick up the
151+
// libc.a symbols because liblibc is transitively linked to by the stdlib.
152+
#[cfg(all(target_env = "musl", not(feature = "cargo-build"), not(test)))]
150153
#[link(name = "c", kind = "static")]
151154
extern {}
152155

0 commit comments

Comments
 (0)