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:
parent
719b0d9849
commit
e7b7c417e6
2 changed files with 27 additions and 1 deletions
|
@ -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(),
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue