about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2019-03-30 11:14:02 -0700
committerJosh Stone <jistone@redhat.com>2019-03-30 11:14:02 -0700
commit49b65e683dbf7b710deaede48a66211ce924c851 (patch)
tree8a82f25ef908aeb1b5125f42a7d9a0d158f3e4d4
parent105692c3ad281c63bf0f75a26a66bb9cff5b4553 (diff)
downloadrust-49b65e683dbf7b710deaede48a66211ce924c851.tar.gz
rust-49b65e683dbf7b710deaede48a66211ce924c851.zip
Don't ignore git for LLVM info
-rw-r--r--src/bootstrap/channel.rs19
-rw-r--r--src/bootstrap/lib.rs20
-rw-r--r--src/bootstrap/tool.rs2
3 files changed, 22 insertions, 19 deletions
diff --git a/src/bootstrap/channel.rs b/src/bootstrap/channel.rs
index aa683161b65..e42b073322e 100644
--- a/src/bootstrap/channel.rs
+++ b/src/bootstrap/channel.rs
@@ -11,7 +11,6 @@ use std::process::Command;
 use build_helper::output;
 
 use crate::Build;
-use crate::config::Config;
 
 // The version number
 pub const CFG_RELEASE_NUM: &str = "1.35.0";
@@ -27,20 +26,20 @@ struct Info {
 }
 
 impl GitInfo {
-    pub fn new(config: &Config, dir: &Path) -> GitInfo {
+    pub fn new(ignore_git: bool, dir: &Path) -> GitInfo {
         // See if this even begins to look like a git dir
-        if config.ignore_git || !dir.join(".git").exists() {
+        if ignore_git || !dir.join(".git").exists() {
             return GitInfo { inner: None }
         }
 
         // Make sure git commands work
-        let out = Command::new("git")
-                          .arg("rev-parse")
-                          .current_dir(dir)
-                          .output()
-                          .expect("failed to spawn git");
-        if !out.status.success() {
-            return GitInfo { inner: None }
+        match Command::new("git")
+            .arg("rev-parse")
+            .current_dir(dir)
+            .output()
+        {
+            Ok(ref out) if out.status.success() => {}
+            _ => return GitInfo { inner: None },
         }
 
         // Ok, let's scrape some info
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index 167455af1f2..2394ae7fb79 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -360,14 +360,18 @@ impl Build {
             }
             None => false,
         };
-        let rust_info = channel::GitInfo::new(&config, &src);
-        let cargo_info = channel::GitInfo::new(&config, &src.join("src/tools/cargo"));
-        let rls_info = channel::GitInfo::new(&config, &src.join("src/tools/rls"));
-        let clippy_info = channel::GitInfo::new(&config, &src.join("src/tools/clippy"));
-        let miri_info = channel::GitInfo::new(&config, &src.join("src/tools/miri"));
-        let rustfmt_info = channel::GitInfo::new(&config, &src.join("src/tools/rustfmt"));
-        let in_tree_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-project"));
-        let emscripten_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-emscripten"));
+
+        let ignore_git = config.ignore_git;
+        let rust_info = channel::GitInfo::new(ignore_git, &src);
+        let cargo_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/cargo"));
+        let rls_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/rls"));
+        let clippy_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/clippy"));
+        let miri_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/miri"));
+        let rustfmt_info = channel::GitInfo::new(ignore_git, &src.join("src/tools/rustfmt"));
+
+        // we always try to use git for LLVM builds
+        let in_tree_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-project"));
+        let emscripten_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-emscripten"));
 
         let mut build = Build {
             initial_rustc: config.initial_rustc.clone(),
diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
index 35e0e240146..23775a91e4c 100644
--- a/src/bootstrap/tool.rs
+++ b/src/bootstrap/tool.rs
@@ -235,7 +235,7 @@ pub fn prepare_tool_cargo(
     cargo.env("CFG_VERSION", builder.rust_version());
     cargo.env("CFG_RELEASE_NUM", channel::CFG_RELEASE_NUM);
 
-    let info = GitInfo::new(&builder.config, &dir);
+    let info = GitInfo::new(builder.config.ignore_git, &dir);
     if let Some(sha) = info.sha() {
         cargo.env("CFG_COMMIT_HASH", sha);
     }