Commit graph

151103 commits

Author SHA1 Message Date
bors
41dd149fd6 Auto merge of #128677 - nikic:llvm19rc2, r=cuviper
Update to LLVM 19 rc2

Update from ~rc1 to rc2.

Fixes https://github.com/rust-lang/rust/issues/128555.
2024-08-11 19:37:52 +00:00
bors
9cb1998ea1 Auto merge of #122362 - Zoxc:rustc_driver_static_std, r=oli-obk,lqd,bjorn3,Kobzol
Link `std` statically in `rustc_driver`

This makes `rustc_driver` statically link to `std`. This is done by not passing `-C prefer-dynamic` when building `rustc_driver`. However building `rustc-main` won't work currently as it tries to dynamically link to both `rustc_driver` and `std` resulting in a crate graph with `std` duplicated. To fix that new command line option `-Z prefer_deps_of_dynamic` is added which prevents linking to a dylib if there's a static variant of it already statically linked into another dylib dependency.

The main motivation for this change is to enable `#[global_allocator]` to be used in `rustc_driver` allowing overriding the allocator used in rustc on all platforms.

---

Instead of adding `-Z prefer_deps_of_dynamic`, this PR is changed to crate opt-in to the linking change via the `rustc_private` feature instead, as that would be typically needed to link to `rustc_driver` anyway.

---

try-job: aarch64-apple
try-job: x86_64-msvc
try-job: i686-mingw
try-job: dist-x86_64-msvc
try-job: aarch64-gnu
2024-08-11 15:08:03 +00:00
Matthias Krüger
bd7075c69e
Rollup merge of #128592 - evelynharthbrooke:master, r=Mark-Simulacrum
Promote aarch64-apple-darwin to Tier 1

This promotes aarch64-apple-darwin to Tier 1 status as per rust-lang/rfcs#3671 and tracking issue #73908. Not sure what else is necessary for this to impement the aforementioned RFC, however I figured I'd try. I did read in previous issues and PRs that the necessary infrastructure was already in place for the aarch64-apple-darwin target, and the RFC mentions the same. So this should be all thats necessary in order for the target to be promoted.

This is a recreation of my previous PR because I accidentally did an incorrect git rebase which caused unnecessary changes to various commit SHAs. So this PR is a recreation of my previous PR without said stumble. My bad.
2024-08-11 07:51:51 +02:00
John Kåre Alsaker
b22253c454 Keep rustc's std copy 2024-08-11 05:43:32 +02:00
John Kåre Alsaker
dd3f7578ee Exclude just std from rustc deps 2024-08-11 04:16:53 +02:00
John Kåre Alsaker
56beb1d744 Update the unstable book 2024-08-11 04:16:53 +02:00
John Kåre Alsaker
486864f235 Don't statically link std into rustc_driver for windows-gnu 2024-08-11 04:16:53 +02:00
John Kåre Alsaker
3ee43259ac Link std statically in rustc_driver 2024-08-11 04:16:53 +02:00
bors
04dff01740 Auto merge of #128400 - petrochenkov:nowhole3, r=bjorn3
linker: Remove the "`--whole-archive` in test mode" backcompat hack

Fixes https://github.com/rust-lang/rust/issues/116910.
2024-08-10 18:57:58 +00:00
bors
04ba50e823 Auto merge of #128927 - GuillaumeGomez:rollup-ei2lr0f, r=GuillaumeGomez
Rollup of 8 pull requests

Successful merges:

 - #128273 (Improve `Ord` violation help)
 - #128807 (run-make: explaing why fmt-write-bloat is ignore-windows)
 - #128903 (rustdoc-json-types `Discriminant`: fix typo)
 - #128905 (gitignore: Add Zed and Helix editors)
 - #128908 (diagnostics: do not warn when a lifetime bound infers itself)
 - #128909 (Fix dump-ice-to-disk for RUSTC_ICE=0 users)
 - #128910 (Differentiate between methods and associated functions in diagnostics)
 - #128923 ([rustdoc] Stop showing impl items for negative impls)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-08-10 15:13:38 +00:00
Guillaume Gomez
893b9f3a5a
Rollup merge of #128923 - GuillaumeGomez:negative-impls-items, r=fmease
[rustdoc] Stop showing impl items for negative impls

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

As discussed with `@fmease,` they have a broader patch in progress, so this (small) PR will at least allow for them to have a regression test. :)

r? `@fmease`
2024-08-10 16:23:55 +02:00
Guillaume Gomez
6d3f764332
Rollup merge of #128903 - kraktus:patch-3, r=aDotInTheVoid
rustdoc-json-types `Discriminant`: fix typo

"when to complex" should obviously be "too complex"
2024-08-10 16:23:52 +02:00
Guillaume Gomez
6a90be31b1 Stop showing impl items for negative impls 2024-08-10 15:03:24 +02:00
Nadrieril
e77612d3e4 Fixes in various places 2024-08-10 12:08:46 +02:00
bors
68d2e8a66e Auto merge of #125642 - khuey:zstd, r=Kobzol
Enable zstd for debug compression.

Set LLVM_ENABLE_ZSTD alongside LLVM_ENABLE_ZLIB so that --compress-debug-sections=zstd is an option.

See #120953

try-job: x86_64-gnu-tools
2024-08-09 22:44:37 +00:00
bors
ca5d25e2c4 Auto merge of #128896 - bjorn3:sync_cg_clif-2024-08-09, r=bjorn3
Subtree sync for rustc_codegen_cranelift

The main highlight this time is support for raw-dylib on Windows thanks to `@dpaoliello.` Compiling the ring crate for arm64 macOS has been fixed too.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler
2024-08-09 20:18:10 +00:00
kraktus
b735547025
rustdoc-json-types Discriminant: fix typo
"when to complex" should obviously be "too complex"
2024-08-09 20:50:00 +02:00
bjorn3
57dd967e71 Update tidy for new cranelift-bitset crate 2024-08-09 17:25:32 +00:00
Matthias Krüger
cea3b42f58
Rollup merge of #128874 - Kobzol:cmd-verbose-logging, r=onur-ozkan
Disable verbose bootstrap command failure logging by default

One of my recent bootstrap command refactoring PRs enabled verbose logging of command failures by default. While this is great for debugging bootstrap, in many situations it's just too verbose and prevents the user from seeing the actual printed stdout/stderr, which usually contains much more useful information.

This PR reverts that logic, and only prints a detailed error when `-v` is passed to bootstrap.

r? ````@onur-ozkan````
2024-08-09 18:25:01 +02:00
Matthias Krüger
9f11eb13b8
Rollup merge of #128838 - notriddle:notriddle/invalid-tag-is-not-rust, r=GuillaumeGomez
rustdoc: do not run doctests with invalid langstrings

https://github.com/rust-lang/rust/pull/124577#issuecomment-2276034737

CC ``@decathorpe``
2024-08-09 18:24:58 +02:00
Matthias Krüger
5f1e25e65d
Rollup merge of #128822 - onur-ozkan:add-build-config-in-tarballs, r=Kobzol
add `builder-config` into tarball sources

This will be useful for certain scenarios where developers want to know how the tarball sources were generated. We also want this to check for CI rustc incompatible options on bootstrap.

Blocker for #122709

r? Kobzol
2024-08-09 18:24:57 +02:00
Matthias Krüger
53729366a9
Rollup merge of #128817 - biabbas:vxworks_update, r=tgross35
VxWorks code refactored

1. Extern TaskNameSet as minimum supported version of os is VxWorks 7 which would have taskNameSet
2. Vx_TASK_NAME_LEN is 31 on VxWorks7, defined variable res.
3. Add unsafe blocks on Non::Zero usage in available_parallelism()
4. Update vxworks docs.
r? `@tgross35`
cc `@devnexen`
2024-08-09 18:24:56 +02:00
Jakub Beránek
a380d5e8f6 Do not print verbose error when a bootstrap command fails without verbose mode 2024-08-09 14:59:33 +02:00
Kyle Huey
8db318cc96 Install zstd in dist builder image.
Build libzstd from source because the EPEL package is built without fPIC.
2024-08-09 05:55:40 -07:00
Kyle Huey
7bb345e677 Add zlib and zstd dev packages for building lld. 2024-08-09 05:55:40 -07: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
bors
899eb03926 Auto merge of #128703 - compiler-errors:normalizing-tails, r=lcnr
Miscellaneous improvements to struct tail normalization

1. Make checks for foreign tails more accurate by normalizing the struct tail. I didn't write a test for this one.
2. Normalize when computing struct tail for `offset_of` for slice/str. This fixes the new solver only.
3. Normalizing when computing tails for disaligned reference check. This fixes both solvers.

r? lcnr
2024-08-09 11:36:01 +00:00
Jakub Beránek
f72cb0415b Make Build::run comment more accurate 2024-08-09 12:17:01 +02:00
onur-ozkan
ff0d37cb01 use absolute path for config.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-09 11:42:43 +03:00
onur-ozkan
a7c415c67f add builder-config into tarball sources
This will be useful for certain scenarios where developers want to know
how the tarball sources were generated. We also want this to check for CI
rustc incompatible options on bootstrap.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-08-09 11:42:33 +03:00
bors
fac7753802 Auto merge of #128853 - matthiaskrgr:rollup-pr222x1, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #128640 (rwlock: disable 'frob' test in Miri on macOS)
 - #128791 (Don't implement `AsyncFn` for `FnDef`/`FnPtr` that wouldnt implement `Fn`)
 - #128806 (Split `ColorConfig` off of `HumanReadableErrorType`)
 - #128818 (std float tests: special-case Miri in feature detection)
 - #128834 (rustdoc: strip unreachable modules)
 - #128836 (rustdoc-json: add a test for impls on private & hidden types)
 - #128837 (Clippy subtree update)
 - #128851 (Add comment that bors did not see pushed before it merged)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-08-09 00:17:32 +00:00
Matthias Krüger
58c6497e4c
Rollup merge of #128837 - flip1995:clippy-subtree-update, r=Manishearth
Clippy subtree update

r? ``@Manishearth``

Updates Cargo.lock due to uitest bump
2024-08-09 00:03:38 +02:00
Matthias Krüger
5e388ea48e
Rollup merge of #128834 - its-the-shrimp:fix_101105, r=aDotInTheVoid
rustdoc: strip unreachable modules

Modules are now stripped based on the same logic that's used to strip other item kinds
Fixes #101105
2024-08-09 00:03:37 +02:00
Matthias Krüger
f106496b82
Rollup merge of #128806 - estebank:color-config, r=jieyouxu
Split `ColorConfig` off of `HumanReadableErrorType`

The previous setup tied two unrelated things together. Splitting these two is a better model.

Identified by https://github.com/rust-lang/rust/pull/126597/files#r1667800754
2024-08-09 00:03:36 +02:00
bors
c7b0d4e81f Auto merge of #128827 - weihanglo:update-cargo, r=weihanglo
Update cargo

3 commits in 94977cb1fab003d45eb5bb108cb5e2fa0149672a..0d8d22f83b066503f6b2b755925197e959e58b4f
2024-08-06 21:42:10 +0000 to 2024-08-08 12:54:24 +0000
- fix: std Cargo.lock moved to `library` dir (rust-lang/cargo#14370)
- fix(vendor): Strip excluded build targets (rust-lang/cargo#14367)
- Infer registry (rust-lang/cargo#14340)

r? ghost
2024-08-08 21:50:46 +00:00
Michael Howell
7c4150fce0 rustdoc: do not run doctests with invalid langstrings 2024-08-08 13:33:34 -07:00
Philipp Krones
b7f07ce57a
Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
Michael Goulet
b916431976 Rename struct_tail_erasing_lifetimes to struct_tail_for_codegen 2024-08-08 12:15:16 -04:00
schvv31n
c2a0d9ca6e rustdoc: fixed #101105
modules are now stripped based on the same logic that's used to strip other item kinds
2024-08-08 17:13:15 +01:00
Esteban Küber
95c1c34fff review comments 2024-08-08 14:58:52 +00:00
Esteban Küber
ae696f847d Split ColorConfig off of HumanReadableErrorType
The previous setup tied two unrelated things together. Splitting these two is a better model.
2024-08-08 14:41:33 +00:00
Weihang Lo
40a63d4f6e
Update cargo 2024-08-08 10:26:47 -04:00
B I Mohammed Abbas
1e3ea293e2 Update platform support docs for VxWorks target 2024-08-08 15:15:54 +05:30
Folkert
ae68b2fc56
migrate thumb-none-qemu to rmake 2024-08-08 10:21:38 +02:00
Trevor Gross
f4fe5c835a
Rollup merge of #128797 - Jeff-A-Martin:fuchsia-test-runner, r=tmandry
Fuchsia Test Runner: enable ffx repository server

The default repository server setting has changed on Fuchsia (default is newly "false"). Now, in order to start the repository server, the config `repository.server.enabled` must be set to true.
2024-08-07 20:49:04 -05:00
bors
86e7875c13 Auto merge of #128793 - matthiaskrgr:rollup-ork16t0, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #128363 (Migrate `pdb-buildinfo-cl-cmd` and `pgo-indirect-call-promotion` `run-make` tests to rmake)
 - #128384 (Add tests to ensure MTE tags are preserved across FFI boundaries)
 - #128636 (migrate `thumb-none-cortex-m` to rmake)
 - #128696 (Migrate `staticlib-dylib-linkage` `run-make` test to rmake)

Failed merges:

 - #128407 (Migrate `min-global-align` and `no-alloc-shim` `run-make` tests to rmake)
 - #128639 (migrate `thumb-none-qemu` to rmake)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-08-07 22:30:29 +00:00
Jeff Martin
5db9d43207 Fuchsia Test Runner: enable ffx repository server
The default repository server setting has changed on Fuchsia (default is
newly "false"). Now, in order to start the repository server, the config
`repository.server.enabled` must be set to true.
2024-08-07 16:08:41 -04:00
Matthias Krüger
e34229508a
Rollup merge of #128353 - ferrocene:jonathanpallant/add-dependencies-to-copyright-file, r=Kobzol
Change generate-copyright to generate HTML, with cargo dependencies included

`x.py run generate-copyright` now produces `build/COPYRIGHT.html`. This includes a new format for in-tree dependencies, and also adds out-of-tree cargo dependencies.

After consulting expert opinion, I have elected to include every top-level:

* `*NOTICE*`
* `*AUTHOR*`
* `*LICENSE*`
* `*LICENCE*`, and
* `*COPYRIGHT*` file I can find - case-insensitive.

This is because the cargo package metadata's `author` field is not a list of copyright holders and does not meet the requirements of the Apache-2.0 license (which says you must include a NOTICE file with the binary if one was supplied by the author) nor the MIT license (which says you must include 'the above copyright notice').

I believe it would be appropriate to include this file with every Rust release, in order to do an even better job of appropriately recognising the efforts of the authors of the first-party and third-party libraries we are using here.

The output includes something like 524 copies of the Apache-2.0 text because they are not all identical. I think I count about 50 different variations by shasum - some differ in whitespace, while some have the boilerplate block at the bottom erroneously modified (don't modify the copy in the license, modify the copy you paste into your own source code!). Running `gzip` on the HTML file largely makes this problem go away, and the average browser is far happier with a ~6 MiB HTML file than the average Markdown viewer is with a ~6 MiB markdown file. But, if someone wants to, do they could submit a follow-up which de-dups the license text files and adds back-links to earlier identical copies (for some value of 'identical copy').

```console
$ xpy run generate-copyright
$ cd build
$ gzip -c COPYRIGHT.html > COPYRIGHT.gz
$ xz -c COPYRIGHT.html > COPYRIGHT.xz
$ ls -lh COPYRIGHT.*
-rw-r--r--  1 jonathan  staff   241K 29 Jul 17:19 COPYRIGHT.gz
-rw-r--r--@ 1 jonathan  staff   6.6M 29 Jul 11:30 COPYRIGHT.html
-rw-r--r--  1 jonathan  staff    59K 29 Jul 17:19 COPYRIGHT.xz
```

Here's an example [COPYRIGHT.gz](https://github.com/user-attachments/files/16416147/COPYRIGHT.gz).
2024-08-07 20:28:17 +02:00
Matthias Krüger
26787a8c0d
Rollup merge of #128696 - Oneirical:second-linkage-rampage, r=jieyouxu
Migrate `staticlib-dylib-linkage` `run-make` test to rmake

Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

I'm quite sure this has the same issue as the one brought up in [this discussion](https://github.com/rust-lang/rust/pull/128407#discussion_r1702439172), so I elected to keep the ignore MSVC.

try-job: aarch64-apple
try-job: x86_64-gnu-llvm-17
try-job: armhf-gnu
2024-08-07 19:35:07 +02:00
Matthias Krüger
38dc3b2621
Rollup merge of #128636 - folkertdev:rmake-thumb-none-cortex-m, r=jieyouxu
migrate `thumb-none-cortex-m` to rmake

tracking issue: https://github.com/rust-lang/rust/issues/121876

I'll leave some comments/questions inline

r? ```@jieyouxu```

try-job: armhf-gnu
try-job: dist-various-1
try-job: test-various
2024-08-07 19:35:06 +02:00