Files
rust/tests/ui
bors 8e2d5e3a58 Auto merge of #112910 - lqd:mcp510, r=petrochenkov
Implement most of MCP510

This implements most of what remains to be done for MCP510:
- turns `-C link-self-contained` into a `+`/`-` list of components, like `-C link-self-contained=+linker,+crto,+libc,+unwind,+sanitizers,+mingw`. The scaffolding is present for all these expected components to be implemented and stabilized in the future on their own time. This PR only handles the `-Zgcc-ld=lld` subset of these link-self-contained components as  `-Clink-self-contained=+linker`
- handles  `-C link-self-contained=y|n`  as-is today, for compatibility with `rustc_codegen_ssa::back::link::self_contained`'s [explicit opt-in and opt-out](https://github.com/lqd/rust/blob/9eee230cd0a56bfba3ce65121798d9f9f4341cdd/compiler/rustc_codegen_ssa/src/back/link.rs#L1671-L1676).
- therefore supports our plan to opt out of `rust-lld` (when it's enabled by default) even for current `-Clink-self-contained` users, with e.g. `-Clink-self-contained -Clink-self-contained=-linker`
- turns `add_gcc_ld_path` into its expected final form, by using the `-C link-self-contained=+linker`  CLI flag, and whether the `LinkerFlavor`  has the expected `Cc::Yes` and `Lld::Yes` shape (this is not yet the case in practice for any CLI linker flavor)
- makes the [new clean linker flavors](https://github.com/rust-lang/rust/pull/96827#issuecomment-1208441595) selectable in the CLI in addition to the legacy ones, in order to opt-in to using `cc` and `lld` to emulate `-Zgcc-ld=lld`
- ensure the new `-C link-self-contained` components, and `-C linker-flavor`s are unstable, and require `-Z unstable-options` to be used

The up-to-date set of flags for the future stable CLI version of `-Zgcc-ld=lld` is currently: `-Clink-self-contained=+linker -Clinker-flavor=gnu-lld-cc -Zunstable-options`.

It's possible we'll also need to do something for distros that don't ship `rust-lld`, but maybe there are already no tool search paths to be added to `cc` in this situation anyways.

r? `@petrochenkov`
2023-07-02 02:25:01 +00:00
..
2023-04-30 00:06:26 +08:00
2023-01-30 20:12:19 +00:00
2023-01-15 19:46:20 +00:00
2023-06-19 15:39:55 +02:00
2023-05-24 19:35:59 -03:00
2023-05-30 12:40:35 +02:00
2023-05-30 13:03:40 +02:00
2023-04-03 09:24:11 +02:00
2023-05-08 17:58:01 -03:00
2023-05-26 06:55:06 +10:00
2023-05-04 18:06:07 +00:00
2023-05-11 12:14:57 -07:00
2023-05-08 17:58:01 -03:00
2023-06-23 16:26:22 +00:00
2023-01-30 20:12:19 +00:00
2023-06-19 20:00:41 +00:00
2023-06-10 14:46:11 -04:00
2023-05-25 17:40:46 +00:00
2023-06-28 07:59:36 -04:00
2023-02-16 11:42:35 -03:00
2023-05-08 03:36:30 +00:00
2023-05-12 00:10:52 +00:00
2023-04-29 13:01:46 +01:00
2023-06-28 01:51:53 -04:00
2023-06-29 16:24:07 +03:00
2023-06-26 08:56:32 +00:00
2023-04-03 09:24:11 +02:00
2023-05-05 14:58:52 -07:00
2023-06-24 21:49:38 -04:00
2023-06-06 18:43:20 +00:00
2023-04-19 19:13:45 +00:00
2023-04-13 22:10:26 -05:00
2023-06-20 19:46:01 -04:00
2023-05-08 03:36:30 +00:00
2023-05-29 12:07:41 -03:00
2023-03-29 18:04:44 -04:00
2023-05-26 18:55:02 +01:00
2023-04-26 21:02:56 +02:00
2023-06-12 20:24:48 +08:00
2023-06-26 08:56:32 +00:00
2023-05-01 16:15:17 +08:00
2023-04-29 13:01:46 +01:00
2023-06-22 23:01:48 +02:00
2023-05-12 00:10:52 +00:00
2023-05-24 19:35:59 -03:00
2023-01-15 19:46:20 +00:00
2023-01-15 19:46:20 +00:00
2023-03-08 00:00:18 +00:00
2023-04-13 22:10:26 -05:00
2023-04-13 22:10:26 -05:00
2023-03-08 00:00:18 +00:00
2023-03-08 00:00:18 +00:00
2023-01-15 19:46:20 +00:00