diff options
| author | bors <bors@rust-lang.org> | 2023-08-09 00:38:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-08-09 00:38:00 +0000 |
| commit | a946c1e017a7b7202a61c89e0b2f65b348117a31 (patch) | |
| tree | bc9ca115e3dff63efaeb486503444de8e023b32e /compiler/rustc_codegen_llvm/src | |
| parent | e3590fccfbdb6284bded9b70eca2e72b0c57e070 (diff) | |
| parent | a2a7f27fd2548874b203f1f577f64cf61627e0a5 (diff) | |
| download | rust-a946c1e017a7b7202a61c89e0b2f65b348117a31.tar.gz rust-a946c1e017a7b7202a61c89e0b2f65b348117a31.zip | |
Auto merge of #114470 - pnkfelix:dont-export-no-mangle-from-proc-macros-issue-99978, r=bjorn3
Restrict linker version script of proc-macro crates to just its two symbols Restrict linker version script of proc-macro crates to just the two symbols of each proc-macro crate. The main known effect of doing this is to stop including `#[no_mangle]` symbols in the linker version script. Background: The combination of a proc-macro crate with an import of another crate that itself exports a no_mangle function was broken for a period of time, because: * In PR #99944 we stopped exporting no_mangle symbols from proc-macro crates; proc-macro crates have a very limited interface and are meant to be treated as a blackbox to everything except rustc itself. However: he constructed linker version script still referred to them, but resolving that discrepancy was left as a FIXME in the code, tagged with issue #99978. * In PR #108017 we started telling the linker to check (via the`--no-undefined-version` linker invocation flag) that every symbol referenced in the "linker version script" is provided as linker input. So the unresolved discrepancy from #99978 started surfacing as a compile-time error (e.g. #111888). Fix #111888 Fix #99978.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
