Commit graph

116 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
bit-aloo
ad74285275
add exclude to config.toml 2025-03-13 21:37:15 +05:30
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
onur-ozkan
31e612bd7b move rust.description to build.description
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-05 08:38:40 +03:00
Pietro Albini
1ccff0e01a
support rust.channel = "auto-detect" 2025-02-28 11:02:22 +01:00
Jordan McQueen
81ab20f34e Update references to cc_detect.rs
The locations of these files have since been changed. This is a simple
change to update the references to these files.
2025-02-20 10:41:29 +00:00
Pietro Albini
a71de77ae9
allow configuring jemalloc per target 2025-02-17 11:43:49 +01:00
Jubilee
9f87de67a6
Rollup merge of #136941 - Kobzol:ccache-build, r=onur-ozkan
Move `llvm.ccache` to `build.ccache`

(S)ccache can be useful for more things that just LLVM. For example, we will soon want to use it also for GCC, and theoretically also for building stage0 Rust tools (https://github.com/rust-lang/rust/pull/136921, https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Using.20sccache.20for.20Rust).

r? ``@onur-ozkan``
2025-02-13 17:46:09 -08:00
Jakub Beránek
bd4f80c449 Remove llvm.ccache option from config.example.toml 2025-02-13 13:35:03 +01:00
Jacob Pratt
1f669fdc7d
Rollup merge of #136858 - safinaskar:parallel-cleanup-2025-02-11-07-54, r=SparrowLii
Parallel-compiler-related cleanup

Parallel-compiler-related cleanup

I carefully split changes into commits. Commit messages are self-explanatory. Squashing is not recommended.

cc "Parallel Rustc Front-end" https://github.com/rust-lang/rust/issues/113349

r? SparrowLii

``@rustbot`` label: +WG-compiler-parallel
2025-02-13 03:53:31 -05:00
Jakub Beránek
e663819856 Move llvm.ccache to build.ccache
(S)ccache can be useful for more things that just LLVM. For example, we will soon want to use it also for GCC, and theoretically also for building stage0 Rust tools.
2025-02-12 20:30:27 +01:00
Askar Safin
8506dd2644 config.example.toml: remove "parallel-compiler" 2025-02-11 11:09:49 +03:00
Thalia Archibald
593c88fc49 Fix long lines which rustfmt fails to format
rustfmt fails to format this match expression, because it has several
long string literals over the maximum line width. This seems to exhibit
rustfmt issues #3863 (Gives up on chains if any line is too long) and
#3156 (Fail to format match arm when other arm has long line).
2025-02-10 18:51:29 -08:00
Flakebi
56795fb77a
Add amdgpu target
Add target and compile the amdgpu llvm backend.
2025-01-31 09:59:41 +01:00
onur-ozkan
8f63485cd9 add optimized-compiler-builtins to target specific section
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-10 11:47:06 +03:00
onur-ozkan
a6aaef14e6 update build.vendor documentation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-04 16:02:07 +03:00
Matthias Krüger
4ed94c149f
Rollup merge of #132502 - Voultapher:document-core-features-in-config-toml-example, r=Mark-Simulacrum
Document possibility to set core features in example config.toml
2024-11-25 07:01:38 +01:00
Jieyou Xu
aafd56b87a bootstrap: revert rust.download-rustc global default to false
And only default library and tools profile to `rust.download-rustc =
"if-unchanged"`.
2024-11-23 23:47:03 +08:00
Tshepang Mbambo
bedecf94ce
typo in config.example.toml 2024-11-18 07:45:33 +02:00
onur-ozkan
49f9b4b4de update download-rustc comments and default
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-11-14 14:56:48 +03:00
bors
f7273e0044 Auto merge of #132954 - matthiaskrgr:rollup-x3rww9h, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #131831 (extend the "if-unchanged" logic for compiler builds)
 - #132541 (Proper support for cross-crate recursive const stability checks)
 - #132657 (AIX: add run-make support)
 - #132901 (Warn about invalid `mir-enable-passes` pass names)
 - #132923 (Triagebot: Consolidate the T-compiler ad hoc assignment groups)
 - #132938 (Make precise capturing suggestion machine-applicable only if it has no APITs)
 - #132947 (clarify `must_produce_diag` ICE for debugging)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-11-12 18:04:27 +00:00
Noratrieb
505b8e1332 Delete the cfg(not(parallel)) serial compiler
Since it's inception a long time ago, the parallel compiler and its cfgs
have been a maintenance burden. This was a necessary evil the allow
iteration while not degrading performance because of synchronization
overhead.

But this time is over. Thanks to the amazing work by the parallel
working group (and the dyn sync crimes), the parallel compiler has now
been fast enough to be shipped by default in nightly for quite a while
now.
Stable and beta have still been on the serial compiler, because they
can't use `-Zthreads` anyways.
But this is quite suboptimal:
- the maintenance burden still sucks
- we're not testing the serial compiler in nightly

Because of these reasons, it's time to end it. The serial compiler has
served us well in the years since it was split from the parallel one,
but it's over now.

Let the knight slay one head of the two-headed dragon!
2024-11-12 13:38:58 +00:00
onur-ozkan
2d143ab30c update "if-unchanged" comments in config.example.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-11-11 11:27:53 +03:00
Lukas Bergdoll
668a3f30af Document possibility to set core features in example config.toml 2024-11-02 10:53:26 +01:00
ismailarilik
e169483879 refactor(config): remove FIXME statement in comment of omit-git-hash
It is already fixed.
2024-11-01 20:19:01 +03:00
onur-ozkan
7e064e791d update download-rustc doc in config.example.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-28 18:59:37 +03:00
Manuel Drehwald
e2d3f5aaec Allow building rustc's LLVM with Offload support 2024-10-25 14:31:09 -07:00
Orion Gonzalez
28095bc541 real default value 2024-10-22 19:11:46 +02:00
Orion Gonzalez
c8de61b50d s/display-diff-tool/compiletest-diff-tool/ 2024-10-22 19:11:44 +02:00
Orion Gonzalez
ef4325eb85 implemented custom differ 2024-10-22 19:10:35 +02:00
许杰友 Jieyou Xu (Joe)
65458aed68 bootstrap: allow setting --jobs in config.toml 2024-10-19 13:35:41 +08:00
Shriram Balaji
8b968764f1 bootstrap: add std_features config
bootstrap: add std_features  to config.example

fix: use BTreeSet for std-features; add unit tests

* fix formatting of string in front of std_features
* rename `std_features` to `std-features` in config.toml

fix: remove space before std-features in config.toml

fix: remove explicit .into_iter conversion

bootstrap: add details for rust.std-features in config.example.toml

Co-authored-by: Onur Özkan <onurozkan.dev@outlook.com>

fix: remove `Option<T>` from `rust_std_features`

fix: move default rust_std_features to config

fix: make std_features CI rustc incompatible
2024-10-06 09:59:10 +05:30
onur-ozkan
4e090e70d1 update llvm.download-ci-llvm documentation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-19 14:28:06 +03:00
onur-ozkan
9778f25ea5 document dist.vendor in config.example.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-15 12:23:05 +03:00
Jubilee
5c91cc5d4c
Rollup merge of #129473 - Urgau:fix-llvm-if-unchanged, r=onur-ozkan
use  `download-ci-llvm=true` in the default compiler config

1ca2708e77 made it so that the `src/llvm-project` submodule has to be checkout for `download-ci-llvm = "if-unchanged"` to know if the submodule has been changed, but that is not required, if the submodule hasn't been checkout it cannot have been modified.

~~This PR restore the previous behavior by only updating the submodule if it has already been checkout.~~

This PR makes `download-ci-llvm = true` check if CI llvm is available and make it the default for the compiler profile, as to prevent unnecessarily checking out `src/llvm-project` with `"if-unchanged"`.

r? `````@onur-ozkan`````
2024-09-09 19:20:35 -07:00
onur-ozkan
13ea104798 update rust.verbose-tests doc in config.example.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 18:56:37 +03:00
Urgau
5f367bbbd2 Make download-ci-llvm = true check if CI llvm is available
and make it the default for the compiler profile, as to prevent
unnecessarily checking out `src/llvm-project` with `"if-unchanged"`.
2024-09-06 17:49:45 +02:00
Manuel Drehwald
4f5c16d62f Enzyme backend
Co-authored-by: Lorenz Schmidt <bytesnake@mailbox.org>
2024-09-05 22:47:23 -04:00
Matthias Krüger
8a60d0a5ec
Rollup merge of #101339 - the8472:ci-randomize-debug, r=Mark-Simulacrum
enable -Zrandomize-layout in debug CI builds

This builds rustc/libs/tools with `-Zrandomize-layout` on *-debug CI runners.

Only a handful of tests and asserts break with that enabled, which is promising. One test was fixable, the rest is dealt with by disabling them through new cargo features or compiletest directives.

The config.toml flag `rust.randomize-layout` defaults to false, so it has to be explicitly enabled for now.
2024-09-05 03:47:39 +02:00
The 8472
121e9f4cc8 Add rust.randomize-layout config to build artifacts with -Zrandomize-layout
Additionally teach compiletest to ignore tests that rely on deterministic layout.
Tests themselves aren't built with randomization but they can still observe
slight changes in std or rustc
2024-08-31 23:56:45 +02:00
onur-ozkan
9dcc65600e document build.cargo-clippy option
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-26 08:28:54 +03:00
onur-ozkan
0ce7705356 document miri and cargo-miri in build.tools
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-22 08:32:39 +03:00
Kyle Huey
6e9afb8dde Enable zstd for debug compression.
Set LLVM_ENABLE_ZSTD alongside LLVM_ENABLE_ZLIB so that --compress-debug-sections=zstd is an option.
Use static linking to avoid a new runtime dependency. Add an llvm.libzstd bootstrap option for LLVM
with zstd. Set it off by default except for the dist builder. Handle llvm-config --system-libs output
that contains static libraries.
2024-08-09 05:55:23 -07:00
onur-ozkan
6fcc630e56 update download-rustc documentation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-07-30 17:00:07 +03:00
onur-ozkan
1140750f6e update rust.channel documentation
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-07-27 11:08:29 +03:00
Matthew Maurer
8bf9aeaa80 Update Android testing to API 21, matching NDK 26
We were running testing on API 18, which was already out of support for
NDK 25, and some of the ancient behavior in that image was causing
trouble when developing `rustc` features (#120326).

Update to the current LTS NDK 26, and to its minimum supported API 21.

Fixes: #120567
2024-07-26 00:52:42 +00:00
Alex Crichton
ae82726a44 Conditionally build wasm-component-ld
This commit updates the support for the `wasm-component-ld` tool
from #126967 to conditionally build it rather than unconditionally
building it when LLD is enabled. This support is disabled by default and
can be enabled by one of two means:

* the `extended` field in `config.toml` which dist builders use to build
  a complete set of tools for each host platform.
* a `"wasm-component-ld"` entry in the `tools` section of `config.toml`.

Neither of these are enabled by default meaning that most local builds
will likely not have this new tool built. Dist builders should still,
however, build the tool.
2024-07-19 07:51:17 -07:00
Matthias Krüger
60e10e65ba
Rollup merge of #127322 - onur-ozkan:ci-rustc-incompatible-options, r=Mark-Simulacrum
handle ci-rustc incompatible options during config parse

This PR ensures that `config.toml` does not use CI rustc incompatible options when CI rustc is enabled (just like [ci-llvm checks](e2cf31a614/src/bootstrap/src/core/config/config.rs (L1809-L1836))). Some options can change compiler's behavior in certain scenarios. If we don't check these incompatible options, CI runners using CI rustc might ignore options we have explicitly set. This could be dangerous as we might think a rustc test passed with option T but in fact it wasn't tested with option T.

Later in https://github.com/rust-lang/rust/pull/122709, I will disable CI rustc if any of those options were used (similar to [this approach](dd2c24aafd/src/ci/run.sh (L165-L169))). If CI runners fail because of these checks, it means the logic in run.sh isn't covering the incompatible options correctly (since any incompatible option should turn off CI rustc).

The list may not be complete, but should be a good first step as it's better than nothing!

Blocker for https://github.com/rust-lang/rust/pull/122709
2024-07-14 10:05:20 +02:00
onur-ozkan
48192701e0 use "bootstrap" instead of "rustbuild" in comments and docs
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-07-07 00:07:08 +03:00