Do not enable LLD by default in the dist profile#143255
Merged
bors merged 1 commit intorust-lang:masterfrom Jul 1, 2025
Merged
Do not enable LLD by default in the dist profile#143255bors merged 1 commit intorust-lang:masterfrom
bors merged 1 commit intorust-lang:masterfrom
Conversation
Collaborator
|
|
Member
Author
|
@bors2 try |
Contributor
rust-bors bot
added a commit
that referenced
this pull request
Jun 30, 2025
Do not enable LLD by default in the dist profile History of us building & shipping LLD for `dist` builds: 1) We used to unconditionally build & ship LLD in bootstrap 2) This was causing problems for people doing custom `dist` builds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD) 3) #126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabled `rust.lld = true` in the `dist` profile by default, and overwrote the default to `false` on our CI for external LLVM builds. - This also didn't match the documentation of `rust.lld` in `bootstrap.example.toml`, which I previously missed. 4) However, since the external LLVM opt-out was only implemented for our CI, and not for all `dist` users, this started causing issues for people `dist`ing with external LLVM (#143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML. So this PR reverses the behavior. LLD is not enabled by default in `dist` anymore. We switch our CI to *opt into* disting LLD, unless an external LLVM is used. External `dist` users can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a [hard error](#143175). r? `@jieyouxu` try-job: x86_64-mingw try-job: dist-x86_64-linux
Contributor
|
💔 Test failed
|
Member
Author
|
@bors2 try |
Contributor
rust-bors bot
added a commit
that referenced
this pull request
Jun 30, 2025
Do not enable LLD by default in the dist profile History of us building & shipping LLD for `dist` builds: 1) We used to unconditionally build & ship LLD in bootstrap 2) This was causing problems for people doing custom `dist` builds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD) 3) #126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabled `rust.lld = true` in the `dist` profile by default, and overwrote the default to `false` on our CI for external LLVM builds. - This also didn't match the documentation of `rust.lld` in `bootstrap.example.toml`, which I previously missed. 4) However, since the external LLVM opt-out was only implemented for our CI, and not for all `dist` users, this started causing issues for people `dist`ing with external LLVM (#143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML. So this PR reverses the behavior. LLD is not enabled by default in `dist` anymore. We switch our CI to *opt into* disting LLD, unless an external LLVM is used. External `dist` users can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a [hard error](#143175). r? `@jieyouxu` try-job: `x86_64-mingw*` try-job: dist-x86_64-linux
Contributor
Collaborator
|
☔ The latest upstream changes (presumably #143254) made this pull request unmergeable. Please resolve the merge conflicts. |
595b89b to
c2daa28
Compare
Collaborator
|
This PR modifies If appropriate, please update |
Member
|
@bors r+ rollup |
Collaborator
bors
added a commit
that referenced
this pull request
Jul 1, 2025
Rollup of 12 pull requests Successful merges: - #136801 (Implement `Random` for tuple) - #141867 (Describe Future invariants more precisely) - #142760 (docs(fs): Touch up grammar on lock api) - #143181 (Improve testing and error messages for malformed attributes) - #143210 (`tests/ui`: A New Order [19/N] ) - #143212 (`tests/ui`: A New Order [20/N]) - #143230 ([COMPILETEST-UNTANGLE 2/N] Make some compiletest errors/warnings/help more visually obvious) - #143240 (Port `#[rustc_object_lifetime_default]` to the new attribute parsing …) - #143255 (Do not enable LLD by default in the dist profile) - #143262 (mir: Mark `Statement` and `BasicBlockData` as `#[non_exhaustive]`) - #143269 (bootstrap: make comment more clear) - #143279 (Remove `ItemKind::descr` method) Failed merges: - #143237 (Port `#[no_implicit_prelude]` to the new attribute parsing infrastructure) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
that referenced
this pull request
Jul 1, 2025
Rollup merge of #143255 - Kobzol:disable-lld-by-default, r=jieyouxu Do not enable LLD by default in the dist profile History of us building & shipping LLD for `dist` builds: 1) We used to unconditionally build & ship LLD in bootstrap 2) This was causing problems for people doing custom `dist` builds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD) 3) #126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabled `rust.lld = true` in the `dist` profile by default, and overwrote the default to `false` on our CI for external LLVM builds. - This also didn't match the documentation of `rust.lld` in `bootstrap.example.toml`, which I previously missed. 4) However, since the external LLVM opt-out was only implemented for our CI, and not for all `dist` users, this started causing issues for people `dist`ing with external LLVM (#143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML. So this PR reverses the behavior. LLD is not enabled by default in `dist` anymore. We switch our CI to *opt into* disting LLD, unless an external LLVM is used. External `dist` users can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a [hard error](#143175). r? `@jieyouxu` try-job: `x86_64-mingw*` try-job: dist-x86_64-linux
OddBloke
added a commit
to wolfi-dev/os
that referenced
this pull request
Jul 2, 2025
Upstream have changed to no longer unconditionally build LLD in bootstrap, instead only building it if a system LLVM was not in use. The defaults were not updated before 1.88 was released to reflect this, however, so the boostrap will still expect `rust-lld` to have been built. This change is recommended by upstream in rust-lang/rust#143076 (comment) See also rust-lang/rust#143255 which will fix this for post-1.88 releases (which shouldn't matter for us, as we'll still have this configuration change in place).
OddBloke
added a commit
to wolfi-dev/os
that referenced
this pull request
Jul 2, 2025
Upstream have changed to no longer unconditionally build LLD in bootstrap, instead only building it if a system LLVM was not in use. The defaults were not updated before 1.88 was released to reflect this, however, so the boostrap will still expect `rust-lld` to have been built. This change is recommended by upstream in rust-lang/rust#143076 (comment) See also rust-lang/rust#143255 which will fix this for post-1.88 releases (which shouldn't matter for us, as we'll still have this configuration change in place).
ognevny
reviewed
Jul 25, 2025
| ChangeInfo { | ||
| change_id: 143255, | ||
| severity: ChangeSeverity::Warning, | ||
| summary: "`llvm.lld` is no longer enabled by default for the dist profile.", |
Contributor
There was a problem hiding this comment.
shouldn't it be rust.lld instead? or I missed something?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
History of us building & shipping LLD for
distbuilds:distbuilds (https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/MSVC.20Runtime.20mismatch.20when.20building.20LLD)llvm::Lldif lld is not enabled #126701 made shipping of LLD optional, but to preserve previous behavior, it forcefully enabledrust.lld = truein thedistprofile by default, and overwrote the default tofalseon our CI for external LLVM builds.rust.lldinbootstrap.example.toml, which I previously missed.distusers, this started causing issues for peopledisting with external LLVM (rustc-1.88.0 does not build using external LLVM due to missing rust-lld #143076). The problem is that the default shouldn't be "true", but "LLD is enabled when LLVM isn't external", but this is not possible to do only in TOML.So this PR reverses the behavior. LLD is not enabled by default in
distanymore. We switch our CI to opt into disting LLD, unless an external LLVM is used. Externaldistusers can still opt into enabling LLD, but if they do so while also using external LLVM, they will now get a hard error.r? @jieyouxu
try-job:
x86_64-mingw*try-job: dist-x86_64-linux