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. |
||
---|---|---|
.. | ||
auxiliary | ||
proc-macro | ||
ast_stmt_expr_attr.rs | ||
binary-heap-panic-safe.rs | ||
compiler-calls.rs | ||
create-dir-all-bare.rs | ||
custom-derive-partial-eq.rs | ||
derive-no-std-not-supported.rs | ||
derive-totalsum-attr.rs | ||
derive-totalsum.rs | ||
deriving-encodable-decodable-box.rs | ||
deriving-encodable-decodable-cell-refcell.rs | ||
deriving-global.rs | ||
dropck_tarena_sound_drop.rs | ||
empty-struct-braces-derive.rs | ||
env.rs | ||
extern-mod-syntax.rs | ||
flt2dec.rs | ||
issue_24106.rs | ||
issue-2804.rs | ||
issue-4016.rs | ||
issue-4036.rs | ||
issue-11881.rs | ||
issue-13560.rs | ||
issue-14021.rs | ||
issue-15149.rs | ||
issue-15778-pass.rs | ||
issue-15924.rs | ||
issue-16723.rs | ||
issue-16822.rs | ||
issue-16992.rs | ||
issue-18502.rs | ||
issue-18763-quote-token-tree.rs | ||
issue-24972.rs | ||
issue-35829.rs | ||
issue-40663.rs | ||
linkage-visibility.rs | ||
llvm-pass-plugin.rs | ||
lto-syntax-extension.rs | ||
macro-crate-does-hygiene-work.rs | ||
macro-crate-multi-decorator-literals.rs | ||
macro-crate-multi-decorator.rs | ||
macro-crate.rs | ||
macro-quote-cond.rs | ||
macro-quote-test.rs | ||
mbe_matching_test_macro.rs | ||
myriad-closures.rs | ||
outlive-expansion-phase.rs | ||
plugin-args-1.rs | ||
plugin-args-2.rs | ||
plugin-args-3.rs | ||
plugin-lib-ok-in-plugin.rs | ||
plugin-plus-extern-crate.rs | ||
pprust-expr-roundtrip.rs | ||
proc_macro.rs | ||
qquote.rs | ||
quote-tokens.rs | ||
quote-unused-sp-no-warning.rs | ||
regions-mock-tcx.rs | ||
rename-directory.rs | ||
roman-numerals-macro.rs | ||
rustc_encodable_hygiene.rs | ||
sort-unstable.rs | ||
stdio-from.rs | ||
switch-stdout.rs | ||
syntax-extension-with-dll-deps.rs | ||
vector-sort-panic-safe.rs |