1
Fork 0
rust/compiler/rustc_codegen_ssa
Yuki Okushi d69cd46761
Rollup merge of #85772 - luqmana:ignored-metadata, r=petrochenkov
Preserve metadata w/ Solaris-like linkers.

#84468 moved the `-zignore` linker flag from the `gc_sections` method to `add_as_needed` which is more accurate but Solaris-style linkers will also end up removing an unreferenced ELF sections [1]. This had the unfortunate side effect of causing the `.rustc` section (which has the metada) to be removed which could cause issues when trying to link against the resulting crates or use proc macros.

Since the `-zignore` is positional, we fix this by moving the metadata objects to before the flag.

[1] Specifically a section is considered unreferenced if:
* The section is allocatable
* No other sections bind to (relocate) to this section
* The section provides no global symbols

https://docs.oracle.com/cd/E19683-01/817-3677/6mj8mbtbs/index.html#chapter4-19
2021-06-06 19:11:17 +09:00
..
src Rollup merge of #85772 - luqmana:ignored-metadata, r=petrochenkov 2021-06-06 19:11:17 +09:00
Cargo.toml rustc: Store metadata-in-rlibs in object files 2021-06-04 10:05:20 -07:00
README.md

Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.