Skip to content

Rollup of 13 pull requests #144520

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

Closed
wants to merge 29 commits into from
Closed

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Jul 26, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

RalfJung and others added 29 commits July 23, 2025 14:19
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
…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
bump cargo_metadata

Bumps cargo_metadata. Change that required fixes is: oli-obk/cargo_metadata@e3373d0
@rustbot rustbot added the A-CI Area: Our Github Actions CI label Jul 26, 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 A-tidy Area: The tidy tool 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. rollup A PR which is a rollup labels Jul 26, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Jul 26, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jul 26, 2025

📌 Commit a510f44 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 26, 2025
@bors
Copy link
Collaborator

bors commented Jul 27, 2025

⌛ Testing commit a510f44 with merge 5a68900...

bors added a commit that referenced this pull request Jul 27, 2025
Rollup of 13 pull requests

Successful merges:

 - #144359 (add codegen test for variadics)
 - #144379 (test using multiple c-variadic ABIs in the same program)
 - #144383 (disable cfg.has_reliable_f128 on amdgcn)
 - #144409 (Stop compilation early if macro expansion failed)
 - #144422 (library/windows_targets: Fix macro expansion error in 'link' macro)
 - #144429 (Enable outline-atomics for aarch64-unknown-linux-musl)
 - #144430 (tests: aarch64-outline-atomics: Remove hardcoded target)
 - #144445 (Fix `./x check bootstrap` (again))
 - #144453 (canonicalize build root in `tests/run-make/linker-warning`)
 - #144464 (Only run bootstrap tests in `x test` on CI)
 - #144470 (clif: Don't set the `compiler-builtins-no-f16-f128` feature)
 - #144480 (Revert "coverage: Enlarge empty spans during MIR instrumentation, not codegen")
 - #144495 (bump cargo_metadata)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job dist-arm-linux-gnueabi failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling generate-copyright v0.1.0 (/checkout/src/tools/generate-copyright)
error[E0308]: mismatched types
  --> src/tools/generate-copyright/src/cargo_metadata.rs:95:46
   |
95 |             let package_id = Package { name: package.name, version: package.version.to_string() };
   |                                              ^^^^^^^^^^^^- help: try using a conversion method: `.to_string()`
   |                                              |
   |                                              expected `String`, found `PackageName`
   |
   = note: expected struct `std::string::String`
              found struct `cargo_util_schemas::manifest::PackageName`

For more information about this error, try `rustc --explain E0308`.
[RUSTC-TIMING] generate_copyright test:false 0.223
error: could not compile `generate-copyright` (bin "generate-copyright") due to 1 previous error
Build completed unsuccessfully in 0:41:48
  local time: Sun Jul 27 02:40:39 UTC 2025
  network time: Sun, 27 Jul 2025 02:40:39 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

@jhpratt jhpratt closed this Jul 27, 2025
@jhpratt jhpratt deleted the rollup-40b9kge branch July 27, 2025 02:41
@jhpratt jhpratt mentioned this pull request Jul 27, 2025
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 A-tidy Area: The tidy tool 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.