Commit Graph

5098 Commits

Author SHA1 Message Date
onur-ozkan 6198e881d3 bootstrap: do not purge docs on CI environment
Temporary fix for https://github.com/rust-lang/rust/issues/117430

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-11-02 21:36:43 +03:00
Guillaume Gomez c994bdb8d7 Rollup merge of #117383 - onur-ozkan:fix-x-install, r=albertlarsan68
improve and fix `x install`

Fix: Write access check of `prefix` and `sysconfdir` when DESTDIR is present.

Improvement: Instead of repeatedly reading `DESTDIR` within each `fn prepare_dir` usage, read it once and pass it to the `fn prepare_dir`.

Fixes #117203
2023-10-30 17:33:18 +01:00
Guillaume Gomez 99b032f9ff Rollup merge of #117356 - he32:netbsd-mipsel, r=oli-obk
Add support for mipsel-unknown-netbsd, 32-bit LE mips.
2023-10-30 17:33:16 +01:00
onur-ozkan 4b14048d60 improve and fix x install
Fix: Write access check of `prefix` and `sysconfdir`
when DESTDIR is present.

Improvement: Instead of repeatedly reading `DESTDIR` within
each `fn prepare_dir` usage, read it once and pass it to
the `fn prepare_dir`.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-30 11:42:19 +03:00
chenx97 2409ea3c12 bootstrap: bump fd-lock, clap and windows.
this also updates target-sensitive dependencies like rustix
and libc.
2023-10-30 15:54:57 +08:00
bors 1dfb6b162b Auto merge of #117328 - lqd:cranelift-rocket, r=Mark-Simulacrum
pass `CODEGEN_BACKENDS` to docker

The backends to build are now defined in the `CODEGEN_BACKENDS` env var. It's correctly set in CI, but wasn't passed to docker, hence cg_clif wasn't actually built in #81746.

r? `@Kobzol:` I locally tried `CODEGEN_BACKENDS="cranelift" DEPLOY=1 src/ci/docker/run.sh dist-x86_64-linux` and this change was enough for `ci/run.sh` to read the env var.

So I'll try as-is and we'll see.
2023-10-30 01:56:58 +00:00
Rémy Rakic f656accdf5 handle dry runs in dist::CodegenBackend
self.number_of_times_dry_runs_have_caused_issues += 1;
2023-10-29 13:12:02 +00:00
Havard Eidnes 82b447a0cc Add support for mipsel-unknown-netbsd, 32-bit LE mips. 2023-10-29 12:39:30 +00:00
Guillaume Gomez 20debcd345 Rollup merge of #117043 - onur-ozkan:skip-stage0-validation, r=Mark-Simulacrum
add bootstrap flag `--skip-stage0-validation`

This change introduces the `--skip-stage0-validation` flag, which permits the use of any desired version of the stage0 compiler without verifying its version.

Additionally, stage0 compiler validation check is reverted(#115103) to its default enabled state.

Helps to #115065

r? Mark-Simulacrum
2023-10-29 12:35:00 +01:00
Jubilee 771b2558b4 Rollup merge of #117322 - onur-ozkan:fix-suppressed-outputs, r=Kobzol
change default output mode of `BootstrapCommand`

`SuppressOnSuccess` on `BootstrapCommand` is a problematic default mode as it affects the logs during the bootstrapping (as shown in the screenshot below). The default behavior should be to print everything unless we explicitly modify the behavior within build steps.

![image](https://github.com/rust-lang/rust/assets/39852038/8dbaaeb2-0656-4ff9-8e48-1ac0734a913f)

Fixes #117315

cc `@Kobzol`
2023-10-28 17:10:30 -07:00
bjorn3 aefd7ace91 Ensure the rustc-codegen-cranelift-preview component is never empty
Either generate it with the actual codegen backend dylib or omit it
entirely when the cranelift backend is disabled for this build.
2023-10-28 19:12:44 +00:00
onur-ozkan 236f6ba261 set BootstrapCommand output mode for submodules
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-28 20:02:41 +03:00
onur-ozkan 3bb0c94eb6 change default output mode of BootstrapCommand
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-28 19:36:09 +03:00
bors 6a66ca215b Auto merge of #81746 - bjorn3:cg_clif_rustup_component, r=Mark-Simulacrum
Distribute cg_clif as rustup component on the nightly channel

This makes it possible to use cg_clif using:

```bash
$ rustup component add rustc-codegen-cranelift-preview --toolchain nightly
$ RUSTFLAGS="-Zcodegen-backend=cranelift" cargo +nightly build
```

cc https://github.com/rust-lang/compiler-team/issues/405.
r? `@Mark-Simulacrum`
2023-10-28 15:16:27 +00:00
bors c6eb61a97f Auto merge of #117197 - Zalathar:demangler, r=onur-ozkan
Avoid unnecessary builds/rebuilds of `rust-demangler`

This is a combination of two loosely-related changes:

- Don't build `rust-demangler` as a dependency of `tests/run-make`, because after #112300 none of the remaining run-make tests actually use it. (If future run-make tests ever do need the demangler, it'll be easy to add it back.)
- For `tests/run-coverage`, build the demangler with the stage 0 compiler instead of the current-stage compiler. This avoids having to uselessly rebuild the demangler after modifying and rebuilding the compiler itself.
2023-10-28 01:04:35 +00:00
bjorn3 aaa4e541ee Explicitly mark which targets to distribute cg_clif for in CI
This avoids needlessly building cg_clif for other targets and makes it
easier for the dist code to determine if it should distribute cg_clif as
component.
2023-10-27 18:56:46 +00:00
Matthias Krüger b9015dab9d Rollup merge of #117287 - onur-ozkan:fix-miri-target-info, r=RalfJung
fix miri target information for Test step

self-explanatory

r? RalfJung
2023-10-27 19:46:10 +02:00
onur-ozkan b915fc86ca fix miri target information for Test step
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-27 18:20:19 +03:00
bjorn3 a58327dc01 Distribute cg_clif as a rustup component 2023-10-27 11:56:36 +00:00
Zalathar 36c3f90173 For run-coverage tests, build rust-demangler with the stage 0 compiler
This avoids useless rebuilds of the demangler when modifying the compiler.
2023-10-27 17:18:47 +11:00
Zalathar be0d73afec Don't provide rust-demangler to run-make tests
The demangler was only needed by coverage tests, but those tests were migrated
into their own custom test mode in #112300.

This avoids having to build the demangler just for run-make tests. It will
still be built as needed by run-coverage tests or for other purposes.
2023-10-27 17:18:47 +11:00
bors dab715641e Auto merge of #117249 - matthiaskrgr:rollup-h4og5rv, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #116968 (Invalid `?` suggestion on mismatched `Ok(T)`)
 - #117032 (Enable cg_clif tests for riscv64gc)
 - #117106 (When expecting closure argument but finding block provide suggestion)
 - #117114 (Improve `stringify.rs` test)
 - #117188 (Avoid repeated interning of `env!("CFG_RELEASE")`)
 - #117243 (Explain implementation of mem::replace)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-10-26 22:10:17 +00:00
Matthias Krüger 596369fea0 Rollup merge of #117032 - bjorn3:riscv64_enable_cg_clif_tests, r=petrochenkov
Enable cg_clif tests for riscv64gc

Cranelift now has support for riscv64 on Linux.
2023-10-26 22:26:10 +02:00
bors aa1a71e9e9 Auto merge of #116581 - Kobzol:bootstrap-cmd-run, r=onur-ozkan
Centralize command running in boostrap (part one)

This PR tries to consolidate the various `run, try_run, run_quiet, run_quiet_delaying_failure, run_delaying_failure` etc. methods on `Builder`. This PR only touches command execution which doesn't produce output that would be later read by bootstrap, and it also only refactors spawning of commands that happens after a builder is created (commands executed during download & git submodule checkout are left as-is, for now).

The `run_cmd` method is quite meaty, but I expect that it will be changing rapidly soon, so I considered it easy to kept everything in a single method, and only after things settle down a bit, then maybe again split it up a bit.

I still kept the original shortcut methods like `run_quiet_delaying_failure`, but they now only delegate to `run_cmd`. I tried to keep the original behavior (or as close to it as possible) for all the various commands, but it is a giant mess, so there may be some deviations. Notably, `cmd.output()` is now always called, instead of just `status()`, which was called previously in some situations.

Apart from the refactored methods, there is also `Config::try_run`, `check_run`, methods that run commands that produce output, oh my… that's left for follow-up PRs :)

The driving goal of this (and following) refactors is to centralize command execution in bootstrap on a single place, to make command mocking feasible.

r? `@onur-ozkan`
2023-10-26 20:15:16 +00:00
Jakub Beránek 5d7fca15d3 Allow ignoring the failure of command execution 2023-10-26 21:52:48 +02:00
bors 056f5b0f13 Auto merge of #116983 - Urgau:prepare-bootstrap-for-new-check-cfg, r=Kobzol
Prepare the `bootstrap` tool for the new check-cfg syntax

This PR prepare the `bootstrap` tool for the [new check-cfg syntax](https://github.com/rust-lang/rust/pull/111072) as well as the according [changes to Cargo](https://github.com/rust-lang/cargo/pull/12845).

~~Note that while the new syntax can technically available on stage > 2, we actually cannot use it since we need a cargo version that supports the new syntax which won't happen until the next beta bump (if I understand everything correctly).~~

r? bootstrap
2023-10-26 08:54:42 +00:00
bors 278eaf509d Auto merge of #115872 - ferrocene:pa-remap-cargo-home, r=clubby789
Remap Cargo dependencies to /rust/deps

⚠️ **This doesn't affect user-compiled programs, it only affects building the Rust compiler itself.** ⚠️

Right now, `rust.remap-debuginfo = true` doesn't completely remap all paths: while LLVM and rustc sources are properly remapped (respectively to `/rust/llvm` and `/rust/$commit`), Cargo dependencies still use absolute paths from the Cargo home.

This never affected builds from CI much, because `CARGO_HOME=/cargo` in CI, so users see paths like this included in the precompiled binaries and libraries:

```
/cargo/registry/src/index.crates.io-6f17d22bba15001f/gimli-0.26.2/src/read/line.rs
```

Builds outside CI don't have remapping though, and it's confusing that the config flag doesn't fully do what it advertises.

This PR fixes it by adding remapping for dependencies too. *All registries's* source directory are remapped to `/rust/deps`, to account for multiple registries being able to contain crates.io crates (sparse index vs git, and source replacement mirrors). This results in paths like this being included:

```
/rust/deps/gimli-0.26.2/src/read/line.rs
```
2023-10-26 00:12:18 +00:00
Pietro Albini 85c0ce24cc remap cargo dependencies to /rust/deps 2023-10-24 12:24:06 +02:00
onur-ozkan b99b93586f remove change-id assertion in bootstrap test
In the bootstrap test, the assertion of the change-id
fails whenever we update the change-id next to a breaking change
in build configurations. This commit removes the assertion,
as it's not critical or useful to have.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-24 09:46:34 +03:00
Peter Collingbourne aad44b3b54 Improve android-ndk property interface
PR #105716 added support for NDK r25b, and removed support for r15. Since
the switch to r25b would have broken existing r15 users anyway, let's
take the opportunity to make the interface more user friendly.

Firstly move the android-ndk property to [build] instead of the
targets. This is possible now that the NDK has obsoleted the concept of
target-specific toolchains.

Also make the property take the NDK root directory instead of the
"toolchains/llvm/prebuilt/<host tag>" subdirectory.
2023-10-23 12:15:20 -07:00
Urgau ccbd304335 Use local_rebuild property to support new check-cfg in case of rebuild 2023-10-23 16:08:05 +02:00
Urgau 276a34666b Prepare bootstrap tool for new check-cfg syntax 2023-10-23 16:08:04 +02:00
bjorn3 87168909b0 Enable cg_clif tests for riscv64gc 2023-10-22 12:42:29 +00:00
onur-ozkan 9586bb8064 add bootstrap flag --skip-stage0-validation
This change introduces the --skip-stage0-validation flag,
which permits the use of any desired version of the stage0
compiler without verifying its version.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-22 10:42:06 +03:00
onur-ozkan a63624a67b re-enable stage0 compiler version check
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-22 10:30:51 +03:00
Vitaliy Busko 2d144d2115 fix(bootstrap) info message show correct path now 2023-10-19 08:52:46 +07:00
Jakub Beránek b153a01828 Simplify BehaviorOnFailure 2023-10-17 21:38:46 +02:00
Jakub Beránek 03d48dd735 Rename Supress variant 2023-10-17 21:38:46 +02:00
Jakub Beránek 17011d02ea Remove usages of Config::try_run
Commands should be run on Builder, if possible.
2023-10-17 21:38:46 +02:00
Jakub Beránek 7efe8fa849 Add output mode to BootstrapCommand 2023-10-17 21:38:46 +02:00
Jakub Beránek 0e090e740c Add behavior on failure to BootstrapCommand 2023-10-17 21:38:46 +02:00
Jakub Beránek a69edc68aa Add BootstrapCommand and run_cmd 2023-10-17 21:38:38 +02:00
onur-ozkan 3ecff1b760 bootstrap: fix warnings
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:07:12 +03:00
onur-ozkan f1e3e75f6c rename bootstrap module utils/dylib_util->utils/dylib
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:07:08 +03:00
onur-ozkan 9f381fe345 move bootstrap utils into bootstrap/src/utils module
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:07:04 +03:00
onur-ozkan 2bce0207d4 move bootstrap core implementation to bootstrap/src/core module
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:06:56 +03:00
onur-ozkan c68ab9347e improve bootstrap tests structure
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:06:52 +03:00
onur-ozkan acef1c2c57 reorganize bootstrap bins and helper module utilizations
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-17 10:06:48 +03:00
Matthias Krüger 6f9df29ad5 Rollup merge of #116430 - onur-ozkan:vendoring-in-tarball-sources, r=clubby789
vendoring in tarball sources

fixes #94782
2023-10-16 19:10:49 +02:00
onur-ozkan fa013d50ef add x.py.zsh to tidy check
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-15 09:06:10 +03:00