summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2025-05-22Fix download of GCC from CI on non-nightly channelsJakub Beránek-1/+2
(cherry picked from commit 448b7afb32e4fd55af8c0592227b16fcc5b64308)
2025-05-08bootstrap: more consistent use of `...` when citing configuration snippetsRalf Jung-2/+2
2025-05-08add change-entry for `x run rustfmt`onur-ozkan-0/+5
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-08implement `x run rustfmt`onur-ozkan-0/+55
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-07do not allow stage > 0 on `x fmt`onur-ozkan-1/+6
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-06bootstrap: Add check/test/run steps for src/tools/coverage-dumpZalathar-0/+98
This also causes the coverage-dump unit tests to run in CI and `./x test` by default.
2025-05-05Rollup merge of #140670 - onur-ozkan:129959, r=KobzolGuillaume Gomez-1/+1
calculate step duration in a panic-safe way obvious/self-explanatory change. Fixes #129959
2025-05-05Rollup merge of #140636 - onur-ozkan:panic-tracker-for-t-macro, r=KobzolGuillaume Gomez-5/+26
implement `PanicTracker` to track `t` panics Trying to understand panics triggered by `t` macro is very exhausting (especially on CI failures) because it doesn't provide any information about where the macro was originally invoked. This change adds that missing information when an inner call inside the `t` macro panics. Resolves #137557
2025-05-05Rollup merge of #140357 - onur-ozkan:133840, r=clubby789Guillaume Gomez-9/+11
bypass linker configuration and cross target check on `x check` I was going to handle this using the untracked env approach, but I realized it somehow doesn't regress https://github.com/rust-lang/rust/issues/130108 anymore... Anyway, if it works, it works. 😄 No need to dig deeper but my guess is we moved some cache-invalidating env from these functions to others. Fixes https://github.com/rust-lang/rust/issues/133840 try-job: aarch64-apple
2025-05-05calculate step duration in a panic-safe wayonur-ozkan-1/+1
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-05update `cc_detect` testsonur-ozkan-6/+6
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-04implement `PanicTracker` to track `t` panicsonur-ozkan-5/+26
Trying to understand panics triggered by `t` macro calls is very exhausting (especially on CI failures) because it doesn't provide any information about where the macro was originally invoked. This change adds that missing information when an inner call inside the `t` macro panics. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-03Rollup merge of #140582 - GuillaumeGomez:update-sysinfo, r=KobzolMatthias Krüger-16/+131
Update sysinfo to `0.35.0` in bootstrap and `tools/opt-dist` This release is mostly bugfixes and code improvements.
2025-05-02Update sysinfo version to `0.35.0`Guillaume Gomez-16/+131
2025-05-01extend the list of registered dylibs on `test::prepare_cargo_test`onur-ozkan-3/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-30Rollup merge of #140438 - ferrocene:pa-debug-assertions-tools, r=KobzolMatthias Krüger-5/+22
Add `rust.debug-assertions-tools` option Before this PR, the two only options to configure the presence of debug assertions were the `rust.debug-assertions` and `rust.debug-assertions-std` options. The former applied to everything, and the latter allowed to override the setting just for the standard library. This combination of settings doesn't allow to enable debug assertions for the std and the compiler but not tools. Some tools (like Cargo) are not really meant to be executed with debug assertions enabled, and in Ferrocene we hit some debug assertions in it that are exclusively meant for its test suite. We'd thus like to enable debug assertions everywhere but in tools. This PR adds a `rust.debug-assertions-tools` setting that does exactly this.
2025-04-29Rollup merge of #140392 - Zalathar:goodbye-libtest, r=jieyouxuTrevor Gross-1/+1
compiletest: Remove the libtest-based executor and its dependency Now that #140288 has landed and the new compiletest executor is used by default, we can now move forward with removing the libtest dependency from compiletest. My hope is that after landing this, we can configure bootstrap to build compiletest with the pre-built stage0 library by default, instead of the in-tree stage0 library. That would give the stage0 redesign one less thing to worry about. --- This PR has deliberately been kept small and simple, to make it easier to revert if necessary. Further cleanup can take palce after we're confident that it won't need to be reverted. r? jieyouxu Blocker for https://github.com/rust-lang/rust/pull/119899
2025-04-29add `rust.debug-assertions-tools` optionPietro Albini-5/+22
2025-04-28Make bootstrap git tests more self-containedJakub Beránek-0/+3
2025-04-28compiletest: Remove the libtest-based executor and its dependencyZalathar-1/+1
This patch has deliberately been kept small and simple, to make it easier to revert if necessary. Further cleanup can take palce after we're confident that it won't need to be reverted.
2025-04-28add a FIXMEonur-ozkan-2/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-27bypass linker configuration and cross target check on `x check`onur-ozkan-1/+2
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-25Rollup merge of #140006 - onur-ozkan:138778, r=onur-ozkanMatthias Krüger-5/+50
ensure compiler existance of tools on the dist step Fixes https://github.com/rust-lang/rust/issues/138778 with a coverage on https://github.com/rust-lang/rust/issues/138123 and https://github.com/rust-lang/rust/issues/138004. try-job: dist-powerpc64le-linux
2025-04-24Rollup merge of #140191 - Kobzol:remove-git-repository-from-git-config, ↵Matthias Krüger-4/+0
r=jieyouxu Remove git repository from git config It is no longer needed after https://github.com/rust-lang/rust/pull/138591. We could even remove the `nightly_branch` field, but it still has one usage. r? ``@jieyouxu``
2025-04-24Rollup merge of #140232 - nnethercote:rm-unnecessary-clones, r=SparrowLiiMatthias Krüger-3/+3
Remove unnecessary clones r? `@SparrowLii`
2025-04-24Remove some unnecessary clones.Nicholas Nethercote-3/+3
I found these by grepping for `&[a-z_\.]*\.clone()`, i.e. expressions like `&a.b.clone()`, which are sometimes unnecessary clones, and also looking at clones nearby to cases like that.
2025-04-23Auto merge of #139983 - flip1995:clippy-subtree-update, r=Manishearthbors-4/+0
Clippy subtree update r? `@Manishearth` Cargo.lock update due to the Clippy version bump and because Clippy moved from rinja (unmaintained) to askama. Last sync was skipped due to the askama issue and me not getting to fixing this in time.
2025-04-23Remove `git_repository` field from `GitConfig`Jakub Beránek-4/+0
It is no longer needed after a recent refactoring.
2025-04-22tidy: Remove rinja deps from proc_macro_depsPhilipp Krones-4/+0
2025-04-20Use `--author-date-order` when looking up upstream commits to support ↵Jakub Beránek-2/+79
subtree synces
2025-04-20Make `git_dir` required in several git functionsJakub Beránek-9/+3
It was always called with `Some`, so no need to complicate it with `Option`.
2025-04-20Return `PathFreshness::MissingUpstream` from `detect_[gcc|llvm]_freshness` ↵Jakub Beránek-12/+10
functions
2025-04-20Extend `ci_rustc_if_unchanged` testsJakub Beránek-32/+77
2025-04-20Move freshness test to bootstrapJakub Beránek-5/+395
2025-04-20Cache result of `check_path_modifications`Jakub Beránek-4/+24
2025-04-20Unify usages of path modifications and log them in verbose modeJakub Beránek-54/+38
2025-04-20Explicitly model missing upstreamJakub Beránek-1/+13
It shouldn't really happen, but if it does, at least we will have an explicit record of it.
2025-04-20Use `check_path_modifications` for detecting local rustc changesJakub Beránek-87/+23
And get rid of `get_closest_merge_commit`.
2025-04-20Use `check_path_modifications` for detecting local LLVM changesJakub Beránek-18/+42
2025-04-20Use `check_path_modifications` for detecting local GCC changesJakub Beránek-26/+46
2025-04-20Implement a new unified function for figuring out how if a set of paths have ↵Jakub Beránek-5/+5
been modified locally Also adds several git tests to make sure that the behavior works in common cases (PR CI, auto CI, local usage).
2025-04-20Auto merge of #140043 - ChrisDenton:rollup-vwf0s9j, r=ChrisDentonbors-20/+329
Rollup of 8 pull requests Successful merges: - #138934 (support config extensions) - #139091 (Rewrite on_unimplemented format string parser.) - #139753 (Make `#[naked]` an unsafe attribute) - #139762 (Don't assemble non-env/bound candidates if projection is rigid) - #139834 (Don't canonicalize crate paths) - #139868 (Move `pal::env` to `std::sys::env_consts`) - #139978 (Add citool command for generating a test dashboard) - #139995 (Clean UI tests 4 of n) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-19Rollup merge of #140000 - EnzymeAD:autodiff-check-builds, r=onur-ozkanChris Denton-2/+1
skip llvm-config in autodiff check builds, when its unavailable As you suggested, this indeed fixes `./x.py check` builds when autodiff is enabled. r? ```@onur-ozkan``` closes #139936 Tracking: - https://github.com/rust-lang/rust/issues/124509
2025-04-19Rollup merge of #139843 - thaliaarchi:editor-file-associations, ↵Chris Denton-0/+3
r=Mark-Simulacrum Setup editor file associations for non-rs extensions .gitattributes lists `*.fixed`, `*.pp`, and `*.mir` as file extensions which should be treated as Rust source code. Do the same for VS Code and Zed. This only does syntax highlighting, which is appropriate, as MIR isn't really Rust code. At the same time, consistently order `rust-analyzer.linkedProjects` between editors. For some reason, Eglot didn't include `library/Cargo.toml`. I have tested this with VS Code and Zed. I have not implemented it for Emacs/Eglot or Helix.
2025-04-19Rollup merge of #138934 - onur-ozkan:extended-config-profiles, r=KobzolChris Denton-20/+329
support config extensions _Copied from the `rustc-dev-guide` addition:_ >When working on different tasks, you might need to switch between different bootstrap >configurations. >Sometimes you may want to keep an old configuration for future use. But saving raw config >values in >random files and manually copying and pasting them can quickly become messy, especially if >you have a >long history of different configurations. > >To simplify managing multiple configurations, you can create config extensions. > >For example, you can create a simple config file named `cross.toml`: > >```toml >[build] >build = "x86_64-unknown-linux-gnu" >host = ["i686-unknown-linux-gnu"] >target = ["i686-unknown-linux-gnu"] > > >[llvm] >download-ci-llvm = false > >[target.x86_64-unknown-linux-gnu] >llvm-config = "/path/to/llvm-19/bin/llvm-config" >``` > >Then, include this in your `bootstrap.toml`: > >```toml >include = ["cross.toml"] >``` > >You can also include extensions within extensions recursively. > >**Note:** In the `include` field, the overriding logic follows a right-to-left order. For example, in `include = ["a.toml", "b.toml"]`, extension `b.toml` overrides `a.toml`. Also, parent extensions always overrides the inner ones. try-job: x86_64-mingw-2
2025-04-18add regression test for dist compilationonur-ozkan-0/+32
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-18add coverage on config include logiconur-ozkan-2/+209
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-18ensure compiler existance of tools on the dist steponur-ozkan-5/+18
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-18skip llvm-config in autodiff check builds, when its unavailableManuel Drehwald-2/+1
2025-04-18Rollup merge of #139853 - Kobzol:lld-llvm-config, r=onur-ozkanMatthias Krüger-56/+65
Disable combining LLD with external llvm-config When an external `llvm-config` is used, we don't really know anything about the external LLD, as we don't build it ourselves. Therefore, we probably shouldn't allow using `rust-lld` nor copy it to the target sysroot. Fixes: https://github.com/rust-lang/rust/issues/139477 CC ``@cuviper`` r? ``@onur-ozkan`` try-job: dist-x86_64-linux try-job: dist-aarch64-linux