Add host.runner for wrapping host build target executions#16599
Add host.runner for wrapping host build target executions#16599weihanglo merged 1 commit intorust-lang:masterfrom
Conversation
|
r? @epage rustbot has assigned @epage. Use Why was this reviewer chosen?The reviewer was selected based on:
|
There was a problem hiding this comment.
I understand the the failure already show that it is working, could we have a successful case using the echo_wrapper? Such as having this WRAPPER CALLED: snapshot
cargo/tests/testsuite/build.rs
Lines 4464 to 4474 in b9f0d83
There was a problem hiding this comment.
I added a commit to handle this.
|
@weihanglo any idea why this failed on windows x86_64? |
I guess due to raw string so backlashes in Windows paths were not escaped. Perhaps we can instead use |
Head branch was pushed to by a user without write access
|
@weihanglo fixed, ready for merge? |
1 similar comment
|
@weihanglo fixed, ready for merge? |
Update cargo submodule 27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88 2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000 - chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624) - fix(script): Load config relative to the script (rust-lang/cargo#16620) - fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618) - fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608) - fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619) - fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617) - chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615) - chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613) - feat(timings): Enable text selection in the charts (rust-lang/cargo#16607) - Add host.runner for wrapping host build target executions (rust-lang/cargo#16599) - feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609) - refactor(lints): Cleanup (rust-lang/cargo#16610) - refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602) - Fix known hosts parsing (rust-lang/cargo#16596) - chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601) - chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593) - feat(lints): Add missing_lints_inheritance (rust-lang/cargo#16588) - chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589) - chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587) - feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585) - Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577) - Fix link for lockfile-publish-time (rust-lang/cargo#16582) - docs(cli): Discuss commands and aliases (rust-lang/cargo#16581) - fix(script): Correct style of help message (rust-lang/cargo#16580) - chore(deps): update compatible (rust-lang/cargo#16578) - chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579) - fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
This is a regression found in rust-lang/compiler-builtins#1087 and introduced by rust-lang#16599 There are other regression that `host.runner` and `host.linker` are accidentally applied to target builds which I plan to fix both in a follow-up PR. (rust-lang#12535 introduced the `host.linker` bug btw)
This is a regression found in rust-lang/miri#4855 and introduced by rust-lang#16599 There are other regression that `host.runner` and `host.linker` are accidentally applied to target builds which I plan to fix both in a follow-up PR. (rust-lang#12535 introduced the `host.linker` bug btw)
### What does this PR try to resolve? This is a regression found in rust-lang/compiler-builtins#1087 and introduced by #16599 There are other regression that `host.runner` and `host.linker` are accidentally applied to target builds which I plan to fix both in a follow-up PR. (#12535 introduced the `host.linker` bug btw)
|
There seems to be a lot of fallout from this PR or related changes. It seems like there isn't enough testing of when the |
Update cargo submodule 27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88 2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000 - chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624) - fix(script): Load config relative to the script (rust-lang/cargo#16620) - fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618) - fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608) - fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619) - fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617) - chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615) - chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613) - feat(timings): Enable text selection in the charts (rust-lang/cargo#16607) - Add host.runner for wrapping host build target executions (rust-lang/cargo#16599) - feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609) - refactor(lints): Cleanup (rust-lang/cargo#16610) - refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602) - Fix known hosts parsing (rust-lang/cargo#16596) - chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601) - chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593) - feat(lints): Add missing_lints_inheritance (rust-lang/cargo#16588) - chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589) - chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587) - feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585) - Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577) - Fix link for lockfile-publish-time (rust-lang/cargo#16582) - docs(cli): Discuss commands and aliases (rust-lang/cargo#16581) - fix(script): Correct style of help message (rust-lang/cargo#16580) - chore(deps): update compatible (rust-lang/cargo#16578) - chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579) - fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
Update cargo submodule 27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88 2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000 - chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624) - fix(script): Load config relative to the script (rust-lang/cargo#16620) - fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618) - fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608) - fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619) - fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617) - chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615) - chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613) - feat(timings): Enable text selection in the charts (rust-lang/cargo#16607) - Add host.runner for wrapping host build target executions (rust-lang/cargo#16599) - feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609) - refactor(lints): Cleanup (rust-lang/cargo#16610) - refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602) - Fix known hosts parsing (rust-lang/cargo#16596) - chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601) - chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593) - feat(lints): Add missing_lints_inheritance (rust-lang/cargo#16588) - chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589) - chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587) - feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585) - Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577) - Fix link for lockfile-publish-time (rust-lang/cargo#16582) - docs(cli): Discuss commands and aliases (rust-lang/cargo#16581) - fix(script): Correct style of help message (rust-lang/cargo#16580) - chore(deps): update compatible (rust-lang/cargo#16578) - chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579) - fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
What does this PR try to resolve?
This PR resolves #16591 by adding support for
host.runnerconfig under the existing-Zhost-configunstable feature. Cargo already hastarget.<triple>.runnerto wrap execution of target binaries (cargo run/test/bench), but no equivalent for host build targets like build scripts.How to test and review this PR?
The implementation is two small changes in
compilation.rs:target_runner()now usesbcx.target_data.target_config(kind).runnerinstead of manually constructing atarget.{triple}.runnerkey, mirroring howtarget_linker()already works. This routes throughhost_configforCompileKind::Hostwhen-Zhost-configis enabled.host_process()now prepends the runner, mirroring the existing logic intarget_process().I added four new tests to cover the feature.