mirror of
https://github.com/rust-lang/rust
synced 2024-09-29 21:28:29 +00:00
Auto merge of #126701 - onur-ozkan:build-lld-if-enabled, r=Kobzol
ignore `llvm::Lld` if lld is not enabled People are having trouble ([ref. zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD)) when they don't want to build `lld` for their custom distribution tarballs even with `lld = false` in their config.toml. This is because it is not controlled by `lld_enabled` flag. This change ensures that `llvm:Lld` is controlled by lld configuration. Additionally, `lld = true` is set by default for dist profile, because we have been building it all along and this maintains that behavior. try-job: x86_64-mingw
This commit is contained in:
commit
e9e6e2e444
|
@ -16,6 +16,7 @@ download-ci-llvm = false
|
|||
# Make sure they don't get set when installing from source.
|
||||
channel = "nightly"
|
||||
download-rustc = false
|
||||
lld = true
|
||||
# Build the llvm-bitcode-linker
|
||||
llvm-bitcode-linker = true
|
||||
|
||||
|
|
|
@ -2270,9 +2270,6 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
|
|||
|
||||
builder.ensure(crate::core::build_steps::llvm::Llvm { target });
|
||||
|
||||
// We want to package `lld` to use it with `download-ci-llvm`.
|
||||
builder.ensure(crate::core::build_steps::llvm::Lld { target });
|
||||
|
||||
let src_bindir = builder.llvm_out(target).join("bin");
|
||||
// If updating this, you likely want to change
|
||||
// src/bootstrap/download-ci-llvm-stamp as well, otherwise local users
|
||||
|
@ -2289,10 +2286,15 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
|
|||
}
|
||||
}
|
||||
|
||||
// We don't build LLD on some platforms, so only add it if it exists
|
||||
let lld_path = builder.lld_out(target).join("bin").join(exe("lld", target));
|
||||
if lld_path.exists() {
|
||||
tarball.add_file(lld_path, "bin", 0o755);
|
||||
if builder.config.lld_enabled {
|
||||
// We want to package `lld` to use it with `download-ci-llvm`.
|
||||
let lld_out = builder.ensure(crate::core::build_steps::llvm::Lld { target });
|
||||
|
||||
// We don't build LLD on some platforms, so only add it if it exists
|
||||
let lld_path = lld_out.join("bin").join(exe("lld", target));
|
||||
if lld_path.exists() {
|
||||
tarball.add_file(lld_path, "bin", 0o755);
|
||||
}
|
||||
}
|
||||
|
||||
tarball.add_file(builder.llvm_filecheck(target), "bin", 0o755);
|
||||
|
|
|
@ -195,4 +195,9 @@ pub fn human_readable_changes(changes: &[ChangeInfo]) -> String {
|
|||
severity: ChangeSeverity::Warning,
|
||||
summary: "Removed `dist.missing-tools` configuration as it was deprecated long time ago.",
|
||||
},
|
||||
ChangeInfo {
|
||||
change_id: 126701,
|
||||
severity: ChangeSeverity::Warning,
|
||||
summary: "`llvm.lld` is enabled by default for the dist profile. If set to false, `lld` will not be included in the dist build.",
|
||||
},
|
||||
];
|
||||
|
|
|
@ -85,6 +85,10 @@ fi
|
|||
# space required for CI artifacts.
|
||||
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --dist-compression-formats=xz"
|
||||
|
||||
if [ "$EXTERNAL_LLVM" = "1" ]; then
|
||||
RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --set rust.lld=false"
|
||||
fi
|
||||
|
||||
# Enable the `c` feature for compiler_builtins, but only when the `compiler-rt` source is available
|
||||
# (to avoid spending a lot of time cloning llvm)
|
||||
if [ "$EXTERNAL_LLVM" = "" ]; then
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// also be turned off with a CLI flag.
|
||||
|
||||
//@ needs-rust-lld
|
||||
//@ ignore-beta
|
||||
//@ ignore-stable
|
||||
//@ only-x86_64-unknown-linux-gnu
|
||||
|
||||
use run_make_support::regex::Regex;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//@ only-windows
|
||||
//@ only-x86_64-pc-windows-msvc
|
||||
//@ needs-rust-lld
|
||||
|
||||
use run_make_support::rustc;
|
||||
|
|
Loading…
Reference in a new issue