91c22b6302
This commit alters the compiler to no longer "just run link.exe" but instead probe the system's registry to find where the linker is located. The default library search path (normally found through LIB) is also found through the registry. This also brings us in line with the default behavior of Clang, and much of the logic of where to look for information is copied over from Clang as well. Finally, this commit removes the makefile logic for updating the environment variables for the compiler, except for stage0 where it's still necessary. The motivation for this change is rooted in two positions: * Not having to set up these environment variables is much less hassle both for the bootstrap and for running the compiler itself. This means that the compiler can be run outside of VS shells and be run inside of cmd.exe or a MSYS shell. * When dealing with cross compilation, there's not actually a set of environment variables that can be set for the compiler. This means, for example, if a Cargo compilation is targeting 32-bit from 64-bit you can't actually set up one set of environment variables. Having the compiler deal with the logic instead is generally much more convenient! |
||
---|---|---|
.. | ||
cfg | ||
clean.mk | ||
crates.mk | ||
ctags.mk | ||
debuggers.mk | ||
dist.mk | ||
docs.mk | ||
grammar.mk | ||
host.mk | ||
install.mk | ||
llvm.mk | ||
main.mk | ||
perf.mk | ||
platform.mk | ||
prepare.mk | ||
reconfig.mk | ||
rt.mk | ||
rustllvm.mk | ||
snap.mk | ||
stage0.mk | ||
target.mk | ||
tests.mk | ||
util.mk |