Skip to content

Commit

Permalink
Auto merge of #3000 - bjorn3:report_rustc_version_errors, r=JohnTitor
Browse files Browse the repository at this point in the history
Report the actual error when failing to get the rustc version

This should help with pinpointing the issue in rust-lang/crater#663.
  • Loading branch information
bors committed Nov 12, 2022
2 parents 8b6bfd7 + 40c1942 commit bbf929d
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions build.rs
Expand Up @@ -6,7 +6,7 @@ fn main() {
// Avoid unnecessary re-building.
println!("cargo:rerun-if-changed=build.rs");

let (rustc_minor_ver, is_nightly) = rustc_minor_nightly().expect("Failed to get rustc version");
let (rustc_minor_ver, is_nightly) = rustc_minor_nightly();
let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok();
let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok();
Expand Down Expand Up @@ -112,23 +112,27 @@ fn main() {
}
}

fn rustc_minor_nightly() -> Option<(u32, bool)> {
fn rustc_minor_nightly() -> (u32, bool) {
macro_rules! otry {
($e:expr) => {
match $e {
Some(e) => e,
None => return None,
None => panic!("Failed to get rustc version"),
}
};
}

let rustc = otry!(env::var_os("RUSTC"));
let output = otry!(Command::new(rustc).arg("--version").output().ok());
let output = Command::new(rustc)
.arg("--version")
.output()
.ok()
.expect("Failed to get rustc version");
let version = otry!(str::from_utf8(&output.stdout).ok());
let mut pieces = version.split('.');

if pieces.next() != Some("rustc 1") {
return None;
panic!("Failed to get rustc version");
}

let minor = pieces.next();
Expand All @@ -144,7 +148,7 @@ fn rustc_minor_nightly() -> Option<(u32, bool)> {
.unwrap_or(false);
let minor = otry!(otry!(minor).parse().ok());

Some((minor, nightly))
(minor, nightly)
}

fn which_freebsd() -> Option<i32> {
Expand Down

0 comments on commit bbf929d

Please sign in to comment.