about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2025-05-30add "library" to `RUSTC_IF_UNCHANGED_ALLOWED_PATHS`onur-ozkan-15/+2
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30improve comments and docsonur-ozkan-14/+15
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30add change entryonur-ozkan-0/+5
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30bless bootstrap testsonur-ozkan-3/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30update stage defaultsonur-ozkan-7/+7
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30improve `check::Std` handlingonur-ozkan-0/+9
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30update std uplifting algorithmonur-ozkan-2/+9
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30use initial rustc's std on stage 0onur-ozkan-31/+26
On stage 0, rather than compiling std utilize the one from the stage0 sysroot as stage 0 should represent the snapshot version not the compiled one. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30Rollup merge of #141736 - onur-ozkan:resolve-stage0-syroot-from-rustc, r=KobzolMatthias Krüger-1/+3
resolve stage0 sysroot from rustc Similar to https://github.com/rust-lang/rust/pull/141729, instead of manually navigating directories based on stage0 rustc, use `--print sysroot` to get the sysroot directly. This also works when using the bootstrap `rustc` shim. r? Kobzol
2025-05-30Rollup merge of #141407 - mu001999-contrib:dead-code/refactor, r=petrochenkovMatthias Krüger-0/+3
Refactor the two-phase check for impls and impl items Refactor the two-phase dead code check to make the logic clearer and simpler: 1. adding assoc fn and impl into `unsolved_items` directly during the initial construction of the worklist 2. converge the logic of checking whether assoc fn and impl are used to `item_should_be_checked`, and the item is considered used only when its corresponding trait and Self adt are used This PR only refactors as much as possible to avoid affecting the original functions. However, due to the adjustment of the order of checks, the test results are slightly different, but overall, there is no regression problem Fixes rust-lang/rust#127911 Fixes rust-lang/rust#128839 Extracted from https://github.com/rust-lang/rust/pull/128637. r? petrochenkov try-job: dist-aarch64-linux
2025-05-29Auto merge of #141739 - GuillaumeGomez:rollup-ivboqwd, r=GuillaumeGomezbors-10/+26
Rollup of 11 pull requests Successful merges: - rust-lang/rust#137574 (Make `std/src/num` mirror `core/src/num`) - rust-lang/rust#141384 (Enable review queue tracking) - rust-lang/rust#141448 (A variety of improvements to the codegen backends) - rust-lang/rust#141636 (avoid some usages of `&mut P<T>` in AST visitors) - rust-lang/rust#141676 (float: Disable `total_cmp` sNaN tests for `f16`) - rust-lang/rust#141705 (Add eslint as part of `tidy` run) - rust-lang/rust#141715 (Add `loongarch64` with `d` feature to `f32::midpoint` fast path) - rust-lang/rust#141723 (Provide secrets to try builds with new bors) - rust-lang/rust#141728 (Fix false documentation of FnCtxt::diverges) - rust-lang/rust#141729 (resolve target-libdir directly from rustc) - rust-lang/rust#141732 (creader: Remove extraenous String::clone) r? `@ghost` `@rustbot` modify labels: rollup
2025-05-29resolve target-libdir directly from rustconur-ozkan-10/+26
Leaving stage0 target-libdir resolution to rustc. This should also fix the issue with hard-coding `$sysroot/lib` which fails on systems that use `$sysroot/lib64` or `$sysroot/lib32`. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-29resolve stage0 sysroot from rustconur-ozkan-1/+3
Instead of manually navigating directories based on stage0 rustc, use `--print sysroot` to get the sysroot directly. This also works when using the bootstrap `rustc` shim. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-29Auto merge of #141595 - bjorn3:rustc_no_sysroot_proc_macro, r=onur-ozkanbors-1/+2
Do not get proc_macro from the sysroot in rustc With the stage0 refactor the proc_macro version found in the sysroot will no longer always match the proc_macro version that proc-macros get compiled with by the rustc executable that uses this proc_macro. This will cause problems as soon as the ABI of the bridge gets changed to implement new features or change the way existing features work. To fix this, this commit changes rustc crates to depend directly on the local version of proc_macro which will also be used in the sysroot that rustc will build.
2025-05-28Add cfg for FormatShortCmdMu001999-0/+3
2025-05-27Disable libunwind cross-architecture unwindingKhem Raj-2/+1
Building with _LIBUNWIND_IS_NATIVE_ONLY disables code for cross-architecture unwinding it is disabled by default in LLVM [1], replicate the cmake behavior in bootstrap process It also enables some additional code that handles PAC-specific unwind info it helps compiling with the -mbranch-protection=pac or -mbranch-protection=standard flags This fixes build with clang/musl on aarch64 [1] https://github.com/llvm/llvm-project/commit/85624c5de3e831ffa01fdc2d159e3d69c30de08d Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-05-27bootstrap: Remove `bin_root` from `PATH`Vadim Petrochenkov-1/+0
2025-05-27Do not get proc_macro from the sysroot in rustcbjorn3-1/+2
With the stage0 refactor the proc_macro version found in the sysroot will no longer always match the proc_macro version that proc-macros get compiled with by the rustc executable that uses this proc_macro. This will cause problems as soon as the ABI of the bridge gets changed to implement new features or change the way existing features work. To fix this, this commit changes rustc crates to depend directly on the local version of proc_macro which will also be used in the sysroot that rustc will build.
2025-05-27distcheck: document what distcheck is intended to exerciseJieyou Xu-1/+8
2025-05-27Rollup merge of #141568 - onur-ozkan:141393-fix, r=KobzolMichael Goulet-0/+8
dist: make sure llvm-project submodule is present Zero-config `x install` fails when bootstrap tries to copy files from the LLVM submodule because it's not properly initialized/handled. This diff handles that. Fixes https://github.com/rust-lang/rust/issues/141393
2025-05-27Rollup merge of #141556 - jeremyd2019:patch-1, r=jieyouxuMichael Goulet-1/+3
bootstrap: translate Windows paths in a way that works for both Cygwin and MSYS2 Cygwin defaults to rooting Windows paths in /cygdrive/X, while MSYS2 configures them to be /X. Regardless of configuration, drives are always accessible as /proc/cygdrive/X, so use that. If there are other shells on Windows that are supported and use /X style paths, perhaps something more complicated needs to be done. r? `@jieyouxu` `@Berrysoft` `@mati865`
2025-05-26bootstrap: translate Windows paths in a way that works for both Cygwin and MSYS2Jeremy Drake-1/+3
Cygwin defaults to rooting Windows paths in /cygdrive/X, while MSYS2 configures them to be /X. Regardless of configuration, drives are always accessible as /proc/cygdrive/X, so use that.
2025-05-27Rollup merge of #140898 - onur-ozkan:miri-run, r=Kobzol许杰友 Jieyou Xu (Joe)-3/+13
minor improvements on running miri It should be clear from the commit messages when reviewing them one by one.
2025-05-26dist: make sure llvm-project submodule is presentonur-ozkan-0/+8
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-25bootstrap: clippy: set TESTNAME based on given pathsxtex-1/+18
This addresses issue 104200 by setting the TESTNAME environment variable automatically based on the paths from run configs, marking a selected set of UI tests to be run. Note that this does not filter out other unit tests using #[test].
2025-05-23Rollup merge of #141374 - jeremyd2019:patch-1, r=jieyouxuMatthias Krüger-1/+10
make shared_helpers exe function work for both cygwin and non-cygwin hosts On Cygwin, it needs to not append .exe, because /proc/self/exe (and therefore `std::env::current_exe`) does not include the .exe extension, breaking bootstrap's rustc wrapper. On hosts other than Cygwin, it *does* need to append .exe because the file really does have a .exe extension, and non-Cygwin hosts won't be doing the same filename rewriting that Cygwin does when looking for a file X but finding only X.exe in its place. Arising from discussion in https://github.com/rust-lang/rust/pull/140154#pullrequestreview-2855782812 ``@mati865`` ``@Berrysoft``
2025-05-23let `tool::Miri` implementation to handle compilersonur-ozkan-2/+4
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-23if stage isn't set explicitly, default to 1 when running mirionur-ozkan-1/+9
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-23Auto merge of #141062 - ChaiTRex:ide_fmt_2024, r=Mark-Simulacrumbors-0/+4
Update IDEs to use rustfmt 2024, fix Zed settings Update IDEs to use rustfmt 2024, fix Zed settings - Update IDE `rust-analyzer` settings to use 2024 rather than 2021. - Fix Zed settings by removing `${workspaceFolder}/` from paths.
2025-05-22make shared_helpers exe function work for both cygwin and non-cygwin hostsJeremy Drake-1/+10
On Cygwin, it needs to not append .exe, because /proc/self/exe (and therefore std::env::current_exe) does not include the .exe extension, breaking bootstrap's rustc wrapper. On hosts other than Cygwin, it *does* need to append .exe because the file really does have a .exe extension, and non-Cygwin hosts won't be doing the same filename rewriting that Cygwin does when looking for a file X but finding only X.exe in its place.
2025-05-22run core and alloc tests with strict provenanceRalf Jung-1/+2
2025-05-21Rollup merge of #141283 - Sol-Ell:fix-benchmarking-on-windows, r=KobzolMatthias Krüger-1/+5
Allow `x perf` to find rustc.exe on Windows Related issue: #141281
2025-05-21Rollup merge of #140994 - onur-ozkan:cc2ar-removal, r=albertlarsan68Matthias Krüger-148/+5
replace `cc_detect::cc2ar` with `cc::try_get_archiver` ~~Awaiting new release of [cc](https://crates.io/crates/cc) version with https://github.com/rust-lang/cc-rs/pull/1456 to bump the version.~~ ~~Blocked by https://github.com/rust-lang/cc-rs/pull/1456.~~ Kind a self-explanatory. try-job: dist-android
2025-05-21Allow x perf to find rustc.exe on WindowsEll-1/+5
2025-05-20Auto merge of #140932 - onur-ozkan:llvm-tools, r=Kobzolbors-13/+22
update llvm-tools logic for `dist` and `install` steps First commit aligns `build_steps::compile` and `build_steps::dist` logics for copying llvm-tools, and the second commit adds the correct `should_run` condition for `LlvmTools` step as the previous one was clearly incorrect. Fixes #140913
2025-05-20Rollup merge of #141257 - Shourya742:2025-05-19-trim-cache-module, r=onur-ozkanStuart Cook-50/+0
trim cache module in utils bootstrap We don't use other variants of Interner in bootstrap, so this PR streamlines the bootstrap cache utils module. r? `@onur-ozkan`
2025-05-19trim cache module in utilsbit-aloo-50/+0
2025-05-19Rollup merge of #141247 - onur-ozkan:141246, r=albertlarsan68Matthias Krüger-3/+17
skip compiler tools sanity checks on certain commands Closes #141246
2025-05-19skip compiler tools sanity checks on certain commandsonur-ozkan-3/+17
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-18Auto merge of #140154 - Berrysoft:cygwin-host, r=jieyouxubors-3/+3
Cygwin support in rustc This PR builds host rustc targeting cygwin. - [x] https://github.com/rust-lang/stacker/pull/122 - [x] https://github.com/nagisa/rust_libloading/pull/173 - [x] https://github.com/Detegr/rust-ctrlc/pull/131 - [x] https://github.com/rust-random/getrandom/pull/654 - [x] https://github.com/msys2/MSYS2-packages/issues/5350 - [x] https://github.com/rust-lang/rust/pull/140886 - [x] https://github.com/rust-lang/rust/pull/140921 - [x] https://github.com/rust-lang/rust/pull/140973 Currently supported: * rustc * rustdoc * rustfmt * clippy Blocking: * cargo: blocked by https://github.com/rust-lang/socket2/pull/568 * rust-analyzer: needs `cargo update`, fixed upstream ``` $ rustc --version --verbose rustc 1.88.0-dev binary: rustc commit-hash: unknown commit-date: unknown host: x86_64-pc-cygwin release: 1.88.0-dev LLVM version: 20.1.4 ```
2025-05-18Auto merge of #127013 - tgross35:f16-format-parse, r=Mark-Simulacrumbors-2/+8
Add `f16` formatting and parsing Use the same algorithms as for `f32` and `f64` to implement `f16` parsing and printing. try-job: x86_64-gnu-aux
2025-05-18float: Add `f16` to `test-float-parse`Trevor Gross-2/+8
This requires a fix to the subnormal test to cap the maximum allowed value within the maximum mantissa.
2025-05-18tools-aux ci runner: also cross-test doctestsRalf Jung-11/+9
2025-05-17bootstrap: bump windows tooklensy-65/+11
2025-05-16bump bootstrap cc-rs to `1.2.23`onur-ozkan-3/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-15Update IDEs to use rustfmt 2024, fix Zed settingsChai T. Rex-0/+4
- Update IDE `rust-analyzer` settings to use 2024 rather than 2021. - Fix Zed settings by removing `${workspaceFolder}/` from paths.
2025-05-15Rollup merge of #141027 - onur-ozkan:simpler-rustfmt-initialization, ↵Matthias Krüger-50/+12
r=albertlarsan68 remove `RustfmtState` to reduce `initial_rustfmt` complexity The current use of `RustfmtState` doesn't serve its main purpose as it never does the lazy evaulation since `Build::build` forces it to be ready on the early stage. If we want rustfmt to be ready on the early stage, we don't need to have `RustfmtState` complexity at all.
2025-05-15Fix exe() to make rustc wrapper happy王宇逸-1/+1
2025-05-15Experimental cygwin support in rustc王宇逸-4/+4
Co-authored-by: Ookiineko <chiisaineko@protonmail.com>
2025-05-15remove `RustfmtState` to reduce `initial_rustfmt` complexityonur-ozkan-50/+12
The current use of `RustfmtState` doesn't serve its main purpose as it never does the lazy evaulation since `Build::build` forces it to be ready on the early stage. If we want rustfmt to be ready on the early stage, we don't need to have `RustfmtState` complexity at all. Signed-off-by: onur-ozkan <work@onurozkan.dev>