Commit graph

6667 commits

Author SHA1 Message Date
AkhilTThomas
3f045c9d2e add nto80 x86-64 and aarch64 target
Signed-off-by: Florian Bartels <Florian.Bartels@elektrobit.com>
2025-01-24 12:41:49 +00:00
Florian Bartels
efe53ddd58 Add support for QNX 7.1 with io-sock on x64
Signed-off-by: Florian Bartels <Florian.Bartels@elektrobit.com>
2025-01-24 12:32:20 +00:00
Florian Bartels
84c80151cf Add new target for supporting Neutrino QNX 6.1 with io-socket network stack on aarch64
Signed-off-by: Florian Bartels <Florian.Bartels@elektrobit.com>
2025-01-24 12:32:07 +00:00
Matthias Krüger
da8b35a76a
Rollup merge of #135638 - Kobzol:gcc-ci, r=onur-ozkan
Make it possible to build GCC on CI

This is the first step towards eventually enabling download of precompiled GCC from our CI.

Currently, we prebuild `libgccjit` on CI and cache it in Docker. This PR improves the bootstrap GCC step to make it work on CI, and also to make it faster by using sccache. After this change, an actual build on CI should take only 2-3 minutes.

Note that this PR does not yet remove the `build-gccjit.sh` script and replace it with the bootstrap step, I'll leave that to a follow-up PR.

The added `flex` package and the ZSTD library fix were needed to make GCC build on CI.

CC ``````@GuillaumeGomez``````

r? ``````@onur-ozkan``````
2025-01-24 00:15:54 +01:00
Matthias Krüger
76e68ccbb6
Rollup merge of #135887 - onur-ozkan:testing-improvements, r=jieyouxu
improvements on `build_steps::test` implementation

Reviewing commits one-by-one should make it easier to understand.
2025-01-23 09:49:33 +01:00
Matthias Krüger
e1ee0381a0
Rollup merge of #135879 - onur-ozkan:invalid-file-path, r=jieyouxu
fix outdated file path ref in llvm

This was added years ago and is outdated today.
2025-01-23 09:49:24 +01:00
onur-ozkan
e3a5314e0a reduce number of prepare_cargo_test args
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:48:44 +03:00
onur-ozkan
17b2ede40d resolve clippy FIXME
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:45:52 +03:00
onur-ozkan
c568da9f16 make bootstrap self test to use bootstrap cargo
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 19:36:17 +03:00
onur-ozkan
f0dfda124d fix outdated file path ref in llvm
This was added years ago and is outdated today.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-22 16:52:04 +03:00
klensy
5619398f40 bump bootsrap windows to 0.57 2025-01-21 16:48:44 +03:00
Jakub Beránek
00381ead1a
Make it possible to build GCC on CI
This is the first step to enable download of precompiled GCC
2025-01-21 11:24:10 +01:00
bors
ebbe63891f Auto merge of #135632 - marcoieni:split-x86_64-msvc-2025, r=Kobzol
CI: split x86_64-msvc job using windows 2025

try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: dist-x86_64-msvc
2025-01-21 06:58:11 +00:00
许杰友 Jieyou Xu (Joe)
a41d652d10
Rollup merge of #135658 - Kobzol:src-tarball-remove-gcc, r=jieyouxu
Do not include GCC source code in source tarballs

The licensing story is unclear, it makes the archive much larger, and we should not need it for building anything in the tarballs (yet).

```
Before:
121s building the archive
1.3 GiB gzipped size
5.7 GiB extracted size
402519 extracted files

After:
64s building the archive
961 MiB gzipped size
4.5 GiB extracted size
257719 extracfed files
```

Fixes: https://github.com/rust-lang/rust/issues/135606

r? `@ehuss`
2025-01-20 21:45:05 +08:00
许杰友 Jieyou Xu (Joe)
bdd88ddd30
Rollup merge of #135433 - tanvincible:patch-1, r=onur-ozkan
Add Profile Override for Non-Git Sources

## PR description

- Fixes #135358

This PR introduces the following updates to

1. `bootstrap.py`:
    - If the `profile` is `None` and the source is non-git, the `profile` is automatically overridden to `"dist"`.
    - Ensures that options like `download-ci-llvm` and `download-rustc` are not used with non-git sources. An exception is raised if these options are present in the configuration when the source is non-git.

2. `bootstrap_test.py`
   - Added unit tests to verify both the profile override mechanism and the assertion for restricted options.
These tests ensure the correct behavior for non-git sources and the handling of `if-unchanged` options.

r? `@onur-ozkan`
`@rustbot` T-bootstrap
2025-01-20 21:45:04 +08:00
Tanvi Pooranmal Meena
7d806171d0 Add logic to override profile for non git sources 2025-01-20 11:07:32 +05:30
许杰友 Jieyou Xu (Joe)
9cd0e8efdc
Rollup merge of #135729 - Noratrieb:compiler-profile-debug-assert, r=lqd
Add debug assertions to compiler profile

Working on the compiler without debug assertions is not a very productive way to work on the compiler.
2025-01-20 12:37:55 +08:00
许杰友 Jieyou Xu (Joe)
afdf3aa457
Rollup merge of #135722 - onur-ozkan:handle-tarball-ci-commit, r=jieyouxu
make it possible to use ci-rustc on tarball sources

Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure the commit to download precompiled rustc artifact from CI, which was leading builds to fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on git-managed source and read `git-commit-hash` file otherwise.
2025-01-20 12:37:54 +08:00
Noratrieb
2e69bd2ce9 Add debug assertions to compiler profile
Working on the compiler without debug assertions is not a very
productive way to work on the compiler.
2025-01-19 16:01:54 +01:00
MarcoIeni
242b0e32b6
CI: split x86_64-msvc job using windows 2025 2025-01-19 12:30:12 +01:00
onur-ozkan
903cddb392 make it possible to use ci-rustc on tarball sources
Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure
the commit has to download precompiled rustc artifact from CI, which was leading builds to
fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project
source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on
git-managed source and read `git-commit-hash` file otherwise.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-19 12:57:39 +03:00
Matthias Krüger
8825073dcc
Rollup merge of #135616 - marcoieni:split-i686-msvc-job, r=Kobzol
CI: split i686-msvc job to two free runners

try-job: i686-msvc-1
try-job: i686-msvc-2
2025-01-19 01:18:53 +01:00
bors
0493557083 Auto merge of #135682 - matthiaskrgr:rollup-cl7zlt1, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #133700 (const-eval: detect more pointers as definitely not-null)
 - #135290 (Encode constraints that hold at all points as logical edges in location-sensitive polonius)
 - #135478 (Run clippy for rustc_codegen_gcc on CI)
 - #135583 (Move `std::pipe::*` into `std::io`)
 - #135612 (Include x scripts in tarballs)
 - #135624 (ci: mirror buildkit image to ghcr)
 - #135661 (Stabilize `float_next_up_down`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-18 18:40:20 +00:00
Matthias Krüger
b0d0ec4ca6
Rollup merge of #135612 - onur-ozkan:include-x-scripts-in-tarballs, r=clubby789
Include x scripts in tarballs

Helps to provide 1:1 build experience between git-managed and tarball sources.
2025-01-18 13:58:04 +01:00
Matthias Krüger
86947bb18a
Rollup merge of #135478 - Kobzol:gcc-clippy, r=onur-ozkan
Run clippy for rustc_codegen_gcc on CI

Requested on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Run.20clippy.20for.20rustc_codegen_gcc.20in.20the.20Rust.20CI).

Opening as a draft, since it's not clear which rules should be applied to it.

r? `@ghost`
2025-01-18 13:58:02 +01:00
Jakub Beránek
f854f34a50 Do not include GCC source code in source tarballs
The licensing story is unclear, it makes the archive much larger, and we should not need it for building anything in the tarballs (yet).
2025-01-17 23:01:48 +01:00
binarycat
d58540df44 add src/librustdoc and src/rustdoc-json-types to RUSTC_IF_UNCHANGED_ALLOWED_PATHS
fixes https://github.com/rust-lang/rust/issues/135650
2025-01-17 14:31:24 -06:00
onur-ozkan
fdf4924a26 include x and x.ps1 scripts in tarball sources
Helps to provide 1:1 build experience between git-managed and tarball sources.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-17 11:37:10 +03:00
MarcoIeni
de89ffc341
CI: split i686-msvc job to two free runners 2025-01-17 09:22:10 +01:00
onur-ozkan
7874ba2f40 add tidy check on dist src files order
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-17 11:20:13 +03:00
bors
bb3fa4b48e Auto merge of #135605 - jieyouxu:temp-require-force-rustdoc-js, r=clubby789
bootstrap: still require `COMPILETEST_FORCE_STAGE0` for `./x test rustdoc-js --stage 0`

This PR reverts #135375, because through some more testing I found out `./x test rustdoc-js --stage 0` does not in fact build rustdoc, and all the tests fail. This can't be intended behavior, so at least require `COMPILETEST_FORCE_STAGE0` to make it less likely to run `rustdoc-js --stage 0` by accident.

The problem that `--stage 0` is not working at all for this rustdoc-js test suite is tracked over at #135603.

cc `@lolbinarycat`

r? bootstrap
2025-01-17 01:46:18 +00:00
许杰友 Jieyou Xu (Joe)
097cb1a955 compiletest: require COMPILETEST_FORCE_STAGE0 for ./x test rustdoc-js --stage 0 2025-01-17 08:08:13 +08:00
Matthias Krüger
f4bbe30974
Rollup merge of #135588 - ferrocene:add-license-json-to-source-tarball, r=Kobzol
Add license-metadata.json to rustc-src tarball.

Adds a license-metadata.json to the source tarball.

This file was reported as missing as a comment on #133461, and it prevents you building the compiler from the source tarball (unless you re-generate it yourself, which is non-obvious and requires `reuse` to be installed).

r? Kobzol
2025-01-16 18:46:12 +01:00
Matthias Krüger
6997ea2cf5
Rollup merge of #135585 - onur-ozkan:135554, r=Kobzol
resolve symlinks of LLVM tool binaries before copying them

There is a chance that these tools are being installed from an external LLVM and we have no control over them. If any of these tools use symlinks, they will fail during tarball distribution. This change makes copying process to resolve symlinks just before placing them into the destination path.

Fixes https://github.com/rust-lang/rust/issues/135554
2025-01-16 18:46:11 +01:00
Jonathan Pallant
1fcbb4dea7
Add license-metadata.json to rustc-src tarball. 2025-01-16 16:04:02 +00:00
onur-ozkan
cde58dd5f7 resolve symlinks of LLVM tool binaries before copying them
There is a chance that these tools are being installed from an external LLVM
and we have no control over them. If any of these tools use symlinks, they will
fail during tarball distribution. This change makes copying process to resolve
symlinks just before placing them into the destination path.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-16 17:42:14 +03:00
bors
419b3e2d3e Auto merge of #135540 - GuillaumeGomez:rollup-40lfb7l, r=GuillaumeGomez
Rollup of 6 pull requests

Successful merges:

 - #132654 (std: lazily allocate the main thread handle)
 - #135003 (deprecate `std::intrinsics::transmute` etc, use `std::mem::*` instead)
 - #135428 (rustdoc: Remove `AttributesExt` trait magic that added needless complexity)
 - #135498 (Prefer lower `TraitUpcasting` candidates in selection)
 - #135507 (TRPL: incorporate all backward-compatible Edition changes)
 - #135529 (remove outdated FIXME)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-15 18:26:54 +00:00
bors
27f336106d Auto merge of #133461 - ferrocene:add-copyright-files-to-dist, r=Kobzol
Add COPYRIGHT-*.html files to distribution and update `COPYRIGHT`

* Updates the `COPYRIGHT` file to describe how we actually do things now, and removes the licence text from it as they are stored elsewhere.
* dist tarballs get all of the files in `LICENSES/*`.
  * This folder is managed by `reuse` and each file exists because we refer to the licence somewhere in our tree. We should be supplying these licence texts to anyone who obtains a copy of the source code and now we do.
* The binary rust tarball gets `COPYRIGHT.html` and `COPYRIGHT-library.html`, which are auto-generated files that describe the licence information for both the in-tree source files used to build the Rust toolchain, and the out-of-tree dependencies we used to build the toolchain.
   * The other binary tarballs are unchanged, for now. In future you need to make a call whether to ship multiple version of COPYRIGHT.html, or whether to try and make, for example, a cargo-specific COPYRIGHT.html file.
* The `LICENSE-MIT` file now includes a blanket copyright statement, as the text indicates that it should and because users will expect to know who owns the copyright of the material they have been given (even if the answer is 'lots of people').

try-job: x86_64-fuchsia
2025-01-15 15:30:53 +00:00
Guillaume Gomez
01ae58bff1
Rollup merge of #135529 - onur-ozkan:outdated-fixme, r=jieyouxu
remove outdated FIXME

https://github.com/rust-lang/rust/pull/134967 already fixed this.
2025-01-15 16:30:21 +01:00
onur-ozkan
896953aee7 remove outdated FIXME
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-01-15 14:19:02 +03:00
Jubilee
8f7e62268a
Rollup merge of #134913 - rhelmot:master, r=jieyouxu
bootstrap: do not rely on LIBRARY_PATH env variable

Closes https://github.com/rust-lang/rust/issues/134811

try-job: test-various
try-job: armhf-gnu
try-job: x86_64-apple-1
try-job: x86_64-apple-2
try-job: aarch64-apple
try-job: x86_64-msvc
try-job: i686-msvc
try-job: x86_64-mingw-1
try-job: x86_64-mingw-2
try-job: i686-mingw
2025-01-14 19:56:29 -08:00
Jakub Beránek
6ad9c1dc54 Run clippy for rustc_codegen_gcc 2025-01-14 21:21:38 +01:00
Yotam Ofek
c141f506bc Add missing closing backtick in commit hook message 🐸 2025-01-14 17:25:22 +00:00
Jacob Pratt
ab77d157e2
Rollup merge of #135452 - jieyouxu:fix-comment, r=compiler-errors
bootstrap: fix outdated feature name in comment

Follow-up to https://github.com/rust-lang/rust/pull/135391#discussion_r1912826594.

I guess I updated everything else **except** the comment right next to the actual dependencies 💀

r? bootstrap
2025-01-13 20:43:50 -05:00
许杰友 Jieyou Xu (Joe)
a9f32406da bootstrap: fix outdated feature name in comment 2025-01-14 03:34:51 +08:00
Eric Huss
75f3ebdc1e Mark rustbook as an external tool
It has been a bit of a pain trying to keep the lints in sync across
the submodule repositories, so the just turns it off.
2025-01-13 10:10:40 -08:00
Jacob Pratt
cc00936dda
Rollup merge of #135391 - jieyouxu:conditional-tracing, r=onur-ozkan
bootstrap: Implement conditional `tracing` infra

Add a conditional `tracing` setup that is gated behind `BOOTSTRAP_TRACING` env var. This `tracing` infra is implemented by:

- Introducing an optional `tracing` cargo feature in bootstrap.
- Added optional `tracing*` dependencies which are gated behind the `tracing` cargo feature.
- When `BOOTSTRAP_TRACING` is set, `bootstrap.py` will build bootstrap with `--features=tracing`.

There is a small trick here to share `BOOTSTRAP_TRACING` env var without having to add a separate env var:

- `BOOTSTRAP_TRACING=1` is not a registered `tracing` filter target, so that can be used to enable the `tracing` cargo feature yet not actually enable any tracing logs (useful for editor r-a setups without actually outputting any tracing logs).
- `BOOTSTRAP_TRACING=TRACE` and such are actually valid `tracing` filters, but that sets `BOOTSTRAP_TRACING` anyway.

Example usage: https://github.com/rust-lang/rust/pull/135299 (that experimental PR is not conditionally gated)
This PR is intentionally kept minimal to focus on the infra itself. To get actual mileage, instrumentations will need to be added to individual `Step`s and such.

r? `@onur-ozkan` (or reroll)
2025-01-13 01:05:11 -05:00
Jacob Pratt
abdd40d84d
Rollup merge of #135386 - lolbinarycat:bootstrap-test-cleanup, r=jieyouxu
clean up code related to the rustdoc-js test suite

r? `@jieyouxu`
2025-01-13 01:05:11 -05:00
Jacob Pratt
cc19b9b83b
Rollup merge of #135355 - ranger-ross:improved-ci-logs, r=onur-ozkan
ci: added test log format for ci

This PR adds a new test render format specifically for ci.
The goal as stated in #134910 is to make reviewing test failures in CI easier.

See the new test output format in the CI for this PR ([here](https://github.com/rust-lang/rust/actions/runs/12723914643/job/35469515397?pr=135355))

closes #134910 cc: `@jyn514`
2025-01-13 01:05:10 -05:00
Audrey Dutcher
7f743c7d1f bootstrap: do not rely on LIBRARY_PATH env variable
Clang will not respect this value in cross configurations.
2025-01-12 20:12:34 -07:00