Skip to content

Commit 8ccb78e

Browse files
committed
Auto merge of #125579 - Noratrieb:print-host, r=davidtwco
Add `--print host-tuple` to print host target tuple People often parse `-vV` output to get to the host tuple, which is annoying to do. It's easier to just get it directly. I called it "host-tuple" instead of "host" because it's clearer that it's just the target name. I'm open to different names, but I think this one is fine. a quick GitHub search for `'^host` reveals many instances of people doing the parsing, for example: https://github.com/japaric/xargo/blob/68e0ca57cd90837fe02f262f074182f9cfeb6227/README.md?plain=1#L369 https://github.com/taiki-e/setup-cross-toolchain-action/blob/0e38473b0c562d6db19a98d3ec20a80f7ac189ae/main.sh#L96 https://github.com/taiki-e/cargo-llvm-cov/blob/8a3553b86551eabf9c30c060b1f72a5bbccb98c6/README.md?plain=1#L625 https://github.com/SiliconLabs/cpc-nvm3/blob/43f3ec39709b30700ef7f39d91fa647974323bf1/do.sh#L35 needs a compiler FCP. I could also do an MCP but I think just an FCP here makes the most sense.
2 parents b3f75cc + ba48151 commit 8ccb78e

File tree

40 files changed

+180
-171
lines changed

40 files changed

+180
-171
lines changed

compiler/rustc_codegen_cranelift/src/global_asm.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ impl GlobalAsmConfig {
118118
GlobalAsmConfig {
119119
assembler: crate::toolchain::get_toolchain_binary(tcx.sess, "as"),
120120
target: match &tcx.sess.opts.target_triple {
121-
rustc_target::spec::TargetTriple::TargetTriple(triple) => triple.clone(),
122-
rustc_target::spec::TargetTriple::TargetJson { path_for_rustdoc, .. } => {
121+
rustc_target::spec::TargetTuple::TargetTuple(triple) => triple.clone(),
122+
rustc_target::spec::TargetTuple::TargetJson { path_for_rustdoc, .. } => {
123123
path_for_rustdoc.to_str().unwrap().to_owned()
124124
}
125125
},

compiler/rustc_codegen_gcc/src/consts.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ impl<'gcc, 'tcx> StaticCodegenMethods for CodegenCx<'gcc, 'tcx> {
146146

147147
// Wasm statics with custom link sections get special treatment as they
148148
// go into custom sections of the wasm executable.
149-
if self.tcx.sess.opts.target_triple.triple().starts_with("wasm32") {
149+
if self.tcx.sess.opts.target_triple.tuple().starts_with("wasm32") {
150150
if let Some(_section) = attrs.link_section {
151151
unimplemented!();
152152
}

compiler/rustc_codegen_llvm/src/back/write.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ fn create_section_with_flags_asm(section_name: &str, section_flags: &str, data:
946946
}
947947

948948
fn target_is_apple(cgcx: &CodegenContext<LlvmCodegenBackend>) -> bool {
949-
let triple = cgcx.opts.target_triple.triple();
949+
let triple = cgcx.opts.target_triple.tuple();
950950
triple.contains("-ios")
951951
|| triple.contains("-darwin")
952952
|| triple.contains("-tvos")
@@ -955,7 +955,7 @@ fn target_is_apple(cgcx: &CodegenContext<LlvmCodegenBackend>) -> bool {
955955
}
956956

957957
fn target_is_aix(cgcx: &CodegenContext<LlvmCodegenBackend>) -> bool {
958-
cgcx.opts.target_triple.triple().contains("-aix")
958+
cgcx.opts.target_triple.tuple().contains("-aix")
959959
}
960960

961961
pub(crate) fn bitcode_section_name(cgcx: &CodegenContext<LlvmCodegenBackend>) -> &'static CStr {
@@ -1031,7 +1031,7 @@ unsafe fn embed_bitcode(
10311031
let is_aix = target_is_aix(cgcx);
10321032
let is_apple = target_is_apple(cgcx);
10331033
unsafe {
1034-
if is_apple || is_aix || cgcx.opts.target_triple.triple().starts_with("wasm") {
1034+
if is_apple || is_aix || cgcx.opts.target_triple.tuple().starts_with("wasm") {
10351035
// We don't need custom section flags, create LLVM globals.
10361036
let llconst = common::bytes_in_context(llcx, bitcode);
10371037
let llglobal = llvm::LLVMAddGlobal(

compiler/rustc_codegen_ssa/src/back/link.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,7 @@ fn link_natively(
997997
{
998998
let is_vs_installed = windows_registry::find_vs_version().is_ok();
999999
let has_linker = windows_registry::find_tool(
1000-
sess.opts.target_triple.triple(),
1000+
sess.opts.target_triple.tuple(),
10011001
"link.exe",
10021002
)
10031003
.is_some();
@@ -1323,10 +1323,8 @@ fn link_sanitizer_runtime(
13231323
} else {
13241324
let default_sysroot =
13251325
filesearch::get_or_default_sysroot().expect("Failed finding sysroot");
1326-
let default_tlib = filesearch::make_target_lib_path(
1327-
&default_sysroot,
1328-
sess.opts.target_triple.triple(),
1329-
);
1326+
let default_tlib =
1327+
filesearch::make_target_lib_path(&default_sysroot, sess.opts.target_triple.tuple());
13301328
default_tlib
13311329
}
13321330
}

compiler/rustc_codegen_ssa/src/back/linker.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pub(crate) fn get_linker<'a>(
4747
self_contained: bool,
4848
target_cpu: &'a str,
4949
) -> Box<dyn Linker + 'a> {
50-
let msvc_tool = windows_registry::find_tool(sess.opts.target_triple.triple(), "link.exe");
50+
let msvc_tool = windows_registry::find_tool(sess.opts.target_triple.tuple(), "link.exe");
5151

5252
// If our linker looks like a batch script on Windows then to execute this
5353
// we'll need to spawn `cmd` explicitly. This is primarily done to handle

compiler/rustc_driver_impl/src/lib.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ use rustc_session::{EarlyDiagCtxt, Session, config, filesearch};
6262
use rustc_span::FileName;
6363
use rustc_span::source_map::FileLoader;
6464
use rustc_target::json::ToJson;
65-
use rustc_target::spec::{Target, TargetTriple};
65+
use rustc_target::spec::{Target, TargetTuple};
6666
use time::OffsetDateTime;
6767
use tracing::trace;
6868

@@ -731,6 +731,7 @@ fn print_crate_info(
731731
targets.sort_unstable();
732732
println_info!("{}", targets.join("\n"));
733733
}
734+
HostTuple => println_info!("{}", rustc_session::config::host_tuple()),
734735
Sysroot => println_info!("{}", sess.sysroot.display()),
735736
TargetLibdir => println_info!("{}", sess.target_tlib_path.dir.display()),
736737
TargetSpec => {
@@ -739,7 +740,7 @@ fn print_crate_info(
739740
AllTargetSpecs => {
740741
let mut targets = BTreeMap::new();
741742
for name in rustc_target::spec::TARGETS {
742-
let triple = TargetTriple::from_triple(name);
743+
let triple = TargetTuple::from_tuple(name);
743744
let target = Target::expect_builtin(&triple);
744745
targets.insert(name, target.to_json());
745746
}
@@ -918,7 +919,7 @@ pub fn version_at_macro_invocation(
918919
safe_println!("binary: {binary}");
919920
safe_println!("commit-hash: {commit_hash}");
920921
safe_println!("commit-date: {commit_date}");
921-
safe_println!("host: {}", config::host_triple());
922+
safe_println!("host: {}", config::host_tuple());
922923
safe_println!("release: {release}");
923924

924925
let debug_flags = matches.opt_strs("Z");
@@ -1495,7 +1496,7 @@ fn report_ice(
14951496
}
14961497

14971498
let version = util::version_str!().unwrap_or("unknown_version");
1498-
let triple = config::host_triple();
1499+
let tuple = config::host_tuple();
14991500

15001501
static FIRST_PANIC: AtomicBool = AtomicBool::new(true);
15011502

@@ -1505,7 +1506,7 @@ fn report_ice(
15051506
Ok(mut file) => {
15061507
dcx.emit_note(session_diagnostics::IcePath { path: path.clone() });
15071508
if FIRST_PANIC.swap(false, Ordering::SeqCst) {
1508-
let _ = write!(file, "\n\nrustc version: {version}\nplatform: {triple}");
1509+
let _ = write!(file, "\n\nrustc version: {version}\nplatform: {tuple}");
15091510
}
15101511
Some(file)
15111512
}
@@ -1518,12 +1519,12 @@ fn report_ice(
15181519
.map(PathBuf::from)
15191520
.map(|env_var| session_diagnostics::IcePathErrorEnv { env_var }),
15201521
});
1521-
dcx.emit_note(session_diagnostics::IceVersion { version, triple });
1522+
dcx.emit_note(session_diagnostics::IceVersion { version, triple: tuple });
15221523
None
15231524
}
15241525
}
15251526
} else {
1526-
dcx.emit_note(session_diagnostics::IceVersion { version, triple });
1527+
dcx.emit_note(session_diagnostics::IceVersion { version, triple: tuple });
15271528
None
15281529
};
15291530

compiler/rustc_errors/src/diagnostic_impls.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_macros::Subdiagnostic;
1111
use rustc_span::Span;
1212
use rustc_span::edition::Edition;
1313
use rustc_span::symbol::{Ident, MacroRulesNormalizedIdent, Symbol};
14-
use rustc_target::spec::{PanicStrategy, SplitDebuginfo, StackProtector, TargetTriple};
14+
use rustc_target::spec::{PanicStrategy, SplitDebuginfo, StackProtector, TargetTuple};
1515
use rustc_type_ir::{ClosureKind, FloatTy};
1616
use {rustc_ast as ast, rustc_hir as hir};
1717

@@ -89,7 +89,7 @@ into_diag_arg_using_display!(
8989
MacroRulesNormalizedIdent,
9090
ParseIntError,
9191
StackProtector,
92-
&TargetTriple,
92+
&TargetTuple,
9393
SplitDebuginfo,
9494
ExitStatus,
9595
ErrCode,

compiler/rustc_hir_typeck/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ fn fatally_break_rust(tcx: TyCtxt<'_>, span: Span) -> ! {
493493
"we would appreciate a joke overview: \
494494
https://github.com/rust-lang/rust/issues/43162#issuecomment-320764675",
495495
);
496-
diag.note(format!("rustc {} running on {}", tcx.sess.cfg_version, config::host_triple(),));
496+
diag.note(format!("rustc {} running on {}", tcx.sess.cfg_version, config::host_tuple(),));
497497
if let Some((flags, excluded_cargo_defaults)) = rustc_session::utils::extra_compiler_flags() {
498498
diag.note(format!("compiler flags: {}", flags.join(" ")));
499499
if excluded_cargo_defaults {

compiler/rustc_interface/src/util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_data_structures::sync;
1111
use rustc_metadata::{DylibError, load_symbol_from_dylib};
1212
use rustc_middle::ty::CurrentGcx;
1313
use rustc_parse::validate_attr;
14-
use rustc_session::config::{Cfg, OutFileName, OutputFilenames, OutputTypes, host_triple};
14+
use rustc_session::config::{Cfg, OutFileName, OutputFilenames, OutputTypes, host_tuple};
1515
use rustc_session::filesearch::sysroot_candidates;
1616
use rustc_session::lint::{self, BuiltinLintDiag, LintBuffer};
1717
use rustc_session::output::{CRATE_TYPES, categorize_crate_type};
@@ -310,7 +310,7 @@ fn get_codegen_sysroot(
310310
"cannot load the default codegen backend twice"
311311
);
312312

313-
let target = host_triple();
313+
let target = host_tuple();
314314
let sysroot_candidates = sysroot_candidates();
315315

316316
let sysroot = iter::once(sysroot)

compiler/rustc_metadata/src/creader.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use rustc_session::search_paths::PathKind;
3030
use rustc_span::edition::Edition;
3131
use rustc_span::symbol::{Ident, Symbol, sym};
3232
use rustc_span::{DUMMY_SP, Span};
33-
use rustc_target::spec::{PanicStrategy, Target, TargetTriple};
33+
use rustc_target::spec::{PanicStrategy, Target, TargetTuple};
3434
use tracing::{debug, info, trace};
3535

3636
use crate::errors;
@@ -506,7 +506,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
506506
locator.reset();
507507
locator.is_proc_macro = true;
508508
locator.target = &self.sess.host;
509-
locator.triple = TargetTriple::from_triple(config::host_triple());
509+
locator.tuple = TargetTuple::from_tuple(config::host_tuple());
510510
locator.filesearch = self.sess.host_filesearch(path_kind);
511511

512512
let Some(host_result) = self.load(locator)? else {
@@ -635,7 +635,7 @@ impl<'a, 'tcx> CrateLoader<'a, 'tcx> {
635635
// FIXME: why is this condition necessary? It was adding in #33625 but I
636636
// don't know why and the original author doesn't remember ...
637637
let can_reuse_cratenum =
638-
locator.triple == self.sess.opts.target_triple || locator.is_proc_macro;
638+
locator.tuple == self.sess.opts.target_triple || locator.is_proc_macro;
639639
Ok(Some(if can_reuse_cratenum {
640640
let mut result = LoadResult::Loaded(library);
641641
for (cnum, data) in self.cstore.iter_crate_data() {

compiler/rustc_metadata/src/errors.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc_errors::codes::*;
55
use rustc_errors::{Diag, DiagCtxtHandle, Diagnostic, EmissionGuarantee, Level};
66
use rustc_macros::{Diagnostic, Subdiagnostic};
77
use rustc_span::{Span, Symbol, sym};
8-
use rustc_target::spec::{PanicStrategy, TargetTriple};
8+
use rustc_target::spec::{PanicStrategy, TargetTuple};
99

1010
use crate::fluent_generated as fluent;
1111
use crate::locator::CrateFlavor;
@@ -630,7 +630,7 @@ pub struct CannotFindCrate {
630630
pub current_crate: String,
631631
pub is_nightly_build: bool,
632632
pub profiler_runtime: Symbol,
633-
pub locator_triple: TargetTriple,
633+
pub locator_triple: TargetTuple,
634634
pub is_ui_testing: bool,
635635
}
636636

@@ -641,7 +641,7 @@ impl<G: EmissionGuarantee> Diagnostic<'_, G> for CannotFindCrate {
641641
diag.arg("crate_name", self.crate_name);
642642
diag.arg("current_crate", self.current_crate);
643643
diag.arg("add_info", self.add_info);
644-
diag.arg("locator_triple", self.locator_triple.triple());
644+
diag.arg("locator_triple", self.locator_triple.tuple());
645645
diag.code(E0463);
646646
diag.span(self.span);
647647
if self.crate_name == sym::std || self.crate_name == sym::core {

compiler/rustc_metadata/src/locator.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ use rustc_session::search_paths::PathKind;
231231
use rustc_session::utils::CanonicalizedPath;
232232
use rustc_span::Span;
233233
use rustc_span::symbol::Symbol;
234-
use rustc_target::spec::{Target, TargetTriple};
234+
use rustc_target::spec::{Target, TargetTuple};
235235
use tracing::{debug, info};
236236

237237
use crate::creader::{Library, MetadataLoader};
@@ -252,7 +252,7 @@ pub(crate) struct CrateLocator<'a> {
252252
pub hash: Option<Svh>,
253253
extra_filename: Option<&'a str>,
254254
pub target: &'a Target,
255-
pub triple: TargetTriple,
255+
pub tuple: TargetTuple,
256256
pub filesearch: FileSearch<'a>,
257257
pub is_proc_macro: bool,
258258

@@ -338,7 +338,7 @@ impl<'a> CrateLocator<'a> {
338338
hash,
339339
extra_filename,
340340
target: &sess.target,
341-
triple: sess.opts.target_triple.clone(),
341+
tuple: sess.opts.target_triple.clone(),
342342
filesearch: sess.target_filesearch(path_kind),
343343
is_proc_macro: false,
344344
crate_rejections: CrateRejections::default(),
@@ -677,8 +677,8 @@ impl<'a> CrateLocator<'a> {
677677
return None;
678678
}
679679

680-
if header.triple != self.triple {
681-
info!("Rejecting via crate triple: expected {} got {}", self.triple, header.triple);
680+
if header.triple != self.tuple {
681+
info!("Rejecting via crate triple: expected {} got {}", self.tuple, header.triple);
682682
self.crate_rejections.via_triple.push(CrateMismatch {
683683
path: libpath.to_path_buf(),
684684
got: header.triple.to_string(),
@@ -766,7 +766,7 @@ impl<'a> CrateLocator<'a> {
766766
CrateError::LocatorCombined(Box::new(CombinedLocatorError {
767767
crate_name: self.crate_name,
768768
root,
769-
triple: self.triple,
769+
triple: self.tuple,
770770
dll_prefix: self.target.dll_prefix.to_string(),
771771
dll_suffix: self.target.dll_suffix.to_string(),
772772
crate_rejections: self.crate_rejections,
@@ -909,7 +909,7 @@ struct CrateRejections {
909909
pub(crate) struct CombinedLocatorError {
910910
crate_name: Symbol,
911911
root: Option<CratePaths>,
912-
triple: TargetTriple,
912+
triple: TargetTuple,
913913
dll_prefix: String,
914914
dll_suffix: String,
915915
crate_rejections: CrateRejections,
@@ -1034,7 +1034,7 @@ impl CrateError {
10341034
dcx.emit_err(errors::NoCrateWithTriple {
10351035
span,
10361036
crate_name,
1037-
locator_triple: locator.triple.triple(),
1037+
locator_triple: locator.triple.tuple(),
10381038
add_info,
10391039
found_crates,
10401040
});

compiler/rustc_metadata/src/rmeta/decoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ impl MetadataBlob {
770770
root.stable_crate_id
771771
)?;
772772
writeln!(out, "proc_macro {:?}", root.proc_macro_data.is_some())?;
773-
writeln!(out, "triple {}", root.header.triple.triple())?;
773+
writeln!(out, "triple {}", root.header.triple.tuple())?;
774774
writeln!(out, "edition {}", root.edition)?;
775775
writeln!(out, "symbol_mangling_version {:?}", root.symbol_mangling_version)?;
776776
writeln!(

compiler/rustc_metadata/src/rmeta/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ use rustc_span::edition::Edition;
3838
use rustc_span::hygiene::{ExpnIndex, MacroKind, SyntaxContextData};
3939
use rustc_span::symbol::{Ident, Symbol};
4040
use rustc_span::{self, ExpnData, ExpnHash, ExpnId, Span};
41-
use rustc_target::spec::{PanicStrategy, TargetTriple};
41+
use rustc_target::spec::{PanicStrategy, TargetTuple};
4242
use table::TableBuilder;
4343
use {rustc_ast as ast, rustc_attr as attr, rustc_hir as hir};
4444

@@ -213,7 +213,7 @@ pub(crate) struct ProcMacroData {
213213
/// If you do modify this struct, also bump the [`METADATA_VERSION`] constant.
214214
#[derive(MetadataEncodable, MetadataDecodable)]
215215
pub(crate) struct CrateHeader {
216-
pub(crate) triple: TargetTriple,
216+
pub(crate) triple: TargetTuple,
217217
pub(crate) hash: Svh,
218218
pub(crate) name: Symbol,
219219
/// Whether this is the header for a proc-macro crate.

0 commit comments

Comments
 (0)