Auto merge of #83800 - xobs:impl-16351-nightly, r=nagisa
Add default search path to `Target::search()` The function `Target::search()` accepts a target triple and returns a `Target` struct defining the requested target. There is a `// FIXME 16351: add a sane default search path?` comment that indicates it is desirable to include some sort of default. This was raised in https://github.com/rust-lang/rust/issues/16351 which was closed without any resolution. https://github.com/rust-lang/rust/pull/31117 was proposed, however that has platform-specific logic that is unsuitable for systems without `/etc/`. This patch implements the suggestion raised in https://github.com/rust-lang/rust/issues/16351#issuecomment-180878193 where a `target.json` file may be placed in `$(rustc --print sysroot)/lib/rustlib/<target-triple>/target.json`. This allows shipping a toolchain distribution as a single file that gets extracted to the sysroot.
This commit is contained in:
commit
c55c26cb36
3 changed files with 27 additions and 12 deletions
|
@ -893,8 +893,13 @@ pub fn build_configuration(sess: &Session, mut user_cfg: CrateConfig) -> CrateCo
|
|||
user_cfg
|
||||
}
|
||||
|
||||
pub(super) fn build_target_config(opts: &Options, target_override: Option<Target>) -> Target {
|
||||
let target_result = target_override.map_or_else(|| Target::search(&opts.target_triple), Ok);
|
||||
pub(super) fn build_target_config(
|
||||
opts: &Options,
|
||||
target_override: Option<Target>,
|
||||
sysroot: &PathBuf,
|
||||
) -> Target {
|
||||
let target_result =
|
||||
target_override.map_or_else(|| Target::search(&opts.target_triple, sysroot), Ok);
|
||||
let target = target_result.unwrap_or_else(|e| {
|
||||
early_error(
|
||||
opts.error_format,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue