rust/src/librustc_trans_utils
Alex Crichton 884715c654 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.
2018-01-27 19:16:21 -08:00
..
Cargo.toml Remove accidential libloading dependency 2018-01-19 20:27:51 +01:00
diagnostics.rs Allow runtime switching between trans backends 2018-01-19 20:27:10 +01:00
lib.rs Fix ICE 2018-01-19 20:27:36 +01:00
link.rs Prefer to use attr::contains_name() and attr::find_by_name() 2017-12-28 12:32:24 +09:00
symbol_names.rs Allow runtime switching between trans backends 2018-01-19 20:27:10 +01:00
symbol_names_test.rs Allow runtime switching between trans backends 2018-01-19 20:27:10 +01:00
trans_crate.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00