bootstrap: Default to a sensible llvm-suffix.

I used version-channel-sha, hopefully that should work.

I checked that bootstrap builds, but I cannot check anything else since the llvm
build process is started from cargo, and thus calls clang, and thus I hit the
same bug I hope to fix with this change.

Hopefully fixes #59034.
This commit is contained in:
Emilio Cobos Álvarez 2019-03-14 02:23:08 +01:00
parent 719b0d9849
commit e7b7c417e6
2 changed files with 27 additions and 1 deletions

View file

@ -241,6 +241,8 @@ pub struct Build {
clippy_info: channel::GitInfo, clippy_info: channel::GitInfo,
miri_info: channel::GitInfo, miri_info: channel::GitInfo,
rustfmt_info: channel::GitInfo, rustfmt_info: channel::GitInfo,
in_tree_llvm_info: channel::GitInfo,
emscripten_llvm_info: channel::GitInfo,
local_rebuild: bool, local_rebuild: bool,
fail_fast: bool, fail_fast: bool,
doc_tests: DocTests, doc_tests: DocTests,
@ -363,6 +365,8 @@ impl Build {
let clippy_info = channel::GitInfo::new(&config, &src.join("src/tools/clippy")); 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 miri_info = channel::GitInfo::new(&config, &src.join("src/tools/miri"));
let rustfmt_info = channel::GitInfo::new(&config, &src.join("src/tools/rustfmt")); 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 mut build = Build { let mut build = Build {
initial_rustc: config.initial_rustc.clone(), initial_rustc: config.initial_rustc.clone(),
@ -386,6 +390,8 @@ impl Build {
clippy_info, clippy_info,
miri_info, miri_info,
rustfmt_info, rustfmt_info,
in_tree_llvm_info,
emscripten_llvm_info,
cc: HashMap::new(), cc: HashMap::new(),
cxx: HashMap::new(), cxx: HashMap::new(),
ar: HashMap::new(), ar: HashMap::new(),

View file

@ -18,6 +18,7 @@ use build_helper::output;
use cmake; use cmake;
use cc; use cc;
use crate::channel;
use crate::util::{self, exe}; use crate::util::{self, exe};
use build_helper::up_to_date; use build_helper::up_to_date;
use crate::builder::{Builder, RunConfig, ShouldRun, Step}; use crate::builder::{Builder, RunConfig, ShouldRun, Step};
@ -231,7 +232,26 @@ impl Step for Llvm {
} }
if let Some(ref suffix) = builder.config.llvm_version_suffix { if let Some(ref suffix) = builder.config.llvm_version_suffix {
cfg.define("LLVM_VERSION_SUFFIX", suffix); // Allow version-suffix="" to not define a version suffix at all.
if !suffix.is_empty() {
cfg.define("LLVM_VERSION_SUFFIX", suffix);
}
} else {
let mut default_suffix = format!(
"-rust-{}-{}",
channel::CFG_RELEASE_NUM,
builder.config.channel,
);
let llvm_info = if self.emscripten {
&builder.emscripten_llvm_info
} else {
&builder.in_tree_llvm_info
};
if let Some(sha) = llvm_info.sha_short() {
default_suffix.push_str("-");
default_suffix.push_str(sha);
}
cfg.define("LLVM_VERSION_SUFFIX", default_suffix);
} }
if let Some(ref linker) = builder.config.llvm_use_linker { if let Some(ref linker) = builder.config.llvm_use_linker {