summaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-11-11 09:55:43 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-11-11 09:55:43 +0000
commit40c19428ce4676c9d8b3695a25e67afdc199c409 (patch)
treedcfb289b8a8681425fbdfbfa2e5465ad22b41d67 /build.rs
parent8b6bfd7d9f33a5319e52ac8df8336fac53be0c82 (diff)
downloadrust-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.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/build.rs b/build.rs
index 0a43b2a12e..bbee2d28a1 100644
--- a/build.rs
+++ b/build.rs
@@ -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> {