Commit Graph

6950 Commits

Author SHA1 Message Date
bit-aloo 1954494ec9 change config.toml to bootstrap.toml for bootstrap module 2025-03-17 12:56:41 +05:30
bors 227690a258 Auto merge of #137011 - LuuuXXX:promote-ohos-with-host-tools, r=Amanieu
Promote ohos targets to tier2 with host tools.

### What does this PR try to resolve?

Try to promote the following [[Tier 2 without Host Tools](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-without-host-tools)](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-without-host-tools) targets to [[Tier 2 with Host Tools](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-with-host-tools)](https://doc.rust-lang.org/rustc/platform-support.html#tier-2-with-host-tools):

- `aarch64-unknown-linux-ohos`
- `armv7-unknown-linux-ohos`
- `x86_64-unknown-linux-ohos`

### More Information?

see MCP: https://github.com/rust-lang/compiler-team/issues/811

### Blockage to be solved?

- [x] Submit an MCP
- [x] Submit code of promote ohos targets
- [x] Resolve related dependencies (`measureme`)

The modified code of the measureme has been merged (see https://github.com/rust-lang/measureme/pull/238). [done]
The new version will was released (https://github.com/rust-lang/measureme/pull/240). [done]
2025-03-16 18:42:18 +00:00
许杰友 Jieyou Xu (Joe) b8c51f4e17 Rollup merge of #137147 - Shourya742:2025-02-16-support-exclude-in-config.toml, r=onur-ozkan
Add exclude to config.toml

Closes: https://github.com/rust-lang/rust/issues/35678

r? `@onur-ozkan`

try-job: x86_64-msvc-2
2025-03-16 09:40:02 +08:00
bors 9f274ba399 Auto merge of #137665 - Kobzol:update-sccache, r=marcoieni
Update sccache to 0.10.0

This time, does it also for Windows and macOS. This unifies the sccache version across all OSes that we use.

r? `@ghost`

try-job: dist-aarch64-apple
try-job: dist-x86_64-apple
try-job: dist-x86_64-msvc
try-job: dist-x86_64-msvc-alt
try-job: dist-i686-msvc
try-job: dist-aarch64-msvc
try-job: dist-x86_64-linux
try-job: dist-x86_64-netbsd
2025-03-15 20:13:16 +00:00
León Orell Valerian Liehr fc7ac81979 Rollup merge of #138451 - Kobzol:gcc-ci-build-gcc, r=GuillaumeGomez
Build GCC on CI with GCC, not Clang

It seems that GCC built with Clang misbehaves. I have tested that cg_gcc tests [pass](https://github.com/rust-lang/rust/actions/runs/13842365913/job/38732750617?pr=138451) on CI with a downloaded GCC that was built in this way.

Prerequisite for https://github.com/rust-lang/rust/pull/138395.

r? ```@ghost```
2025-03-15 00:18:23 +01:00
León Orell Valerian Liehr 1e7441f145 Rollup merge of #138469 - tshepang:patch-6, r=onur-ozkan
remove comment regarding a removed test directive

Removed in https://github.com/rust-lang/rust/pull/120265
2025-03-14 17:26:32 +01:00
Jakub Beránek bf095f6ece Ensure that GCC is not built using Clang, as it misbehaves 2025-03-14 09:16:06 +01:00
Jacob Pratt 82d4ab6105 Rollup merge of #138389 - onur-ozkan:use-expect, r=jieyouxu
use `expect` instead of `allow`

This is more useful than `allow` as compiler will force us to remove rules that are no longer valid (we already got a few of them in this change).
2025-03-14 01:37:31 -04:00
Jakub Beránek 38fc11601e Store libgccjit.so in a lib directory in the GCC CI tarball 2025-03-13 21:32:23 +01:00
Jakub Beránek 955aef5a4e Change GCC build flags 2025-03-13 21:29:20 +01:00
Jakub Beránek c4371786d6 Create libgccjit.so.0 alias also for CI-downloaded GCC 2025-03-13 21:29:20 +01:00
Tshepang Mbambo 54d26b3756 remove comment regarding a removed test directive 2025-03-13 22:05:05 +02:00
Josh Stone 496788a490 Record the new settings checksums 2025-03-13 12:21:21 -07:00
bit-aloo c6ecd8c95c update the test_exclude to not use paths with path separators 2025-03-13 21:37:34 +05:30
bit-aloo 9d5f0742a9 make test platform agnostic 2025-03-13 21:37:34 +05:30
bit-aloo 22571da9f8 Add change info to change tracker 2025-03-13 21:37:32 +05:30
bit-aloo 7d1537e425 add test for exclude feature 2025-03-13 21:37:15 +05:30
bit-aloo ad74285275 add exclude to config.toml 2025-03-13 21:37:15 +05:30
Matthias Krüger 3b1776dc29 Rollup merge of #126856 - onur-ozkan:remove-rls, r=clubby789
remove deprecated tool `rls`

This tool has been deprecated for two years and now it only gives warning without doing anything useful.

Zulip discussion: https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/excluding.20rls.20from.20the.20release

try-job: x86_64-gnu-distcheck
2025-03-13 10:58:13 +01:00
onur-ozkan 675ae1afd0 use expect instead of allow
This is more useful than `allow` as compiler will force us to remove rules
that are no longer valid (we already got 2 of them in this change).

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-12 17:27:26 +00:00
Matthias Krüger 579d0587a2 Rollup merge of #138390 - onur-ozkan:fix-invalid-tracing-log, r=jieyouxu
fix incorrect tracing log

Previous information is not correct.
2025-03-12 17:59:10 +01:00
Matthias Krüger d93ef397ce Rollup merge of #138331 - nnethercote:use-RUSTC_LINT_FLAGS-more, r=onur-ozkan,jieyouxu
Use `RUSTC_LINT_FLAGS` more

An alternative to the failed #138084.

Fixes #138106.

r? ````@jieyouxu````
2025-03-12 17:59:08 +01:00
Jakub Beránek 7d141dc12e Remove sccache-plus-cl MSVC hack 2025-03-12 16:13:13 +01:00
bors 0998d4095b Auto merge of #137612 - Kobzol:bootstrap-2024, r=onur-ozkan
Update bootstrap to edition 2024

The stage0 compiler now supports edition 2024, so we can update bootstrap to it. I manually reviewed all the changes from `cargo fix --edition` and reverted most of them (`if let` -> `matches` changes and two unneeded usages of `use <>`).

r? `@onur-ozkan`

try-job: dist-x86_64-msvc
2025-03-12 11:05:40 +00:00
onur-ozkan cb260791a4 fix incorrect tracing log
Previous information is not correct.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-12 08:10:51 +00:00
Matthias Krüger 53e4e6f0cc Rollup merge of #138313 - rustbot:docs-update, r=jieyouxu
Update books

## rust-lang/book

11 commits in 4a01a9182496f807aaa5f72d93a25ce18bcbe105..81a976a237f84b8392c4ce1bd5fd076eb757a2eb
2025-02-27 22:10:41 UTC to 2025-02-24 18:36:27 UTC

- Ch. 10: Make social media discussion generic. (rust-lang/book#4249)
- Another Ch. 17 -> 18 fix (rust-lang/book#4247)
- Ch. 05: further tweak to wording about `user1` availability (rust-lang/book#4246)
- Ch. 02: Fix rand version mistake (from testing) (rust-lang/book#4245)
- Ch. 19: Correct the discussion of `fn` type and closures (rust-lang/book#4244)
- Edition maintenance: scripting the updates for future work (rust-lang/book#4243)
- Ch. 17: fresh-eyes edits (rust-lang/book#4242)
- Ch. 17: drop lifetime not required in 2024 Edition (rust-lang/book#4212)
- Appendix B, Operators: Replace “member access” with “field access” and “method call”. (rust-lang/book#4240)
- Update to Rust 1.85 and 2024 Edition! (rust-lang/book#4241)
- Chapter 1: fix 'four things' now that spacing is not emphasized (rust-lang/book#4239)

## rust-lang/edition-guide

2 commits in daa4b763cd848f986813b5cf8069e1649f7147af..1e27e5e6d5133ae4612f5cc195c15fc8d51b1c9c
2025-03-04 22:02:00 UTC to 2025-02-26 12:47:41 UTC

- Mention both `rustfmt.toml` and `.rustfmt.toml` (rust-lang/edition-guide#372)
- Fix a typo (rust-lang/edition-guide#370)

## rust-lang/nomicon

1 commits in 8f5c7322b65d079aa5b242eb10d89a98e12471e1..b4448fa406a6dccde62d1e2f34f70fc51814cdcc
2025-03-01 04:48:05 UTC to 2025-03-01 04:48:05 UTC

- Update to 2024 edition (rust-lang/nomicon#481)

## rust-lang/reference

8 commits in 615b4cec60c269cfc105d511c93287620032d5b0..dda31c85f2ef2e5d2f0f2f643c9231690a30a626
2025-03-09 14:25:25 UTC to 2025-02-25 16:07:17 UTC

- Rework note blocks and change admonition rendering (rust-lang/reference#1754)
- Add more information on rules and tests (rust-lang/reference#1753)
- Mention `explicit_builtin_cfgs_in_flags` lint cfg chapter (rust-lang/reference#1747)
- fixup test links (rust-lang/reference#1741)
- Fix diagnostics typo: `do_no_recommend` -> `do_not_recommend` (rust-lang/reference#1749)
- panic runtime and C-unwind documentation (rust-lang/reference#1226)
- Closures: fix example of desugaring (rust-lang/reference#1743)
- Update boolean.md, Comment breaks paragraph format (rust-lang/reference#1744)

## rust-lang/rust-by-example

1 commits in 66543bbc5b7dbd4e679092c07ae06ba6c73fd912..6f69823c28ae8d929d6c815181c73d3e99ef16d3
2025-03-09 13:12:24 UTC to 2025-03-09 13:12:24 UTC

- Update mdbook to 0.4.46 (rust-lang/rust-by-example#1914)

try-job: x86_64-gnu-distcheck
2025-03-12 08:06:48 +01:00
onur-ozkan 707d4b7a93 add change entry for rls removal
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-12 09:15:13 +03:00
onur-ozkan d3d7a6df54 remove rls support from bootstrap
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-12 09:13:54 +03:00
Matthias Krüger 55abd7fc82 Rollup merge of #138245 - onur-ozkan:ci-rustc-test-fix, r=jieyouxu
stabilize `ci_rustc_if_unchanged_logic` test for local environments

Fixes #138239
2025-03-11 19:35:31 +01:00
Matthias Krüger c007d0af6a Rollup merge of #138051 - Kobzol:download-ci-gcc, r=onur-ozkan
Add support for downloading GCC from CI

This PR adds a new bootstrap config section called `gcc` and implements a single config `download-ci-gcc`. Its behavior is similar to `download-ci-llvm`. Since https://github.com/rust-lang/rust/pull/137667, we distribute a CI component that contains the prebuilt `libgccjit.so` library on x64 Linux. With `download-ci-gcc`, this component is downloaded from CI to avoid building GCC locally.

This is an MVP of this functionality, designed for local usage. This PR does not enable this functionality on the LLVM 18 PR CI job which builds `cg_gcc`, and does not implement more complex detection logic. It simply uses `false` (build locally) or `true` (download from CI if you're on the right target, if CI download fails, then bootstrap fails).

The original LLVM CI download functionality has a lot of features and complexity, which we don't need for GCC (yet). I don't like how the LLVM CI stuff is threaded through multiple parts of bootstrap, so with GCC I would like to take a more centralized approach, where the `build::Gcc` step handles download from CI internally. This means that:
- For the rest of bootstrap, it should be transparent whether GCC was built locally or downloaded from CI.
- GCC is not downloaded eagerly unless you actually requested GCC (either you requested `x build gcc` or you asked to build/test the GCC backend).

This approach will require some modifications once we extend this feature, but so far I like this approach much more than putting this stuff into `Config[::parse]`, which already does a ton of stuff that it arguably shouldn't (but it's super difficult to extract its logic out).

This PR is an alternative to https://github.com/rust-lang/rust/pull/130749, which did a more 1:1 copy of the `download-ci-llvm` logic.

r? ``@onur-ozkan``
2025-03-11 19:35:29 +01:00
Eric Huss 6133999719 Fix cargo vendor not working without rustc installed
This fixes an issue where vendoring would fail if `rustc` is not in
PATH. This happens with the update of some workspaces to the 2024
edition which need to run `rustc -Vv` to determine which rust version is
in use.
2025-03-11 09:43:39 -07:00
Jakub Beránek 75a69a48f3 Do not download GCC in tests 2025-03-11 15:33:56 +01:00
Jakub Beránek ed5877e0ad Add missing unsafe block 2025-03-11 09:07:18 +01:00
Nicholas Nethercote 55505ab1d3 Add unreachable_pub to RUSTC_LINT_FLAGS for compiler/ crates.
And fix the new errors in the handful of crates that didn't have a
`#![warn(unreachable_pub)]`.
2025-03-11 13:14:21 +11:00
Nicholas Nethercote c9c8387955 Use RUSTC_LINT_FLAGS more.
For the `Mode::Rustc` lints as well. Because, unlike `RUSTC_FLAGS`,
`RUSTC_LINT_FLAGS` is not ignored for proc macro crates.

Fixes #138106.
2025-03-11 13:14:09 +11:00
Arjun Ramesh 336a327f7c Target definition for wasm32-wali-linux-musl to support the Wasm Linux
Interface

This commit does not patch libc, stdarch, or cc
2025-03-10 21:26:45 -04:00
onur-ozkan bf58a3521f stabilize ci_rustc_if_unchanged_logic test for local environments
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-10 18:10:56 +03:00
Jakub Beránek 2b1b09ce0e Add change tracker entry 2025-03-10 12:26:02 +01:00
Jakub Beránek bc6302ca6d Implement downloading GCC from CI 2025-03-10 12:26:02 +01:00
Jakub Beránek 3de10b0756 Add download-ci-gcc-stamp file 2025-03-10 12:26:02 +01:00
Jakub Beránek c68a5ec6c3 Add [gcc] download-ci-gcc option 2025-03-10 12:26:02 +01:00
Jakub Beránek 009aba0aa3 Add gcc bootstrap config section 2025-03-10 12:26:01 +01:00
Jakub Beránek 53237c8656 Refactor GCC compilation 2025-03-10 12:26:01 +01:00
许杰友 Jieyou Xu (Joe) 063ef18fdc Revert "Use workspace lints for crates in compiler/ #138084"
Revert <https://github.com/rust-lang/rust/pull/138084> to buy time to
consider options that avoids breaking downstream usages of cargo on
distributed `rustc-src` artifacts, where such cargo invocations fail due
to inability to inherit `lints` from workspace root manifest's
`workspace.lints` (this is only valid for the source rust-lang/rust
workspace, but not really the distributed `rustc-src` artifacts).

This breakage was reported in
<https://github.com/rust-lang/rust/issues/138304>.

This reverts commit 48caf81484, reversing
changes made to c6662879b2.
2025-03-10 18:12:47 +08:00
Matthias Krüger 980a529164 Rollup merge of #138233 - smmalis37:no-advapi32, r=ChrisDenton
Windows: Don't link std (and run-make) against advapi32, except on win7

Std no longer depends on any functionality provided by advapi32, so we can remove it from the list of external libraries we link against. Except, the win7 targets do still rely on advapi32-provided functionality. This PR therefore moves linking against it to only occur on win7 targets, so that no new uses of it slip in without being noticed.
2025-03-09 16:41:52 +01:00
Matthias Krüger 37ff6805c9 Rollup merge of #138232 - Kobzol:gcc-reduce-verbosity, r=GuillaumeGomez
Reduce verbosity of GCC build log

It was a bit too spammy before.

Fixes: https://github.com/rust-lang/rust/issues/138213

r? ``@GuillaumeGomez``
2025-03-09 10:34:54 +01:00
Matthias Krüger 92fd45b14f Rollup merge of #138216 - Zalathar:any-debug, r=onur-ozkan
bootstrap: Fix stack printing when a step cycle is detected

When bootstrap detects a step dependency cycle (which represents a bootstrap bug), it is supposed to print out the contents of the step stack as part of its panic message.

However, while investigating #138205 it was found that bootstrap was actually printing out several copies of `Any { .. }`, because that is the Debug implementation for `dyn Any`. This is sadly not very helpful.

This PR fixes that problem by introducing a `trait AnyDebug: Any + Debug` that delegates to the underlying type's Debug implementation, while still allowing downcasting via Any.

---

The fixed behaviour can be verified manually (and is tested automatically) via a new dummy command, `./x run cyclic-step`:

```
$ x run cyclic-step
Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.02s

thread 'main' panicked at src/bootstrap/src/core/builder/mod.rs:1521:17:

Cycle in build detected when adding CyclicStep { n: 0 }
	CyclicStep { n: 0 }
	CyclicStep { n: 1 }
	CyclicStep { n: 2 }

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build completed unsuccessfully in 0:00:00
```
2025-03-09 10:34:53 +01:00
Matthias Krüger 48caf81484 Rollup merge of #138084 - nnethercote:workspace-lints, r=jieyouxu
Use workspace lints for crates in `compiler/`

This is nicer and hopefully less error prone than specifying lints via bootstrap.

r? ``@jieyouxu``
2025-03-09 10:34:50 +01:00
bors a96fa317d7 Auto merge of #137541 - onur-ozkan:fix-cargo-clippy-bin, r=jieyouxu
add `tool::CargoClippy` and `tool::Cargofmt` binary to target sysroot

When running `x build clippy`, we expect `stage1-tool-bin/cargo-clippy` and `stage2/bin/cargo-clippy` to be the same, but they aren't. This happens because `tool::CargoClippy` doesn't place its binary in the `stage2` directory. As a result, `stage1-tool-bin/cargo-clippy` comes from `tool::CargoClippy`, while `stage2/bin/cargo-clippy` comes from `tool::Cargo`. Same applies for `tool::Cargofmt`.

This PR fixes the issue by adding `tool::CargoClippy` and ``tool::Cargofmt`` binaries to the expected sysroot and makes sure both directories share the same binary.

To test this, run `x build --stage 2 compiler clippy rustfmt`, link the stage2 sysroot with rustup, and then call `cargo +stage2 fmt` and `cargo +stage2 clippy` on any rust project (it wouldn't work without this PR).
2025-03-09 04:31:52 +00:00
Steven Malis 31e22c60b3 re-add gnu lib and tweak comment 2025-03-08 11:56:41 -05:00