Skip to content

Use the in-tree compiler-builtins for the sysroot#141993

Merged
bors merged 5 commits intorust-lang:masterfrom
tgross35:use-in-tree-builtins
Jun 9, 2025
Merged

Use the in-tree compiler-builtins for the sysroot#141993
bors merged 5 commits intorust-lang:masterfrom
tgross35:use-in-tree-builtins

Conversation

@tgross35
Copy link
Contributor

@tgross35 tgross35 commented Jun 4, 2025

Many of std's dependency have a dependency on the crates.io compiler-builtins when used with the feature rustc-std-workspace-core. Use a Cargo patch to select the in-tree version instead.

compiler-builtins is also added as a dependency of rustc-std-workspace-core so these crates can remove their crates.io dependency in the future.

Zulip discussion: #t-compiler > Using in-tree compiler-builtins

Once this merges, the following PRs will need to make it to a release for the relevant crates:

The above should cover all tier 1 targets with no std features enabled. The remaining cover the rest:

try-job: x86_64-gnu
try-job: test-various

@rustbot rustbot added A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jun 4, 2025
@rust-log-analyzer

This comment has been minimized.

@tgross35 tgross35 added the rla-silenced Silences rust-log-analyzer postings to the PR it's added on. label Jun 4, 2025
@rustbot rustbot added A-tidy Area: The tidy tool T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Jun 4, 2025
@tgross35

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 4, 2025
WIP: Use the in-tree compiler-builtins for the sysroot

Zulip discussion: [#t-compiler > Using in-tree compiler-builtins](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Using.20in-tree.20compiler-builtins/with/522445336)

try-job: x86_64-gnu
try-job: test-various
@tgross35 tgross35 force-pushed the use-in-tree-builtins branch 2 times, most recently from 94592d3 to 3c91330 Compare June 4, 2025 21:01
@tgross35

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

@tgross35

This comment was marked as off-topic.

@rust-bors

This comment was marked as off-topic.

@tgross35 tgross35 force-pushed the use-in-tree-builtins branch 2 times, most recently from e3edcc4 to 145c702 Compare June 4, 2025 22:28
@tgross35

This comment was marked as outdated.

@rust-bors

This comment was marked as outdated.

rust-bors bot added a commit that referenced this pull request Jun 4, 2025
WIP: Use the in-tree compiler-builtins for the sysroot

Many of `std`'s dependency have a dependency on the crates.io `compiler-builtins` when used with the feature `rustc-std-workspace-core`. Use a Cargo patch to select the in-tree version instead.

`compiler-builtins` is also added as a dependency of `rustc-std-workspace-core` so these crates can remove their crates.io dependency in the future.

Zulip discussion: [#t-compiler > Using in-tree compiler-builtins](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Using.20in-tree.20compiler-builtins/with/522445336)

try-job: x86_64-gnu
try-job: x86_64-gnu-aux
try-job: test-various
@tgross35

This comment was marked as outdated.

@tgross35 tgross35 force-pushed the use-in-tree-builtins branch from 145c702 to a543f01 Compare June 4, 2025 22:28
@rust-bors

This comment was marked as outdated.

@tgross35 tgross35 changed the title WIP: Use the in-tree compiler-builtins for the sysroot Use the in-tree compiler-builtins for the sysroot Jun 4, 2025
@tgross35 tgross35 marked this pull request as ready for review June 4, 2025 22:30
@tgross35
Copy link
Contributor Author

tgross35 commented Jun 4, 2025

I believe this works now. The first two commits are cherry picks that I will drop once #142036 merges.

r? @bjorn3

@rust-bors
Copy link
Contributor

rust-bors bot commented Jun 8, 2025

💔 Test failed

tgross35 added 3 commits June 9, 2025 04:46
There are a few places that violate this lint, which showed up in
rust-lang/rust CI (the relevent module is gated behind
`kernel_user_helpers` which is only set for `armv4t`, `armv5te`, and
`arm-linux-androideabi`; none of these are tested in compiler-builtins
CI). Add new `unsafe { /* ... */ }` blocks where needed to address this.

Some blocks should get a more thorough review of their preconditions, so
their safety comments are left as `FIXME`s.
On the ILP32 `x86_64-unknown-linux-gnux32` target, `usize` is 32 bits so
there is a sub-register alignment warning. Specify the 64-bit `r`
registers, which matches the current default as well as the size of the
other operands in the routines.
The `build.rs` entrypoint returns early for some targets, so emscripten
and OpenBSD were not getting check-cfg set. Emit these earlier to avoid
the `unexpected_cfgs` lint.
@tgross35 tgross35 force-pushed the use-in-tree-builtins branch from 448db09 to fc71544 Compare June 9, 2025 04:47
@tgross35
Copy link
Contributor Author

tgross35 commented Jun 9, 2025

@bors2 try jobs=*various*

@rust-bors
Copy link
Contributor

rust-bors bot commented Jun 9, 2025

⌛ Trying commit fc71544 with merge fdbd817

To cancel the try build, run the command @bors2 try cancel.

rust-bors bot added a commit that referenced this pull request Jun 9, 2025
Use the in-tree `compiler-builtins` for the sysroot

Many of `std`'s dependency have a dependency on the crates.io `compiler-builtins` when used with the feature `rustc-std-workspace-core`. Use a Cargo patch to select the in-tree version instead.

`compiler-builtins` is also added as a dependency of `rustc-std-workspace-core` so these crates can remove their crates.io dependency in the future.

Zulip discussion: [#t-compiler > Using in-tree compiler-builtins](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Using.20in-tree.20compiler-builtins/with/522445336)

Once this merges, the following PRs will need to make it to a release for the relevant crates:

- rust-lang/getopts#119 (can merge at any time)
- rust-lang/hashbrown#625 (can merge at any time)
- rust-lang/stdarch#1825
- rust-lang/rustc-demangle#80
- rust-lang/cfg-if#84
- unicode-rs/unicode-width#77

The above should cover all tier 1 targets with no `std` features enabled. The remaining cover the rest:

- alexcrichton/dlmalloc-rs#50 (wasm, xous, sgx)
- gimli-rs/gimli#769
- r-efi/r-efi#89 (efi)
- r-efi/r-efi-alloc#9 (efi)
- fortanix/rust-sgx#770 (sgx)
- hermit-os/hermit-rs#718 (hermit)
- bytecodealliance/wasi-rs#108 (wasi)
- gimli-rs/addr2line#345
- oyvindln/adler2#2
- BurntSushi/memchr#180
- Frommi/miniz_oxide#173
- gimli-rs/object#777

try-job: x86_64-gnu
try-job: test-various
try-job: `*various*`
@rust-bors
Copy link
Contributor

rust-bors bot commented Jun 9, 2025

☀️ Try build successful (CI)
Build commit: fdbd817 (fdbd817613720a9898edca037a613559e7090b4b)

@tgross35
Copy link
Contributor Author

tgross35 commented Jun 9, 2025

Two small lint-related fixes on targets that aren't tested in compiler-builtins CI. I also locally checked that compiler-builtins builds without warning on all of rustc --print target-list.

@bors r=bjorn3

@bors
Copy link
Collaborator

bors commented Jun 9, 2025

📌 Commit fc71544 has been approved by bjorn3

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 9, 2025
oyvindln pushed a commit to Frommi/miniz_oxide that referenced this pull request Jun 9, 2025
Since [1], this will come automatically from `rustc-std-workspace-core`
and the crates.io dependency should no longer be specified.

[1]: rust-lang/rust#141993
bors added a commit that referenced this pull request Jun 9, 2025
Rollup of 5 pull requests

Successful merges:

 - #140767 (Stabilize `sha512`, `sm3` and `sm4` for x86)
 - #141001 (Make NonZero<char> possible)
 - #141993 (Use the in-tree `compiler-builtins` for the sysroot)
 - #142208 (Always consider `const _` items as live for dead code analysis)
 - #142238 (stabilize nonnull_provenance)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit ab87ed1 into rust-lang:master Jun 9, 2025
10 checks passed
@rustbot rustbot added this to the 1.89.0 milestone Jun 9, 2025
rust-timer added a commit that referenced this pull request Jun 9, 2025
Rollup merge of #141993 - tgross35:use-in-tree-builtins, r=bjorn3

Use the in-tree `compiler-builtins` for the sysroot

Many of `std`'s dependency have a dependency on the crates.io `compiler-builtins` when used with the feature `rustc-std-workspace-core`. Use a Cargo patch to select the in-tree version instead.

`compiler-builtins` is also added as a dependency of `rustc-std-workspace-core` so these crates can remove their crates.io dependency in the future.

Zulip discussion: [#t-compiler > Using in-tree compiler-builtins](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Using.20in-tree.20compiler-builtins/with/522445336)

Once this merges, the following PRs will need to make it to a release for the relevant crates:

- rust-lang/getopts#119 (can merge at any time)
- rust-lang/hashbrown#625 (can merge at any time)
- rust-lang/stdarch#1825
- rust-lang/rustc-demangle#80
- rust-lang/cfg-if#84
- unicode-rs/unicode-width#77

The above should cover all tier 1 targets with no `std` features enabled. The remaining cover the rest:

- alexcrichton/dlmalloc-rs#50 (wasm, xous, sgx)
- gimli-rs/gimli#769
- r-efi/r-efi#89 (efi)
- r-efi/r-efi-alloc#9 (efi)
- fortanix/rust-sgx#770 (sgx)
- hermit-os/hermit-rs#718 (hermit)
- bytecodealliance/wasi-rs#108 (wasi)
- gimli-rs/addr2line#345
- oyvindln/adler2#2
- BurntSushi/memchr#180
- Frommi/miniz_oxide#173
- gimli-rs/object#777

try-job: x86_64-gnu
try-job: test-various
@tgross35
Copy link
Contributor Author

tgross35 commented Jun 9, 2025

Tracking the dependency updates at #142265

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-run-make Area: port run-make Makefiles to rmake.rs A-tidy Area: The tidy tool rla-silenced Silences rust-log-analyzer postings to the PR it's added on. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants