Skip to content

Rollup of 13 pull requests #144526

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

Merged
merged 29 commits into from
Jul 27, 2025
Merged

Rollup of 13 pull requests #144526

merged 29 commits into from
Jul 27, 2025

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Jul 27, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

ChrisDenton and others added 29 commits May 31, 2025 21:55
A recent change altered the definition of the link! macro when the windows_raw_dylib feature is enabled, changing its syntax from pub macro {..} to pub macro($tt:tt) {..} in rust-lang#143592

This change introduced a build failure with the error: "macros that expand to items must be delimited with braces or followed by a semicolon".

We add a semicolon to the line causing the issue as we also modify the non windows_raw_dylib link to make use of the link_dylib macro
They were disabled in bd287fa and haven't been
causing problems for a while anymore.

The entire testsuite still passes on aarch64-unknown-linux-musl with this feature
enabled.

Signed-off-by: Jens Reidel <[email protected]>
Since this test is limited to aarch64 and linux hosts, the --target
flag is entirely unnecessary and only breaks this on musl hosts. Let the
compiler use the default target instead.

Signed-off-by: Jens Reidel <[email protected]>
I missed this during review. We cannot declare a `tests` module within
`shared_helpers.rs` itself, as shim binaries that tries to include the
`shared_helpers` module through `#[path = ".."]` attributes would fail
to find it, breaking `./x check bootstrap`.

This reverts commit `40c2ca96411caaeab1563ff9041879f742d1d71b`.
This check is relatively cheap, and is a quick way to root out breaking
check flow of `bootstrap` itself.
Since rust-lang/rust be35d37 ("Use the compiler to determine
whether or not to enable f16 and f128"), `compiler-builtins` relies on
`rustc` to report whether or not `f16` and `f128` are supported, which
is reported by the backend. This means that there should no longer be
any need to unconditionally disable the types for clif in Bootstrap.

Backend config: https://github.com/rust-lang/rust/blob/a955f1cd09a027363729ceed919952d09f76f28e/compiler/rustc_codegen_cranelift/src/lib.rs#L224-L233
If `HOME` is empty, use the fallback instead

This is a minor change in the `home_dir` api. An empty path is never (or should never be) valid so if the `HOME` environment variable is empty then let's use the fallback instead.

r? libs-api
…r-errors

add codegen test for variadics

This is a part of rust-lang#144066 that can land without FCP.
…-multiple-abis, r=RalfJung

test using multiple c-variadic ABIs in the same program

tracking issue: rust-lang#100189

Check that multiple c-variadic calling conventions can be used in the same program.

Clang and gcc reject defining functions with a non-default calling convention and a variable
argument list, so C programs that use multiple c-variadic calling conventions are unlikely
to come up. Here we validate that our codegen backends do in fact generate correct code.

(CI will not run this test because it runs on aarch64, I would like to at least test that this runs on windows)

try-job: `x86_64-gnu`
try-job: `x86_64-msvc-*`
try-job: `x86_64-apple-2`
…li-obk

disable cfg.has_reliable_f128 on amdgcn

I was experimenting with compiling a few kernels for amd while working on std::offload. It seems like the logic in rust-lang/compiler-builtins#737 got removed, so I re-introduce it here. Probably should have a test to avoid another regression and make sure that f128 doesn't show up as target feature for amdgcn. It looks like currently we neither check that for nvptx, nor amdgpu. Maybe I could add two revisions to https://github.com/rust-lang/rust/blob/master/tests/ui/float/target-has-reliable-nightly-float.rs?
r? ````@Flakebi````

fixes: rust-lang#144381
…ly-abort, r=oli-obk

Stop compilation early if macro expansion failed

Fixes rust-lang#116180.

So there isn't really a type that is central for macro expansion and some errors are actually emitted (because the resolution happens after the expansion I suppose) after the expansion pass (like "not found macro"). Sometimes, errors are only emitted on the second "try" (to improve error output). So I couldn't reach a similar solution than what was done in rust-lang#133937 and suggested by ````@estebank```` in rust-lang#116180 (comment). But maybe I missed something?

So in the end, I realized that there is method called every time (except one, described below) a macro error is actually emitted: `ExtCtxt::trace_macros_diag`. Considering I updated what it did, I renamed it into `macro_error_and_trace_macros_diag` to better reflect it.

There is only one call of `trace_macros_diag` which isn't reporting an error but just used for `macro_trace` feature, so I kept it as is.

r? ````@oli-obk````
library/windows_targets: Fix macro expansion error in 'link' macro

A recent change altered the definition of the link! macro when the windows_raw_dylib feature is enabled, changing its syntax from pub macro {..} to pub macro($tt:tt) {..} in rust-lang#143592

This change introduced a build failure with the error: "macros that expand to items must be delimited with braces or followed by a semicolon".

We add a semicolon to the line causing the issue as we also modify the non windows_raw_dylib link to make use of the link_dylib macro
…musl, r=Amanieu

Enable outline-atomics for aarch64-unknown-linux-musl

They were disabled in bd287fa and haven't been causing problems for a while anymore, see rust-lang#89626 for details.

The entire testsuite still passes on `aarch64-unknown-linux-musl` with this feature enabled.
…target, r=Noratrieb

tests: aarch64-outline-atomics: Remove hardcoded target

Since this test is limited to aarch64 and linux hosts, the `--target` flag is entirely unnecessary and only breaks this on musl hosts. Let the compiler use the default target instead.
…ts, r=Kobzol

Fix `./x check bootstrap` (again)

Redoes rust-lang#134883 and reverts 40c2ca9 from rust-lang#142416. Unfortunately I missed this during review.

- Commit 1: Reverts 40c2ca9 and re-applies rust-lang#134883.
- Commit 2: Check `./x check bootstrap` in `pr-check-1` to catch "obvious" problems like this.

r? Kobzol
… r=jieyouxu

canonicalize build root in `tests/run-make/linker-warning`

r? jieyouxu

This is similar to rust-lang#139823 -- the test fails for me because my build dir is a symlink.
Only run bootstrap tests in `x test` on CI

Discussed at https://rust-lang.zulipchat.com/#narrow/channel/122652-new-members/topic/Linux.20Distribution/with/530839642. The bootstrap tests can be sensitive of the environment where they are executed. And now that they are executed very early in the test pipeline, it can be annoying for people who just try to do `x test` when it fails on bootstrap tests.

We could move the bootstrap tests back to the end of the `x test` pipeline, but then it would just fail later. I'd prefer to only run them on CI by default.

Fixes: rust-lang#143973
…r=bjorn3

clif: Don't set the `compiler-builtins-no-f16-f128` feature

Since rust-lang/rust be35d37 ("Use the compiler to determine whether or not to enable f16 and f128"), `compiler-builtins` relies on `rustc` to report whether or not `f16` and `f128` are supported, which is reported by the backend. This means that there should no longer be any need to unconditionally disable the types for clif in Bootstrap.

Backend config: https://github.com/rust-lang/rust/blob/a955f1cd09a027363729ceed919952d09f76f28e/compiler/rustc_codegen_cranelift/src/lib.rs#L224-L233
…thar

Revert "coverage: Enlarge empty spans during MIR instrumentation, not codegen"

Surprisingly, rust-lang#144298 alone (extracted from rust-lang#140847) was enough to re-trigger the failures observed in rust-lang#141577 (comment).

---

This reverts commit f877aa7.

---

r? ghost
@rustbot rustbot added the A-CI Area: Our Github Actions CI label Jul 27, 2025
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jul 27, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Jul 27, 2025

@bors r+ rollup=never p=5

@rustbot rustbot added the rollup A PR which is a rollup label Jul 27, 2025
@bors
Copy link
Collaborator

bors commented Jul 27, 2025

📌 Commit 8aa3d41 has been approved by jhpratt

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 Jul 27, 2025
@bors
Copy link
Collaborator

bors commented Jul 27, 2025

⌛ Testing commit 8aa3d41 with merge 052114f...

@bors
Copy link
Collaborator

bors commented Jul 27, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 052114f to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 27, 2025
@bors bors merged commit 052114f into rust-lang:master Jul 27, 2025
11 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 27, 2025
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 283a074 (parent) -> 052114f (this PR)

Test differences

Show 32 test diffs

Stage 0

  • utils::shared_helpers::tests::test_parse_value_from_args: pass -> [missing] (J1)
  • utils::tests::shared_helpers_tests::test_parse_value_from_args: [missing] -> pass (J1)

Stage 1

  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#aarch64: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#arm32: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_32: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_32_win: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_64: [missing] -> pass (J3)
  • [ui] tests/ui/c-variadic/same-program-multiple-abis.rs: [missing] -> pass (J3)
  • [ui] tests/ui/c-variadic/variadic-ffi-2-arm.rs: ignore (only executed when the architecture is arm) -> [missing] (J3)
  • [ui] tests/ui/c-variadic/variadic-ffi-2.rs: pass -> [missing] (J3)
  • [ui] tests/ui/const-generics/min_const_generics/macro-fail-const.rs: [missing] -> pass (J3)
  • [ui] tests/ui/offset-of/offset-of-tuple-field.rs: [missing] -> pass (J3)
  • [ui] tests/ui/rfcs/rfc-2294-if-let-guard/feature-gate-macro.rs: [missing] -> pass (J3)
  • [ui] tests/ui/self/self_type_macro_name.rs: [missing] -> pass (J3)

Stage 2

  • [ui] tests/ui/c-variadic/variadic-ffi-2-arm.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#aarch64: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#arm32: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_32: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_32_win: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/cffi/c-variadic-ffi.rs#x86_64: [missing] -> pass (J2)
  • [ui] tests/ui/c-variadic/same-program-multiple-abis.rs: [missing] -> ignore (only executed when the architecture is x86_64) (J4)
  • [ui] tests/ui/c-variadic/variadic-ffi-2.rs: pass -> [missing] (J5)
  • [ui] tests/ui/const-generics/min_const_generics/macro-fail-const.rs: [missing] -> pass (J5)
  • [ui] tests/ui/offset-of/offset-of-tuple-field.rs: [missing] -> pass (J5)
  • [ui] tests/ui/rfcs/rfc-2294-if-let-guard/feature-gate-macro.rs: [missing] -> pass (J5)
  • [ui] tests/ui/self/self_type_macro_name.rs: [missing] -> pass (J5)
  • [ui] tests/ui/c-variadic/variadic-ffi-2-arm.rs: ignore (only executed when the architecture is arm) -> [missing] (J6)
  • [ui] tests/ui/c-variadic/same-program-multiple-abis.rs: [missing] -> pass (J7)

Additionally, 4 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 052114f0c5e8d49f62f8caba364b07017310ab09 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-apple-various: 6316.5s -> 7435.2s (17.7%)
  2. x86_64-apple-2: 5134.4s -> 6009.0s (17.0%)
  3. dist-aarch64-apple: 6644.1s -> 5778.0s (-13.0%)
  4. aarch64-apple: 5082.7s -> 5664.2s (11.4%)
  5. pr-check-1: 1516.5s -> 1666.6s (9.9%)
  6. dist-x86_64-apple: 10469.6s -> 9637.3s (-7.9%)
  7. x86_64-gnu-llvm-19-1: 3297.9s -> 3537.6s (7.3%)
  8. dist-ohos-armv7: 3895.6s -> 4172.3s (7.1%)
  9. dist-aarch64-msvc: 5583.7s -> 5858.5s (4.9%)
  10. x86_64-msvc-2: 6818.7s -> 6498.8s (-4.7%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#141840 If HOME is empty, use the fallback instead b65d47922a56f5b0718ebdf37e7bbe521f47d97b (link)
#144359 add codegen test for variadics d35c6960a3b4ebb58dbb5711802395f25d538793 (link)
#144379 test using multiple c-variadic ABIs in the same program 92e66755a70b65ee58a29ed68f7b61f0683a9240 (link)
#144383 disable cfg.has_reliable_f128 on amdgcn cbe3baab6f79b0dfc5893939dcc86ea7dc15b67f (link)
#144409 Stop compilation early if macro expansion failed 7a8d0362d73deb8c2e690d9d30f0980788d7a3cd (link)
#144422 library/windows_targets: Fix macro expansion error in 'link… 80ad7e5241b8e47e7f6968752b3a52f780bc3d35 (link)
#144429 Enable outline-atomics for aarch64-unknown-linux-musl df84218ffc5fcc22d000c04dbf45b685a1a00706 (link)
#144430 tests: aarch64-outline-atomics: Remove hardcoded target 8f66f7e478272318610b889ab30dd29048b1165b (link)
#144445 Fix ./x check bootstrap (again) dca86a8a1d7de34a3ba131b5c390353e436adc8f (link)
#144453 canonicalize build root in tests/run-make/linker-warning eafe994ad7f295003117a9a6fa4c40d42f937372 (link)
#144464 Only run bootstrap tests in x test on CI 699ad1a388541da755bd48d0663fe1580e43b400 (link)
#144470 clif: Don't set the compiler-builtins-no-f16-f128 feature bc8339513279739cc681f0d9a2cc9c3035484ab3 (link)
#144480 Revert "coverage: Enlarge empty spans during MIR instrument… 0d9188f4055bd4b0b8be1abd224930a611d07a87 (link)

previous master: 283a0746a2

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (052114f): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary -6.6%, secondary -4.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-6.6% [-6.6%, -6.6%] 1
Improvements ✅
(secondary)
-4.0% [-5.9%, -1.9%] 7
All ❌✅ (primary) -6.6% [-6.6%, -6.6%] 1

Cycles

Results (primary 2.8%, secondary 5.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.8% [2.8%, 2.8%] 1
Regressions ❌
(secondary)
5.6% [3.1%, 9.4%] 14
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.8% [2.8%, 2.8%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 467.05s -> 467.835s (0.17%)
Artifact size: 376.65 MiB -> 376.68 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like rollup A PR which is a rollup 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. 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.