summary refs log tree commit diff
path: root/src/tools/opt-dist
AgeCommit message (Collapse)AuthorLines
2025-05-29Bump rustc-perf and update PGO cratesMichael Goulet-1/+1
2025-05-17opt-dist: fix deprecated BOLT -icf=1 optionklensy-1/+1
2025-05-08Do not deny warnings for fast try buildsJakub Beránek-10/+27
2025-05-08Migrate `opt-dist` to edition 2024Jakub Beránek-2/+5
2025-05-08Remove unused dependency from opt-distJakub Beránek-1/+0
2025-05-02Update sysinfo to `0.35.0` in `src/tools/opt-dist`Guillaume Gomez-1/+1
2025-04-17Rollup merge of #139962 - ognevny:opt-dist-tests, r=KobzolMatthias Krüger-1/+14
opt-dist: add a flag for running tests when using `opt-dist local` user probably won't need to run tests (for various reasons). currently the only way to disable them is to set `TRY_DIST_BUILD=1`, which is not obvious and can be bad for non-CI envronments (as I guess) possibly the `run_tests` name can be confusing too... r? Kobzol try-job: dist-x86_64-linux try-job: dist-x86_64-msvc
2025-04-17opt-dist: add a flag for running testsMaksim Bondarenkov-1/+14
when using `opt-dist local` user probably won't need to run tests (for various reasons). currently the only way to disable them is to set `TRY_DIST_BUILD=1`, which is not obvious and can be bad for non-CI envronments (as I guess)
2025-04-16Only delete the lld directory if it existsJakub Beránek-1/+3
2025-04-16Allow disabling `--llvm-shared` in opt-distJakub Beránek-1/+1
2025-04-12opt-dist: use executable-extension for host llvm-profdataMaksim Bondarenkov-1/+3
so the merging step doesn't fail for `opt-dist local` on Windows
2025-03-17replace config.toml to bootstrap.toml in src:toolsbit-aloo-5/+13
2025-03-13Do not overwrite original `config.toml` in `opt-dist`Jakub Beránek-29/+52
So that follow-up CI commands can proceed normally. It will also avoid overwriting `config.toml` when running opt-dist tests locally.
2025-03-04Rollup merge of #137667 - Kobzol:gcc-dist-build, r=onur-ozkanJubilee-0/+1
Add `dist::Gcc` build step This PR adds a `dist:Gcc` bootstrap step to distribute a prebuilt `libgccjit.so` from CI on x64 Linux. With primed sccache, the build takes ~4 minutes on CI, and produces a 50 MiB archive. I want to land this before adding something akin to `[gcc] download-ci-gcc = true`, to already have the artifacts available on CI, to make it easier to setup the download merge-base logic. r? ``@ghost``
2025-03-04Move `BuildStep` and metric logging into `build_helper`Jakub Beránek-70/+3
2025-02-28Add `dist:Gcc` build stepJakub Beránek-0/+1
To distribute the prebuilt libgccjit.so from CI.
2025-01-29tests: Skip const OOM tests on aarch64-unknown-linux-gnuKajetan Puchalski-11/+1
Skip const OOM tests on AArch64 Linux through explicit annotations instead of inside opt-dist. Intended to avoid confusion in cases like #135952. Prerequisite for https://github.com/rust-lang/rust/pull/135960.
2025-01-27Fix 2/4 tests skipped by opt-distBen Kimock-13/+7
2025-01-22Run the glibc run-make test in opt-distJakub Beránek-0/+1
2025-01-21Enable verbose tests in opt-dist testsJakub Beránek-0/+1
2025-01-21Add test for checking used glibc symbolsJakub Beránek-1/+6
2025-01-13ci: Enable opt-dist for dist-aarch64-linux buildsKajetan Puchalski-9/+32
Enable optimised AArch64 dist builds with the opt-dist pipeline. For the time being, disable bolt on aarch64 due to upstream bolt bugs.
2025-01-06Don't enable anyhow's `backtrace` feature in opt-distZalathar-1/+1
As of the stabilization of `std::backtrace` in Rust 1.65, this package flag has no effect other than to enable an unused dependency on the `backtrace` crate.
2024-12-20opt-dist: propagate channel info to bootstrapJieyou Xu-1/+17
2024-11-11move `src/tools/build_helper` into `src/build_helper`onur-ozkan-1/+1
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-11-02Rename target triple to target tuple in many places in the compilerNoratrieb-11/+11
This changes the naming to the new naming, used by `--print target-tuple`. It does not change all locations, but many.
2024-10-07Remove valgrind test suite from opt-dist许杰友 Jieyou Xu (Joe)-1/+0
2024-09-22Reformat using the new identifier sorting from rustfmtMichael Goulet-5/+5
2024-09-12use `local-rebuild` instead of `BOOTSTRAP_SKIP_TARGET_SANITY` workaroundonur-ozkan-7/+2
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-27set `BOOTSTRAP_SKIP_TARGET_SANITY` in opt-dist before running testsonur-ozkan-1/+7
opt-dist overrides the stage 0 compiler with previously compiled compilers, which can cause confusion in bootstrap's target sanity checks. It is best to skip that check. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-01Update sysinfo version to 0.31.2Guillaume Gomez-1/+1
2024-07-30Auto merge of #128083 - Mark-Simulacrum:bump-bootstrap, r=albertlarsan68bors-14/+17
Bump bootstrap compiler to new beta https://forge.rust-lang.org/release/process.html#master-bootstrap-update-t-2-day-tuesday
2024-07-30Revert "opt-dist: dont overrwite config.toml when verifying"Mark Rousskov-14/+17
This reverts commit c81a40bbc02bb44aa99b3a94322dbf07e7a62ce1.
2024-07-29Reformat `use` declarations.Nicholas Nethercote-21/+28
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-06-13opt-dist: apply considerable clippy suggestionsonur-ozkan-5/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-09feat: vendor crates required by opt-dist to collect profilesWeihang Lo-21/+1
These are the default package set required by opt-dist to correctly work, hence for people wanting to build a production grade of rustc in a sandboxed / air-gapped environment, these need to be vendored. The size of `rustc-src-nightly.tar.xz` before and after this change: * Before: 298M * After: 323M (+8%) These crates are the default set of packages required by opt-dist to correctly work, hence for people wanting to build a production grade of rustc in an sandboxed / air-gapped environment, these need to be vendored. The size of `rustc-src-nightly.tar.xz` before and after this change: * Before: 298M * After: 323M (+8%) Size change might or might not be a concern. See the previous discussion: https://github.com/rust-lang/rust/pull/125166#issuecomment-2113626468 Previous efforts on making: * https://github.com/rust-lang/rust/pull/125125 * https://github.com/rust-lang/rust/pull/125166 --- Note that extra works still need to be done to make it fully vendored. * The current pinned rustc-perf uses `tempfile::Tempdir` as the working directory when collecting profiles from some of these packages. This "tmp" working directory usage make it impossible for Cargo to pick up the correct vendor sources setting in `.cargo/config.toml` bundled in the rustc-src tarball. [^1] * opt-dist verifies the final built rustc against a subset of rustc test suite. However it rolls out its own `config.toml` without setting `vendor = true`, and that results in `./vendor/` directory removed. [^2] [^1]: https://github.com/rust-lang/rustc-perf/blob/4f313add609f43e928e98132358e8426ed3969ae/collector/src/compile/benchmark/mod.rs#L164-L173 [^2]: https://github.com/rust-lang/rust/blob/606afbb617a2949a4e35c4b0258ff94c980b9451/src/tools/opt-dist/src/tests.rs#L62-L77
2024-06-03feat(opt-dist): new flag `--benchmark-cargo-config`Weihang Lo-2/+25
The flag propagates cargo configs to `rustc-perf --cargo-config`, which is particularly useful when the environment is air-gapped, and you want to use the default set of training crates vendored in the rustc-src tarball.
2024-05-25opt-dist: dont overrwite config.toml when verifyingWeihang Lo-17/+14
This is another step toward making opt-dist work in sandboxed environments opt-dist verifies the final built rustc against a subset of rustc test suite. However it overwrote the pre-existing `config.toml` [^1], and that results in ./vendor/ directory removed [^2]. Instead of overwriting, this patch use `--set <config-value>` to override paths to rustc / cargo / llvm-config. [^1]: https://github.com/rust-lang/rust/blob/606afbb617a2949a4e35c4b0258ff94c980b9451/src/tools/opt-dist/src/tests.rs#L62-L77 [^2]: https://github.com/rust-lang/rust/blob/8679004993f08807289911d9f400f4ac4391d2bc/src/bootstrap/bootstrap.py#L1057
2024-05-20refactor(opt-dist): use rustc-perf from rustc checkoutBernardo Meurer Costa-43/+14
This replaces the hardcoded rustc-perf commit and ad-hoc downloading and unpacking of its zipped source with defaulting to use the new rustc-perf submodule. While it would be nice to make `opt-dist` able to initialize the submodule automatically when pointing to a Rust checkout _other_ than the one opt-dist was built in, that would require a bigger refactor that moved `update_submodule`, from bootstrap, into build_helper. Regardless, I imagine it must be quite rare to use `opt-dist` with a checkout that is neither from a rust-src tarball (which will contain the submodule), nor the checkout opt-dist itself was built (bootstrap will update the submodule when opt-dist is built).
2024-05-14feat(tools/opt-dist): allow local builds to specify a rustc-perf checkoutBernardo Meurer Costa-0/+6
2024-05-09opt-dist: use xz2 instead of xz crateklensy-1/+1
xz crate consist of simple reexport of xz2 crate. Why? Idk.
2024-04-14crashes: add another test showing that everything works fine when we need ↵Matthias Krüger-1/+1
compile-flags to repro an ice and add README
2024-04-14bootstrap/compiletest: implement "crashes" tests that fail if no ice is ↵Matthias Krüger-0/+1
reproduced
2024-03-16Auto merge of #119418 - aaupov:master, r=Kobzolbors-1/+3
[BOLT] Use CDSort and CDSplit CDSort and CDSplit are the most recent versions of function ordering and function splitting algorithms with some improvements over the previous baseline (ext-tsp and two-way splitting).
2024-03-07Include all library files in artifact summary on CIJakub Beránek-14/+1
2024-03-07Auto merge of #121866 - Kobzol:opt-dist-find-llvm, r=Mark-Simulacrumbors-0/+13
Modify opt-dist logic for finding LLVM artifacts This is the `rustc` side of fixing https://github.com/rust-lang/rust/pull/121395#issuecomment-1973572885.
2024-03-01Modify opt-dist logic for finding LLVM artifactsJakub Beránek-0/+13
2024-03-01Handle new LLVM sonameNikita Popov-1/+2
LLVM now includes the minor version in the soname, and also changed the names of shared object files. libLLVM-18.so is now a symlink to libLLVM.so.18.1. We need to make some changes to support this: First, we need to run the installed llvm-config binary, rather than the one from the build directory. This is because the symlink does not exist in the build directory, but llvm-config requires it. This looks like an LLVM bug to me, but it's probably a good idea to use the installed version anyway. Second, when installing LLVM into the libdir, we need to install the target of the symlink, ans this is what will get loaded at runtime. However, the rust-dev component in particular also needs to distribute the symlink itself, as download-ci-llvm will end up invoking llvm-config, which requires the symlink to exist. The symlink is not shipped in other components.
2024-02-22dedupe env_logger, drop is-terminalklensy-1/+1
2024-02-22bump tabledklensy-4/+4