+//! Locating various executables part of a C toolchain.
+
use std::path::PathBuf;
use rustc_middle::bug;
/// Tries to infer the path of a binary for the target toolchain from the linker name.
pub(crate) fn get_toolchain_binary(sess: &Session, tool: &str) -> PathBuf {
let (mut linker, _linker_flavor) = linker_and_flavor(sess);
- let linker_file_name = linker.file_name().and_then(|name| name.to_str()).unwrap_or_else(|| {
- sess.fatal("couldn't extract file name from specified linker")
- });
+ let linker_file_name = linker
+ .file_name()
+ .and_then(|name| name.to_str())
+ .unwrap_or_else(|| sess.fatal("couldn't extract file name from specified linker"));
if linker_file_name == "ld.lld" {
if tool != "ld" {
} else if stem == "link" || stem == "lld-link" {
LinkerFlavor::Msvc
} else if stem == "lld" || stem == "rust-lld" {
- LinkerFlavor::Lld(sess.target.target.options.lld_flavor)
+ LinkerFlavor::Lld(sess.target.lld_flavor)
} else {
// fall back to the value in the target spec
- sess.target.target.linker_flavor
+ sess.target.linker_flavor
};
Some((linker, flavor))
if let Some(ret) = infer_from(
sess,
- sess.target.target.options.linker.clone().map(PathBuf::from),
- Some(sess.target.target.linker_flavor),
+ sess.target.linker.clone().map(PathBuf::from),
+ Some(sess.target.linker_flavor),
) {
return ret;
}