884715c654
Building on the work of # 45684 this commit updates the compiler to unconditionally load the `rustc_trans` crate at runtime instead of linking to it at compile time. The end goal of this work is to implement # 46819 where rustc will have multiple backends available to it to load. This commit starts off by removing the `extern crate rustc_trans` from the driver. This involved moving some miscellaneous functionality into the `TransCrate` trait and also required an implementation of how to locate and load the trans backend. This ended up being a little tricky because the sysroot isn't always the right location (for example `--sysroot` arguments) so some extra code was added as well to probe a directory relative to the current dll (the rustc_driver dll). Rustbuild has been updated accordingly as well to have a separate compilation invocation for the `rustc_trans` crate and assembly it accordingly into the sysroot. Finally, the distribution logic for the `rustc` package was also updated to slurp up the trans backends folder. A number of assorted fallout changes were included here as well to ensure tests pass and such, and they should all be commented inline.
22 lines
372 B
TOML
22 lines
372 B
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "rustc_llvm"
|
|
version = "0.0.0"
|
|
build = "build.rs"
|
|
|
|
[lib]
|
|
name = "rustc_llvm"
|
|
path = "lib.rs"
|
|
|
|
[features]
|
|
static-libstdcpp = []
|
|
|
|
[dependencies]
|
|
bitflags = "1.0"
|
|
libc = "0.2"
|
|
rustc_cratesio_shim = { path = "../librustc_cratesio_shim" }
|
|
|
|
[build-dependencies]
|
|
build_helper = { path = "../build_helper" }
|
|
cc = "1.0.1"
|