Commit graph

152072 commits

Author SHA1 Message Date
Stuart Cook
458a57adeb
Rollup merge of #130256 - Zalathar:dump-stamp, r=jieyouxu
Re-run coverage tests if `coverage-dump` was modified

If the `coverage-dump` tool was modified, coverage tests should not be treated as up-to-date, because the tool's output might have changed.

Bootstrap already handles rebuilding the tool itself if its sources were changed, so all compiletest needs to do here is include the binary in the list of files whose timestamps are checked.

This should have no effect on non-coverage tests, because bootstrap won't pass the `--coverage-dump-path` flag, so the path in compiletest's config will be None.
2024-09-12 20:37:18 +10:00
Stuart Cook
a3d9d13d7a
Rollup merge of #130252 - compiler-errors:const-gen, r=chenyukang
Properly report error on `const gen fn`

Fixes #130232

Also removes some (what I thought were unused) functions, and fixes a bug in clippy where we considered `gen fn` to be the same as `fn` because it was only built to consider asyncness.
2024-09-12 20:37:18 +10:00
Stuart Cook
c7162da850
Rollup merge of #130156 - nebulark:test_buildinfo, r=jieyouxu
Add test for S_OBJNAME & update test for LF_BUILDINFO cl and cmd

Update the unit test for checking cl and cmd in LF_BUILDINFO. With llvm-pdbutil we can now more specifically check if the string appears at the right location instead of just checking whether the string exists at all.
Context: https://github.com/rust-lang/rust/issues/96475
2024-09-12 20:37:15 +10:00
Stuart Cook
65a5cd467d
Rollup merge of #129367 - madsmtm:fix-apple-aarch64-deployment-targets, r=jieyouxu
Fix default/minimum deployment target for Aarch64 simulator targets

The minimum that `rustc` encoded did not match [the version in Clang](https://github.com/llvm/llvm-project/blob/llvmorg-18.1.8/llvm/lib/TargetParser/Triple.cpp#L1900-L1932), and that meant that that when linking, Clang ended up bumping the version. See https://github.com/rust-lang/rust/issues/129432 for more motivation behind this change.

Specifically, this PR sets the correct deployment target of the following targets:
- `aarch64-apple-ios-sim` from 10.0 to 14.0
- `aarch64-apple-tvos-sim` from 10.0 to 14.0
- `aarch64-apple-watchos-sim` from 5.0 to 7.0
- `aarch64-apple-ios-macabi` from 13.1 to 14.0

I have chosen not to document the `-sim` changes in the platform support docs, as it is fundamentally uninteresting; the normal targets (e.g. `aarch64-apple-ios`) still have the same deployment target, and that's what developers should actually target.

r? compiler

CC `@BlackHoleFox`
2024-09-12 20:37:15 +10:00
bors
1f51450c68 Auto merge of #117465 - paulmenage:small-data-limit, r=compiler-errors
Add -Z small-data-threshold

This flag allows specifying the threshold size above which LLVM should not consider placing small objects in a `.sdata` or `.sbss` section.

Support is indicated in the target options via the
small-data-threshold-support target option, which can indicate either an
LLVM argument or an LLVM module flag.  To avoid duplicate specifications
in a large number of targets, the default value for support is
DefaultForArch, which is translated to a concrete value according to the
target's architecture.
2024-09-12 04:27:08 +00:00
Zalathar
ed9b2bac36 Re-run coverage tests if coverage-dump was modified 2024-09-12 12:47:55 +10:00
Michael Goulet
8dc227866f Remove unused functions from ast CoroutineKind 2024-09-11 19:24:40 -04:00
Jubilee
142598214c
Rollup merge of #130239 - RalfJung:miri-ptr-offset-unsigned, r=compiler-errors
miri: fix overflow detection for unsigned pointer offset

This is the Miri part of https://github.com/rust-lang/rust/pull/130229. This is already UB in codegen so we better make Miri detect it; updating the docs may take time if we have to follow some approval process, but let's make Miri match reality ASAP.

r? ``@scottmcm``
2024-09-11 15:53:24 -07:00
Jubilee
abf0ac5ba0
Rollup merge of #129696 - RalfJung:stdarch, r=Amanieu
update stdarch

The goal is mostly to pull in https://github.com/rust-lang/stdarch/pull/1633.

r? ```@Amanieu```
2024-09-11 15:53:21 -07:00
Ralf Jung
3842ea671b miri: fix overflow detection for unsigned pointer offset 2024-09-11 20:40:55 +02:00
Matthias Krüger
ff4b3d4780
Rollup merge of #130161 - onur-ozkan:fmt-changed-files, r=Kobzol,RalfJung
refactor merge base logic and fix `x fmt`

When remote upstream is not configured, using [get_git_modified_files](38e3a5771c/src/tools/build_helper/src/git.rs (L114)) to find modified files fails because [get_rust_lang_rust_remote](38e3a5771c/src/tools/build_helper/src/git.rs (L46-L48)) can not resolve "rust-lang/rust" from the git output. The changes in this PR makes bootstrap to find the latest bors commit, treating it as the "closest upstream commit" so that the change tracker logic can use it to find the diffs.

In addition, [skips formatting](e392454483) if there are no modified files.

Fixes #130147
2024-09-11 20:04:24 +02:00
bors
16beabe1e1 Auto merge of #130212 - DianQK:llvm-19, r=nikic
Update LLVM to 19 327ca6c

Fixes #129887.

r? nikic
2024-09-11 10:57:43 +00:00
Ralf Jung
542a6c67ae miri: support vector index arguments in simd_shuffle 2024-09-11 11:19:46 +02:00
onur-ozkan
5f32717649 document the new git logic in more detail
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-11 08:33:34 +03:00
bors
a9fb00bfa4 Auto merge of #129975 - notriddle:notriddle/lint-skip, r=GuillaumeGomez
rustdoc: unify the short-circuit on all lints

This is a bit of an experiment to see if it improves perf.
2024-09-11 01:17:54 +00:00
DianQK
7c692e13b1
Update LLVM to 19 327ca6c 2024-09-11 07:59:27 +08:00
bors
6f7229c4da Auto merge of #129403 - scottmcm:only-array-simd, r=compiler-errors
Ban non-array SIMD

Nearing the end of https://github.com/rust-lang/compiler-team/issues/621 !

Currently blocked on ~~https://github.com/rust-lang/compiler-builtins/pull/673~~ ~~https://github.com/rust-lang/compiler-builtins/pull/674~~ ~~https://github.com/rust-lang/rust/pull/129400~~ ~~https://github.com/rust-lang/rust/pull/129481~~ for windows.
2024-09-10 22:47:40 +00:00
Paul Menage
3810386bbe Add -Z small-data-threshold
This flag allows specifying the threshold size above which LLVM should
not consider placing small objects in a .sdata or .sbss section.

Support is indicated in the target options via the
small-data-threshold-support target option, which can indicate either an
LLVM argument or an LLVM module flag.  To avoid duplicate specifications
in a large number of targets, the default value for support is
DefaultForArch, which is translated to a concrete value according to the
target's architecture.
2024-09-10 12:19:16 -07:00
onur-ozkan
0a7f9e2134 skip formatting if no files have been modified
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-10 20:34:56 +03:00
onur-ozkan
35ce85e0fd handle GitConfig for tools/compiletest
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-10 20:34:43 +03:00
Matthias Krüger
34c935baf3
Rollup merge of #130143 - RalfJung:miri-test-libstd, r=compiler-errors
miri-test-libstd: add missing BOOTSTRAP_ARGS

Note sure if BOOTSTRAP_ARGS will make any difference here, but all the other x.py invocations have it and I did not *deliberately* leave it away when I added these, so... probably best to add them?

Also don't unnecessarily set BOOTSTRAP_SKIP_TARGET_SANITY while we are at it.
2024-09-10 17:35:13 +02:00
Florian Schmiderer
713828d4f4 Add test for S_OBJNAME and update test for LF_BUILDINFO cl and cmd for
pdb files.
2024-09-10 17:23:05 +02:00
bors
f827364a95 Auto merge of #129337 - EtomicBomb:rfc, r=notriddle
rustdoc rfc#3662 changes under unstable flags

* All new functionality is under unstable options
* Adds `--merge=shared|none|finalize` flags
* Adds `--parts-out-dir=<crate specific directory>` for `--merge=none`
to write cross-crate info file for a single crate
* Adds `--include-parts-dir=<previously specified directory>` for
`--merge=finalize` to write cross-crate info files
* `tests/rustdoc/` tests for the new flags
2024-09-10 11:15:51 +00:00
bors
26b2b8d162 Auto merge of #130179 - workingjubilee:rollup-l78cv44, r=workingjubilee
Rollup of 11 pull requests

Successful merges:

 - #128316 (Stabilize most of `io_error_more`)
 - #129473 (use  `download-ci-llvm=true` in the default compiler config)
 - #129529 (Add test to build crates used by r-a on stable)
 - #129981 (Remove `serialized_bitcode` from `LtoModuleCodegen`.)
 - #130094 (Inform the solver if evaluation is concurrent)
 - #130132 ([illumos] enable SIGSEGV handler to detect stack overflows)
 - #130146 (bootstrap `naked_asm!` for `compiler-builtins`)
 - #130149 (Helper function for formatting with `LifetimeSuggestionPosition`)
 - #130152 (adapt a test for llvm 20)
 - #130162 (bump download-ci-llvm-stamp)
 - #130164 (move some const fn out of the const_ptr_as_ref feature)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-10 07:26:27 +00:00
Scott McMurray
51d0f68b78 Update the MIRI tests 2024-09-09 19:39:43 -07:00
Jubilee
ca3f4ae20a
Rollup merge of #130162 - onur-ozkan:bump-ci-llvm-stamp, r=Kobzol
bump download-ci-llvm-stamp

This should trigger the download and extraction of the ci-llvm tarball, which should resolve https://github.com/rust-lang/rust/issues/130144.
2024-09-09 19:20:39 -07:00
Jubilee
a4c61048d8
Rollup merge of #129529 - lqd:stable-new-solver, r=Kobzol
Add test to build crates used by r-a on stable

r? ````````@Kobzol````````

I've opened other PRs for this one to work and they've landed already. I cherry-picked your commit, and added the last remaining pieces we needed I think.
2024-09-09 19:20:36 -07: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
bors
304b7f801b Auto merge of #129778 - RalfJung:interp-lossy-typed-copy, r=saethlin
interpret: make typed copies lossy wrt provenance and padding

A "typed copy" in Rust can be a lossy process: when copying at type `usize` (or any other non-pointer type), if the original memory had any provenance, that provenance is lost. When copying at pointer type, if the original memory had partial provenance (i.e., not the same provenance for all bytes), that provenance is lost. When copying any type with padding, the contents of padding are lost.

This PR equips our validity-checking pass with the ability to reset provenance and padding according to those rules. Can be reviewed commit-by-commit. The first three commits are just preparation without any functional change.

Fixes https://github.com/rust-lang/miri/issues/845
Fixes https://github.com/rust-lang/miri/issues/2182
2024-09-10 02:18:51 +00:00
bors
712463de61 Auto merge of #129789 - notriddle:notriddle/inline-stmt-local, r=GuillaumeGomez
rustdoc: use strategic boxing to shrink `clean::Item`

* `inline_stmt_id` is never a cross-crate DefId, so save space by not storing it.
* Instead of two inner boxes for `Item`, use one.
2024-09-09 23:16:56 +00:00
bors
c2f74c3f92 Auto merge of #130165 - matthiaskrgr:rollup-fsnmz3t, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #129929 (`rustc_mir_transform` cleanups, round 2)
 - #130022 (Dataflow/borrowck lifetime cleanups)
 - #130064 (fix ICE in CMSE type validation)
 - #130067 (Remove redundant check in `symlink_hard_link` test)
 - #130131 (Print a helpful message if any tests were skipped for being up-to-date)
 - #130137 (Fix ICE caused by missing span in a region error)
 - #130153 (use verbose flag as a default value for `rust.verbose-tests`)
 - #130154 (Stabilize `char::MIN`)
 - #130158 (Update books)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-09 18:53:06 +00:00
Matthias Krüger
a0346bbd31
Rollup merge of #130158 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/edition-guide

1 commits in eeba2cb9c37ab74118a4fb5e5233f7397e4a91f8..b3ca7ade0f87d7e3fb538776defc5b2cc4188172
2024-09-03 22:59:56 UTC to 2024-09-03 22:59:56 UTC

- Rename `static_mut_refs` file to plural

## rust-embedded/book

1 commits in ff5d61d56f11e1986bfa9652c6aff7731576c37d..dbae36bf3f8410aa4313b3bad42e374735d48a9d
2024-09-04 20:49:11 UTC to 2024-09-04 20:49:11 UTC

- Fix small error in c bindings (rust-embedded/book#377)

## rust-lang/reference

6 commits in 0668397076da350c404dadcf07b6cbc433ad3743..687faf9958c52116d003b41dfd29cc1cf44f5311
2024-09-03 20:21:23 UTC to 2024-08-29 01:11:29 UTC

- `asm!`: clarify that `nomem` / `readonly` can access private memory (rust-lang/reference#1598)
- Switch warning blocks to use admonitions (rust-lang/reference#1595)
- dont use stdcall on x86_64 where it is not a valid ABI (rust-lang/reference#1600)
- Add capturing and precise capturing rules (rust-lang/reference#1577)
- Add a prefix to rule HTML IDs (rust-lang/reference#1593)
- Add a description of rule identifiers (rust-lang/reference#1594)

## rust-lang/rust-by-example

2 commits in 859786c5bc99301bbc22fc631a5c2b341860da08..c79ec345f08a1e94494cdc8c999709a90203fd88
2024-09-08 13:24:48 UTC to 2024-09-08 13:24:08 UTC

- Fix typo in conversion/from_into (rust-lang/rust-by-example#1882)
- Corrected x values for example rectangle (rust-lang/rust-by-example#1884)

## rust-lang/rustc-dev-guide

9 commits in fa928a6d19e1666d8d811dfe3fd35cdad3b4e459..0ed9229f5b6f7824b333beabd7e3d5ba4b9bd971
2024-09-09 10:58:45 UTC to 2024-08-31 13:02:08 UTC

- fix some comments (rust-lang/rustc-dev-guide#2059)
- Fix a link and create an implied internal link  (rust-lang/rustc-dev-guide#2051)
- link to additional LLVM update PRs (rust-lang/rustc-dev-guide#2055)
- fix/improve rdg contributing howto (rust-lang/rustc-dev-guide#2056)
- fixed the typo (rust-lang/rustc-dev-guide#2058)
- fix typo maker -> marker (thanks `@lholten)` (rust-lang/rustc-dev-guide#2057)
- improve query system documentation (rust-lang/rustc-dev-guide#2041)
- add section on overlap checks (rust-lang/rustc-dev-guide#2042)
- clarify the role of rustc_const_unstable (rust-lang/rustc-dev-guide#2045)
2024-09-09 20:20:21 +02:00
Matthias Krüger
7c109b152b
Rollup merge of #130153 - onur-ozkan:verbose-to-verbose-tests, r=Kobzol
use verbose flag as a default value for `rust.verbose-tests`

See the [Zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap/topic/Run.20tests.20in.20x.2Epy.20with.20.22pretty.22.20test.20rendering.3F) for more context.
2024-09-09 20:20:20 +02:00
Matthias Krüger
3658bfb6ea
Rollup merge of #130131 - Zalathar:up-to-date, r=Kobzol
Print a helpful message if any tests were skipped for being up-to-date

When running tests without the `--force-rerun` flag, compiletest will automatically skip any tests that (in its judgement) don't need to be run again since the last time they were run.

This is normally very useful, but can occasionally be confusing, especially in edge-cases where up-to-date checking is not completely accurate (or the test is flaky).

This PR makes bootstrap count the number of tests that were ignored for being up-to-date (via a hard-coded check on the ignore reason), and prints a helpful message when that number is nonzero.

---

Sample output:

```text
test result: ok. 4 passed; 0 failed; 17578 ignored; 0 measured; 0 filtered out; finished in 463.79ms

help: ignored 17295 up-to-date tests; use `--force-rerun` to prevent this

Build completed successfully in 0:00:07
```
2024-09-09 20:20:19 +02:00
onur-ozkan
12998c2e11 handle GitConfig for tools/suggest-tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 21:03:51 +03:00
onur-ozkan
667cf22f48 bump download-ci-llvm-stamp
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 20:31:58 +03:00
onur-ozkan
9aa823cc67 replace get_closest_merge_base_commit with get_closest_merge_commit
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 20:19:29 +03:00
onur-ozkan
dc9c5f251c implement build_helper::git::get_closest_merge_commit
Compare to `get_git_merge_base`, this doesn't require configuring the upstream remote.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 20:18:06 +03:00
onur-ozkan
05043a370a add git_merge_commit_email into GitConfig
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 20:17:34 +03:00
rustbot
8b052eaad1 Update books 2024-09-09 13:00:45 -04:00
bors
d7522d8726 Auto merge of #128939 - bjorn3:windows_cg_clif_component, r=albertlarsan68
Distribute rustc_codegen_cranelift for Windows

With support for raw-dylib recently added to cg_clif, and inline assembly support working on Windows for quite a while now, all blockers for distributing cg_clif on Windows that I mentioned in https://github.com/rust-lang/rust/pull/81746#issuecomment-1774099637 are fixed now.
2024-09-09 16:09:06 +00:00
onur-ozkan
19b8f9e17c use verbose flag as a default value for rust.verbose-tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-09-09 18:47:38 +03:00
Ralf Jung
0a70924c21 fix UB in a test
also add an explicit test for the fact that a Option<WidePtr> has padding when it is None
2024-09-09 16:17:34 +02:00
Ralf Jung
65c70900ce union padding computation: add fast-path for ZST
Also avoid even tracking empty ranges, and add fast-path for arrays of scalars
2024-09-09 14:46:26 +02:00
Mads Marquart
97df8fb7ec Fix default/minimum deployment target for Aarch64 simulator targets
The minimum that `rustc` encoded did not match the version in Clang, and
that meant that that when linking, we ended up bumping the version.

Specifically, this sets the correct deployment target of the following
simulator and Mac Catalyst targets:
- `aarch64-apple-ios-sim` from 10.0 to 14.0
- `aarch64-apple-tvos-sim` from 10.0 to 14.0
- `aarch64-apple-watchos-sim` from 5.0 to 7.0
- `aarch64-apple-ios-macabi` from 13.1 to 14.0

I have chosen to not document the simulator target versions in the
platform support docs, as it is fundamentally uninteresting; the normal
targets (e.g. `aarch64-apple-ios`, `aarch64-apple-tvos`) still have the
same deployment target as before, and that's what developers should
actually target.
2024-09-09 13:55:14 +02:00
bors
38e3a5771c Auto merge of #130135 - Kobzol:bootstrap-check-linker, r=onur-ozkan
Do not skip linker configuration for `check` builds

This essentially reverts a part of https://github.com/rust-lang/rust/pull/128871, to fix https://github.com/rust-lang/rust/issues/130108. This is mostly a hotfix until we can figure out a better way to both avoid rebuilds and avoid configuring the linker for `x check`.

Skipping linker for check builds was causing unexpected rebuilds.

Fixes: https://github.com/rust-lang/rust/issues/130108
2024-09-09 11:49:07 +00:00
Ralf Jung
62d196feb1 bootstrap/Makefile.in: miri: add missing BOOTSTRAP ARGS
also don't unnecessarily set BOOTSTRAP_SKIP_TARGET_SANITY while we are at it
2024-09-09 12:12:14 +02:00
bors
1f44f0a66f Auto merge of #130133 - workingjubilee:rollup-t5o827k, r=workingjubilee
Rollup of 14 pull requests

Successful merges:

 - #119229 (Update mingw-w64 + GNU toolchain)
 - #128345 (added support for GNU/Hurd on x86_64)
 - #128667 (rustdoc: normalise type/field names)
 - #129876 (Use sysroot crates maximally in `rustc_codegen_gcc`.)
 - #130034 ( Fix enabling wasm-component-ld to match other tools )
 - #130048 (run-make-support: Add llvm-pdbutil)
 - #130068 (Test codegen when setting deployment target)
 - #130070 (Rename variant `AddrOfRegion` of `RegionVariableOrigin` to `BorrowRegion`)
 - #130087 (remove 'const' from 'Option::iter')
 - #130090 (make Result::copied unstably const)
 - #130092 (Fixes typo in wasm32-wasip2 doc comment)
 - #130107 (const: make ptr.is_null() stop execution on ambiguity)
 - #130115 (Remove needless returns detected by clippy in libraries)
 - #130130 (Miri subtree update)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-09 09:24:11 +00:00
Jakub Beránek
c33aa863f8
Do not skip linker configuration for check builds
It was causing unexpected rebuilds.
2024-09-09 10:07:22 +02:00
Jubilee
3e01a5da6e
Rollup merge of #130130 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-09-09 00:17:52 -07:00