diff options
author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2022-11-11 09:55:43 +0000 |
---|---|---|
committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2022-11-11 09:55:43 +0000 |
commit | 40c19428ce4676c9d8b3695a25e67afdc199c409 (patch) | |
tree | dcfb289b8a8681425fbdfbfa2e5465ad22b41d67 /build.rs | |
parent | 8b6bfd7d9f33a5319e52ac8df8336fac53be0c82 (diff) | |
download | rust-libc-40c19428ce4676c9d8b3695a25e67afdc199c409.tar.gz |
Report the actual error when failing to get the rustc version
This should help with pinpointing the issue in rust-lang/crater#663.
Diffstat (limited to 'build.rs')
-rw-r--r-- | build.rs | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -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(); @@ -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(); @@ -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> { |