Skip to content

Commit 8a1e433

Browse files
emiliopietroalbini
authored andcommitted
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 rust-lang#59034.
1 parent 0754f1e commit 8a1e433

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/bootstrap/lib.rs

+6
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,8 @@ pub struct Build {
241241
clippy_info: channel::GitInfo,
242242
miri_info: channel::GitInfo,
243243
rustfmt_info: channel::GitInfo,
244+
in_tree_llvm_info: channel::GitInfo,
245+
emscripten_llvm_info: channel::GitInfo,
244246
local_rebuild: bool,
245247
fail_fast: bool,
246248
doc_tests: DocTests,
@@ -363,6 +365,8 @@ impl Build {
363365
let clippy_info = channel::GitInfo::new(&config, &src.join("src/tools/clippy"));
364366
let miri_info = channel::GitInfo::new(&config, &src.join("src/tools/miri"));
365367
let rustfmt_info = channel::GitInfo::new(&config, &src.join("src/tools/rustfmt"));
368+
let in_tree_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-project"));
369+
let emscripten_llvm_info = channel::GitInfo::new(&config, &src.join("src/llvm-emscripten"));
366370

367371
let mut build = Build {
368372
initial_rustc: config.initial_rustc.clone(),
@@ -386,6 +390,8 @@ impl Build {
386390
clippy_info,
387391
miri_info,
388392
rustfmt_info,
393+
in_tree_llvm_info,
394+
emscripten_llvm_info,
389395
cc: HashMap::new(),
390396
cxx: HashMap::new(),
391397
ar: HashMap::new(),

src/bootstrap/native.rs

+21-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use build_helper::output;
1818
use cmake;
1919
use cc;
2020

21+
use crate::channel;
2122
use crate::util::{self, exe};
2223
use build_helper::up_to_date;
2324
use crate::builder::{Builder, RunConfig, ShouldRun, Step};
@@ -231,7 +232,26 @@ impl Step for Llvm {
231232
}
232233

233234
if let Some(ref suffix) = builder.config.llvm_version_suffix {
234-
cfg.define("LLVM_VERSION_SUFFIX", suffix);
235+
// Allow version-suffix="" to not define a version suffix at all.
236+
if !suffix.is_empty() {
237+
cfg.define("LLVM_VERSION_SUFFIX", suffix);
238+
}
239+
} else {
240+
let mut default_suffix = format!(
241+
"-rust-{}-{}",
242+
channel::CFG_RELEASE_NUM,
243+
builder.config.channel,
244+
);
245+
let llvm_info = if self.emscripten {
246+
&builder.emscripten_llvm_info
247+
} else {
248+
&builder.in_tree_llvm_info
249+
};
250+
if let Some(sha) = llvm_info.sha_short() {
251+
default_suffix.push_str("-");
252+
default_suffix.push_str(sha);
253+
}
254+
cfg.define("LLVM_VERSION_SUFFIX", default_suffix);
235255
}
236256

237257
if let Some(ref linker) = builder.config.llvm_use_linker {

0 commit comments

Comments
 (0)