diff options
| author | bors <bors@rust-lang.org> | 2023-07-02 02:25:01 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-07-02 02:25:01 +0000 |
| commit | 8e2d5e3a584b15ffee14984cb0b0986f00754b3d (patch) | |
| tree | 66ce348487ffec3e36e9379451d509ecdb8b09e8 /compiler/rustc_codegen_llvm/src | |
| parent | ba76096bf10b66d222868ca26437ba38c24c7783 (diff) | |
| parent | 38f5a9964ba7e1eeeffc7783d4cf2e4032ca0f31 (diff) | |
| download | rust-8e2d5e3a584b15ffee14984cb0b0986f00754b3d.tar.gz rust-8e2d5e3a584b15ffee14984cb0b0986f00754b3d.zip | |
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`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
