about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-01-28 03:40:26 +0000
committerbors <bors@rust-lang.org>2018-01-28 03:40:26 +0000
commit87990a119aa1ce77f294253cde836518870b8032 (patch)
tree9cc0f3775d3ce6f585df20d20a1d3a2dbfd063fe /src/rustllvm/RustWrapper.cpp
parent6beb06ee5ef6f031aab7586211f1818d346033d6 (diff)
parent884715c65420141dc06753f242a224462b120109 (diff)
downloadrust-87990a119aa1ce77f294253cde836518870b8032.tar.gz
rust-87990a119aa1ce77f294253cde836518870b8032.zip
Auto merge of #47671 - alexcrichton:trans-c-api-only, r=Mark-Simulacrum
rustc: Load the `rustc_trans` crate at runtime

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.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions