libcompiler-rt.a is dead, long live libcompiler-builtins.rlib This commit moves the logic that used to build libcompiler-rt.a into a compiler-builtins crate on top of the core crate and below the std crate. This new crate still compiles the compiler-rt instrinsics using gcc-rs but produces an .rlib instead of a static library. Also, with this commit rustc no longer passes -lcompiler-rt to the linker. This effectively makes the "no-compiler-rt" field of target specifications a no-op. Users of `no_std` will have to explicitly add the compiler-builtins crate to their crate dependency graph *if* they need the compiler-rt intrinsics. Users of the `std` have to do nothing extra as the std crate depends on compiler-builtins. Finally, this a step towards lazy compilation of std with Cargo as the compiler-rt intrinsics can now be built by Cargo instead of having to be supplied by the user by some other method. closes #34400
33 lines
892 B
TOML
33 lines
892 B
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "std"
|
|
version = "0.0.0"
|
|
build = "build.rs"
|
|
|
|
[lib]
|
|
name = "std"
|
|
path = "lib.rs"
|
|
crate-type = ["dylib", "rlib"]
|
|
|
|
[dependencies]
|
|
alloc = { path = "../liballoc" }
|
|
alloc_jemalloc = { path = "../liballoc_jemalloc", optional = true }
|
|
alloc_system = { path = "../liballoc_system" }
|
|
panic_unwind = { path = "../libpanic_unwind" }
|
|
panic_abort = { path = "../libpanic_abort" }
|
|
collections = { path = "../libcollections" }
|
|
core = { path = "../libcore" }
|
|
libc = { path = "../rustc/libc_shim" }
|
|
rand = { path = "../librand" }
|
|
compiler_builtins = { path = "../libcompiler_builtins" }
|
|
rustc_unicode = { path = "../librustc_unicode" }
|
|
unwind = { path = "../libunwind" }
|
|
|
|
[build-dependencies]
|
|
build_helper = { path = "../build_helper" }
|
|
gcc = "0.3.27"
|
|
|
|
[features]
|
|
backtrace = []
|
|
jemalloc = ["alloc_jemalloc"]
|
|
debug-jemalloc = ["alloc_jemalloc/debug"]
|