llvm-project
074af0f3 - [lld][ELF] Add --why-live flag (inspired by Mach-O) (#127112)

Commit
1 year ago
[lld][ELF] Add --why-live flag (inspired by Mach-O) (#127112) This prints a stack of reasons that symbols that match the given glob(s) survived GC. It has no effect unless section GC occurs. This implementation does not require -ffunction-sections or -fdata-sections to produce readable results, althought it does tend to work better (as does GC). Details about the semantics: - Some chain of liveness reasons is reported; it isn't specified which chain. - A symbol or section may be live: - Intrisically (e.g., entry point) - Because needed by a live symbol or section - (Symbols only) Because part of a section live for another reason - (Sections only) Because they contain a live symbol - Both global and local symbols (`STB_LOCAL`) are supported. - References to symbol + offset are considered to point to: - If the referenced symbol is a section (`STT_SECTION`): - If a sized symbol encloses the referenced offset, the enclosing symbol. - Otherwise, the section itself, generically. - Otherwise, the referenced symbol.
Author
Parents
Loading