| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
Enable optimised AArch64 dist builds with the opt-dist pipeline.
For the time being, disable bolt on aarch64 due to upstream bolt bugs.
|
|
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.
|
|
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
This changes the naming to the new naming, used by `--print
target-tuple`.
It does not change all locations, but many.
|
|
|
|
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
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>
|
|
|
|
Bump bootstrap compiler to new beta
https://forge.rust-lang.org/release/process.html#master-bootstrap-update-t-2-day-tuesday
|
|
This reverts commit c81a40bbc02bb44aa99b3a94322dbf07e7a62ce1.
|
|
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
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
|
|
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.
|
|
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
|
|
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).
|
|
|
|
xz crate consist of simple reexport of xz2 crate. Why? Idk.
|
|
compile-flags to repro an ice and add README
|
|
reproduced
|
|
[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).
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
Update rustc-perf version
Needed to unblock https://github.com/rust-lang/rust/pull/116033.
The commit first needs to be uploaded to our mirrors.
r? `@Mark-Simulacrum`
|
|
|
|
|
|
Using the new cargo caused issues when a backwards-incompatible change was made to cargo.
|
|
|
|
|
|
|
|
|
|
summary
|
|
bootstrap major change detection implementation
The use of `changelog-seen` and `bootstrap/CHANGELOG.md` has not been functional in any way for many years. We often do major/breaking changes but never update the changelog file or the `changelog-seen`. This is an alternative method for tracking major or breaking changes and informing developers when such changes occur.
Example output when bootstrap detects a major change:

|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
|
|
|