llvm-project/lld/ELF
Peter Smith 051c4d5b7b [LLD][ELF][AArch64] Do not use thunk for undefined weak symbol.
In AArch64 a branch to an undefined weak symbol that does not have a PLT
entry should resolve to the next instruction. The thunk generation code
can prevent this from happening as a range extension thunk can be generated
if the branch is sufficiently far away from 0, the value of an undefined
weak symbol.

The fix is taken from the Arm implementation of needsThunk(), we prevent a
thunk from being generated to an undefined weak symbol.

fixes pr44451

Differential Revision: https://reviews.llvm.org/D72267
2020-01-07 09:57:51 +00:00
..
Arch [LLD][ELF][AArch64] Do not use thunk for undefined weak symbol. 2020-01-07 09:57:51 +00:00
AArch64ErrataFix.cpp [LLD][ELF][AArch64][ARM] Add missing classof to patch sections. 2019-12-11 14:09:15 +00:00
AArch64ErrataFix.h [ELF] Fix variable names in comments after VariableName -> variableName change 2019-07-16 05:50:45 +00:00
ARMErrataFix.cpp [LLD][ELF][AArch64][ARM] Add missing classof to patch sections. 2019-12-11 14:09:15 +00:00
ARMErrataFix.h [ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417 2019-09-16 09:38:38 +00:00
CMakeLists.txt [ELF] Suggest extern "C" when an undefined reference is mangled while the definition is not 2019-11-08 09:42:50 -08:00
CallGraphSort.cpp Fix a few typos in lld/ELF to cycle bots 2019-10-28 21:41:47 -04:00
CallGraphSort.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Config.h Revert an accidental commit af5ca40b47 2019-12-13 15:17:40 +09:00
DWARF.cpp [ELF] Wrap things in `namespace lld { namespace elf {`, NFC 2019-10-07 08:31:18 +00:00
DWARF.h gdb-index: Wire up str_offsets section to avoid incorrect error message about offsets_base 2019-08-07 22:49:14 +00:00
Driver.cpp [lld] Fix -Wrange-loop-analysis warnings 2020-01-01 15:41:20 -08:00
Driver.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
DriverUtils.cpp LLD: Don't use the stderrOS stream in link before it's reassigned. 2019-11-21 10:55:03 -05:00
EhFrame.cpp [ELF] Wrap things in `namespace lld { namespace elf {`, NFC 2019-10-07 08:31:18 +00:00
EhFrame.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
ICF.cpp [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
ICF.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InputFiles.cpp [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
InputFiles.h Forward declare the DWARFCache to avoid including LLVM DWARF details 2019-11-14 14:17:49 -08:00
InputSection.cpp [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
InputSection.h [ELF] Improve --gc-sections compatibility with GNU ld regarding section groups 2019-11-19 08:54:06 -08:00
LTO.cpp Revert an accidental commit af5ca40b47 2019-12-13 15:17:40 +09:00
LTO.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
LinkerScript.cpp [ELF] Delete redundant isLive() check. NFC 2019-12-15 21:59:55 -08:00
LinkerScript.h Fix a few typos in lld/ELF to cycle bots 2019-10-28 21:41:47 -04:00
MapFile.cpp Make it possible to redirect not only errs() but also outs() 2019-11-18 11:18:06 +09:00
MapFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MarkLive.cpp Revert an accidental commit af5ca40b47 2019-12-13 15:17:40 +09:00
MarkLive.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Options.td Revert an accidental commit af5ca40b47 2019-12-13 15:17:40 +09:00
OutputSections.cpp [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
OutputSections.h [ELF] Make MergeInputSection merging aware of output sections 2019-09-24 11:48:31 +00:00
README.md
Relocations.cpp [ELF] Drop const qualifier to fix -Wrange-loop-analysis. NFC 2020-01-04 12:24:39 -08:00
Relocations.h [ELF] Delete unused declaration addIRelativeRelocs after D65995. NFC 2019-12-16 11:19:22 -08:00
ScriptLexer.cpp [ELF] Wrap things in `namespace lld { namespace elf {`, NFC 2019-10-07 08:31:18 +00:00
ScriptLexer.h [Coding style change] Rename variables so that they start with a lowercase letter 2019-07-10 05:00:37 +00:00
ScriptParser.cpp [ELF] Wrap things in `namespace lld { namespace elf {`, NFC 2019-10-07 08:31:18 +00:00
ScriptParser.h [ELF] Fix variable names in comments after VariableName -> variableName change 2019-07-16 05:50:45 +00:00
SymbolTable.cpp Fix a few typos in lld/ELF to cycle bots 2019-10-28 21:41:47 -04:00
SymbolTable.h [ELF] Replace SymbolTable::forEachSymbol with iterator_range symbols() 2019-11-26 09:09:32 -08:00
Symbols.cpp [ELF] Add IpltSection 2019-12-17 00:06:04 -08:00
Symbols.h [ELF] --icf: do not fold preemptible symbols 2019-12-10 09:06:08 -08:00
SyntheticSections.cpp [lld] Fix -Wrange-loop-analysis warnings 2020-01-01 15:41:20 -08:00
SyntheticSections.h [ELF] Fix a comment. NFC 2019-12-17 17:17:33 -08:00
Target.cpp Revert "[ELF] Allow getErrPlace() to work before Out::bufferStart is set" 2019-12-13 09:43:51 -08:00
Target.h [ELF] writePlt, writeIplt: replace parameters gotPltEntryAddr and index with `const Symbol &`. NFC 2019-12-18 00:14:03 -08:00
Thunks.cpp [ELF][PPC64] Improve "call lacks nop" diagnostic and make it compatible with GCC<5.5 and GCC<6.4 2019-12-29 23:05:11 -08:00
Thunks.h [ELF][PPC32] Implement IPLT code sequence for non-preemptible IFUNC 2019-12-29 22:42:53 -08:00
Writer.cpp [ELF] Improve the condition to create .interp 2019-12-27 15:34:25 -08:00
Writer.h Revert "Revert r370635, it caused PR43241." 2019-09-06 15:57:24 +00:00

README.md

See docs/NewLLD.rst