llvm-project/lld/ELF
Fangrui Song 120b18767c [ELF] --gc-sections: allow GC on reserved sections in a group
This generalizes D70146 (SHT_NOTE) to more reserved sections and makes our rules
more consistent. Now SHF_GROUP is more similar to SHF_LINK_ORDER.

For SHT_INIT_ARRAY/SHT_FINI_ARRAY, the rule will be closer to PE/COFF link.exe.

Previously sanitizers use llvm.global_ctors to make module_ctor a GC
root, which is considered an abuse.
https://groups.google.com/g/generic-abi/c/TpleUEkNoQI

We can squeak through on compatibility issues because compilers otherwise don't
use SHF_GROUP special sections.
2021-07-22 17:09:23 -07:00
..
Arch [lld][AMDGPU] Handle R_AMDGPU_REL16 relocation. 2021-07-13 20:41:11 +01:00
AArch64ErrataFix.cpp [ELF] Move the outSecOff addend from relocAlloc/relocNonAlloc/... to InputSectionBase::relocate 2020-08-11 08:06:38 -07:00
AArch64ErrataFix.h [LLD][ELF] Optimize linker script filename glob pattern matching NFC 2020-09-16 10:26:11 +01:00
ARMErrataFix.cpp [LLD][ELF][ARM] Fix case of patched unrelocated BLX 2021-06-30 14:07:35 +01:00
ARMErrataFix.h [LLD][ELF] Optimize linker script filename glob pattern matching NFC 2020-09-16 10:26:11 +01:00
CMakeLists.txt [CMake] Make `intrinsics_gen` dependency unconditional. 2020-07-17 16:43:17 -07:00
CallGraphSort.cpp [COFF] Port CallGraphSort to COFF from ELF 2020-07-30 15:21:44 -07:00
CallGraphSort.h
Config.h [ELF] Check the Elf_Rel addends for dynamic relocations 2021-07-09 10:41:40 +01:00
DWARF.cpp [lib/Object] - Generalize the RelocationResolver API. 2020-11-20 10:32:49 +03:00
DWARF.h [ELF] --gdb-index: skip SHF_GROUP .debug_info 2020-08-13 09:11:01 -07:00
Driver.cpp [LLD] Adding support for RELA for CG Profile. 2021-07-13 13:56:30 -07:00
Driver.h [LLD] Rename lld port driver entry function to a consistent name 2020-12-18 12:18:37 +05:30
DriverUtils.cpp [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
EhFrame.cpp ELF: Teach the linker about the 'B' augmentation string character. 2021-01-05 19:51:11 -08:00
EhFrame.h [ELF] --icf: don't fold text sections with LSDA 2020-08-05 09:16:28 -07:00
ICF.cpp [LLD][ELF] Improve ICF for relocations to ineligible sections via "aliases" 2020-10-15 12:43:14 +01:00
ICF.h
InputFiles.cpp [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
InputFiles.h [LLD] Adding support for RELA for CG Profile. 2021-07-13 13:56:30 -07:00
InputSection.cpp [ELF] Simplify getAArch64UndefinedRelativeWeakVA. NFC 2021-06-10 13:30:16 -07:00
InputSection.h [ELF] Don't consider SHF_ALLOC ".debug*" sections debug sections 2020-11-12 09:59:43 -08:00
LTO.cpp [WPD][ELF] Allow whole program devirtualization for version script localized symbols 2021-03-09 22:33:47 -08:00
LTO.h
LinkerScript.cpp [ELF] Preserve section order within an INSERT AFTER command 2021-06-30 11:35:50 -07:00
LinkerScript.h [ELF] Preserve section order within an INSERT AFTER command 2021-06-30 11:35:50 -07:00
MapFile.cpp [lld][ELF] Add additional time trace categories 2020-11-10 10:28:46 +00:00
MapFile.h [ELF] Add --print-archive-stats= 2020-04-29 18:04:37 -07:00
MarkLive.cpp [ELF] --gc-sections: allow GC on reserved sections in a group 2021-07-22 17:09:23 -07:00
MarkLive.h
Options.td [ELF] Check the Elf_Rel addends for dynamic relocations 2021-07-09 10:41:40 +01:00
OutputSections.cpp [ELF] Check the Elf_Rel addends for dynamic relocations 2021-07-09 10:41:40 +01:00
OutputSections.h [ELF] Check the Elf_Rel addends for dynamic relocations 2021-07-09 10:41:40 +01:00
README.md
Relocations.cpp [ELF][AArch64] Write addends for TLSDESC relocations with -z rel 2021-07-09 10:41:41 +01:00
Relocations.h [ELF] Support .rela.eh_frame with unordered r_offset values 2021-04-29 08:51:09 -07:00
ScriptLexer.cpp [ELF] Optimize ScriptLexer::getLineNumber by caching the previous line number and offset 2021-06-22 15:35:24 -07:00
ScriptLexer.h [ELF] Optimize ScriptLexer::getLineNumber by caching the previous line number and offset 2021-06-22 15:35:24 -07:00
ScriptParser.cpp [ELF] Preserve section order within an INSERT AFTER command 2021-06-30 11:35:50 -07:00
ScriptParser.h [ELF] Improve --export-dynamic-symbol performance by checking whether wildcard is really used 2020-06-17 17:12:10 -07:00
SymbolTable.cpp [ELF] --wrap: don't clear sym->isUsedInRegularObj if real->isUsedInRegularObj; set wrap's initial binding to sym's 2021-04-17 00:29:51 -07:00
SymbolTable.h [ELF] Replace SymbolTable::forEachSymbol with iterator_range symbols() 2019-11-26 09:09:32 -08:00
Symbols.cpp [lld:elf] Weaken the requirement for a computed binding to be STB_LOCAL 2021-05-24 23:32:21 -04:00
Symbols.h [LTO] Prevent devirtualization for symbols dynamically exported 2021-01-27 15:54:13 -08:00
SyntheticSections.cpp Fix MSVC "not all control paths return a value" warning. NFCI. 2021-07-09 12:07:34 +01:00
SyntheticSections.h [ELF][AArch64] Write addends for TLSDESC relocations with -z rel 2021-07-09 10:41:41 +01:00
Target.cpp [ELF] Check the Elf_Rel addends for dynamic relocations 2021-07-09 10:41:40 +01:00
Target.h [lld][X86] Restore gotEntrySize. 2021-05-17 00:13:00 +01:00
Thunks.cpp [ELF] Refactor DynamicReloc to fix incorrect relocation addends 2021-07-09 10:41:40 +01:00
Thunks.h [lld] Add missing includes (NFC) 2021-06-03 18:55:18 +02:00
Writer.cpp [ELF] Don't define __rela_iplt_start for -pie/-shared 2021-07-15 11:31:11 -07:00
Writer.h

README.md

See docs/NewLLD.rst