-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conditionally build wasm-component-ld
#127866
Conditionally build wasm-component-ld
#127866
Conversation
r? @onur-ozkan rustbot has assigned @onur-ozkan. Use |
This PR modifies If appropriate, please update |
This comment has been minimized.
This comment has been minimized.
a930388
to
45b5cfa
Compare
wasm-component-ld
when lld
is enabledwasm-component-ld
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM other than a missing change record.
This PR modifies config.example.toml.
If appropriate, please update CONFIG_CHANGE_HISTORY in src/bootstrap/src/utils/change_tracker.rs.
Please add it in change_tracker
module similar to
rust/src/bootstrap/src/utils/change_tracker.rs
Lines 188 to 192 in e35364a
ChangeInfo { | |
change_id: 124129, | |
severity: ChangeSeverity::Warning, | |
summary: "`rust.lld` has a new default value of `true` on `x86_64-unknown-linux-gnu`. Starting at stage1, `rust-lld` will thus be this target's default linker. No config changes should be necessary.", | |
}, |
Sure thing, added. I figured this was a pretty niche and small change and it looks like all users get warnings/prints/etc when updating existing checkouts so I didn't want to spam messages, but if it's desired to have an exhaustive changelog I'm happy to add the entry. |
Thanks, no worries about the spam; records are printed only once (unless the build directory is removed). @bors r+ |
☔ The latest upstream changes (presumably #127936) made this pull request unmergeable. Please resolve the merge conflicts. |
This commit updates the support for the `wasm-component-ld` tool from rust-lang#126967 to conditionally build it rather than unconditionally building it when LLD is enabled. This support is disabled by default and can be enabled by one of two means: * the `extended` field in `config.toml` which dist builders use to build a complete set of tools for each host platform. * a `"wasm-component-ld"` entry in the `tools` section of `config.toml`. Neither of these are enabled by default meaning that most local builds will likely not have this new tool built. Dist builders should still, however, build the tool.
d0777ca
to
f0a2b5b
Compare
Rebased! |
@bors r+ |
…t-ld-by-default, r=onur-ozkan Conditionally build `wasm-component-ld` This commit updates the support for the `wasm-component-ld` tool from rust-lang#126967 to conditionally build rather than unconditionally building it when LLD is enabled. This support is disabled by default and can be enabled by one of two means: * the `extended` field in `config.toml` which dist builders use to build a complete set of tools for each host platform. * a `"wasm-component-ld"` entry in the `tools` section of `config.toml`. Neither of these are enabled by default meaning that most local builds will likely not have this new tool built. Dist builders should still, however, build the tool.
Rollup of 8 pull requests Successful merges: - rust-lang#123196 (Add Process support for UEFI) - rust-lang#127523 (Migrate `dump-ice-to-disk` and `panic-abort-eh_frame` `run-make` tests to rmake) - rust-lang#127556 (Replace a long inline "autoref" comment with method docs) - rust-lang#127693 (Migrate `crate-hash-rustc-version` to `rmake`) - rust-lang#127866 (Conditionally build `wasm-component-ld` ) - rust-lang#127918 (Safely enforce thread name requirements) - rust-lang#127948 (fixes panic error `index out of bounds` in conflicting error) - rust-lang#127980 (Avoid ref when using format! in compiler) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#123196 (Add Process support for UEFI) - rust-lang#127556 (Replace a long inline "autoref" comment with method docs) - rust-lang#127693 (Migrate `crate-hash-rustc-version` to `rmake`) - rust-lang#127866 (Conditionally build `wasm-component-ld` ) - rust-lang#127918 (Safely enforce thread name requirements) - rust-lang#127948 (fixes panic error `index out of bounds` in conflicting error) - rust-lang#127980 (Avoid ref when using format! in compiler) - rust-lang#127984 (Avoid ref when using format! in src) - rust-lang#127987 (More accurate suggestion for `-> Box<dyn Trait>` or `-> impl Trait`) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#123196 (Add Process support for UEFI) - rust-lang#127556 (Replace a long inline "autoref" comment with method docs) - rust-lang#127693 (Migrate `crate-hash-rustc-version` to `rmake`) - rust-lang#127866 (Conditionally build `wasm-component-ld` ) - rust-lang#127918 (Safely enforce thread name requirements) - rust-lang#127948 (fixes panic error `index out of bounds` in conflicting error) - rust-lang#127980 (Avoid ref when using format! in compiler) - rust-lang#127984 (Avoid ref when using format! in src) - rust-lang#127987 (More accurate suggestion for `-> Box<dyn Trait>` or `-> impl Trait`) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#127866 - alexcrichton:disable-wasm-component-ld-by-default, r=onur-ozkan Conditionally build `wasm-component-ld` This commit updates the support for the `wasm-component-ld` tool from rust-lang#126967 to conditionally build rather than unconditionally building it when LLD is enabled. This support is disabled by default and can be enabled by one of two means: * the `extended` field in `config.toml` which dist builders use to build a complete set of tools for each host platform. * a `"wasm-component-ld"` entry in the `tools` section of `config.toml`. Neither of these are enabled by default meaning that most local builds will likely not have this new tool built. Dist builders should still, however, build the tool.
Hmm the condition to build wasm-component-ld seems inconsistent with other tools (cargo etc.). Those tools require both IMO we should change it to match other tools (or there's just no way to build another tool without building wasm-component-ld). |
It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. [comment]: rust-lang#127866 (comment)
Good catch, and my bad on the mistake! I've tried to fix this in #130034 |
…nt-ld-comments, r=onur-ozkan Fix enabling wasm-component-ld to match other tools It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. While here I also fixed a typo pointed out in rust-lang#126967 (review) [comment]: rust-lang#127866 (comment)
…nt-ld-comments, r=onur-ozkan Fix enabling wasm-component-ld to match other tools It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. While here I also fixed a typo pointed out in rust-lang#126967 (review) [comment]: rust-lang#127866 (comment)
…nt-ld-comments, r=onur-ozkan Fix enabling wasm-component-ld to match other tools It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. While here I also fixed a typo pointed out in rust-lang#126967 (review) [comment]: rust-lang#127866 (comment)
Rollup merge of rust-lang#130034 - alexcrichton:fix-some-wasm-component-ld-comments, r=onur-ozkan Fix enabling wasm-component-ld to match other tools It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. While here I also fixed a typo pointed out in rust-lang#126967 (review) [comment]: rust-lang#127866 (comment)
…ments, r=onur-ozkan Fix enabling wasm-component-ld to match other tools It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. While here I also fixed a typo pointed out in rust-lang/rust#126967 (review) [comment]: rust-lang/rust#127866 (comment)
It was [pointed out recently][comment] that enabling `wasm-component-ld` as a host tool is different from other host tools. This commit refactors the logic to match by deduplicating selection of when to build other tools and then using the same logic for `wasm-component-ld`. [comment]: rust-lang#127866 (comment)
Here are all the changes. I went through them one-by-one and confirmed that they should not be affecting us. In paritcular, we explicitly set rust.lld = false (because we want to use the lld that ships with clang), so the change in default does not affect us. There have been changes to x.py since you last updated: [INFO] New option `build.lldb` that will override the default lldb binary path used in debuginfo tests - PR Link rust-lang/rust#124501 [INFO] The compiler profile now defaults to rust.debuginfo-level = "line-tables-only" - PR Link rust-lang/rust#123337 [WARNING] `rust.lld` has a new default value of `true` on `x86_64-unknown-linux-gnu`. Starting at stage1, `rust-lld` will thus be this target's default linker. No config changes should be necessary. - PR Link rust-lang/rust#124129 [WARNING] Removed `dist.missing-tools` configuration as it was deprecated long time ago. - PR Link rust-lang/rust#125535 [WARNING] `llvm.lld` is enabled by default for the dist profile. If set to false, `lld` will not be included in the dist build. - PR Link rust-lang/rust#126701 [WARNING] `debug-logging` option has been removed from the default `tools` profile. - PR Link rust-lang/rust#127913 [INFO] the `wasm-component-ld` tool is now built as part of `build.extended` and can be a member of `build.tools` - PR Link rust-lang/rust#127866 [INFO] Removed android-ndk r25b support in favor of android-ndk r26d. - PR Link rust-lang/rust#120593 [WARNING] For tarball sources, default value for `rust.channel` will be taken from `src/ci/channel` file. - PR Link rust-lang/rust#125181 [INFO] New option `llvm.libzstd` to control whether llvm is built with zstd support. - PR Link rust-lang/rust#125642 [WARNING] ./x test --rustc-args was renamed to --compiletest-rustc-args as it only applies there. ./x miri --rustc-args was also removed. - PR Link rust-lang/rust#128841 [INFO] The `build.profiler` option now tries to use source code from `download-ci-llvm` if possible, instead of checking out the `src/llvm-project` submodule. - PR Link rust-lang/rust#129295 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/1120078 Original-Revision: 27df37a30e50b14b9ffefc872b6997790f03d4ea GitOrigin-RevId: 341e222f002e36886b9960645b21faeaed633f90 Change-Id: Id1eb54a677a6f538bf7666d65b85d5fdba17ea42
This commit updates the support for the
wasm-component-ld
tool from #126967 to conditionally build rather than unconditionally building it when LLD is enabled. This support is disabled by default and can be enabled by one of two means:extended
field inconfig.toml
which dist builders use to build a complete set of tools for each host platform."wasm-component-ld"
entry in thetools
section ofconfig.toml
.Neither of these are enabled by default meaning that most local builds will likely not have this new tool built. Dist builders should still, however, build the tool.