hanchenye-llvm-project/lld/ELF
Peter Smith fe3015d164 [ELF][AArch64] Fix adrp to undefined weak reference.
In the ABI for the 64-bit Arm architecture the section on weak references
states:
During linking, the symbol value of an undefined weak reference is:
- Zero if the relocation type is absolute
- The address of the place if the relocation type is pc-relative.

The relocations associated with an ADRP are relative so we should resolve
the undefined weak reference to the place instead of 0. This matches GNU
ld.bfd behaviour.

fixes pr34928

Differential Revision: https://reviews.llvm.org/D55599

llvm-svn: 349024
2018-12-13 11:13:01 +00:00
..
Arch Remove unreachable code. 2018-12-04 19:00:56 +00:00
AArch64ErrataFix.cpp [AArch64] Cortex-a53-843419 erratum should not apply to relaxed TLS. 2018-11-27 10:17:35 +00:00
AArch64ErrataFix.h
Bits.h
CMakeLists.txt Rename GdbIndex.{cpp,h} -> DWARF.{cpp,h}. 2018-09-14 23:51:05 +00:00
CallGraphSort.cpp Simplify. NFC. 2018-10-12 22:44:06 +00:00
CallGraphSort.h
Config.h [ELF] - Implement -z nodefaultlib 2018-11-27 09:48:17 +00:00
DWARF.cpp [LLD][ELF] - Improve the DWARF v5 suport for building .gdb_index. 2018-12-03 10:48:57 +00:00
DWARF.h [LLD][ELF] - Improve the DWARF v5 suport for building .gdb_index. 2018-12-03 10:48:57 +00:00
Driver.cpp [ELF] - Implement -z nodefaultlib 2018-11-27 09:48:17 +00:00
Driver.h Add TARGET(foo) linker script directive. 2018-08-06 21:29:41 +00:00
DriverUtils.cpp Eliminate dependency to formatv(). NFC. 2018-10-10 20:29:29 +00:00
EhFrame.cpp Avoid unnecessary buffer allocation and memcpy for compressed sections. 2018-10-08 16:58:59 +00:00
EhFrame.h
Filesystem.cpp
Filesystem.h
ICF.cpp Make a member function non-member. NFC. 2018-11-27 17:47:24 +00:00
ICF.h
InputFiles.cpp [ELF] - Do not crash when -r output uses linker script with `/DISCARD/` 2018-11-01 09:20:06 +00:00
InputFiles.h [ELF] Read the call graph profile from object files. 2018-10-02 00:17:15 +00:00
InputSection.cpp [ELF][AArch64] Fix adrp to undefined weak reference. 2018-12-13 11:13:01 +00:00
InputSection.h Do not use a hash table to uniquify mergeable strings. 2018-12-05 19:13:31 +00:00
LTO.cpp Set MAttrs in LTO mode 2018-11-01 20:02:49 +00:00
LTO.h Simplify. 2018-09-11 14:37:27 +00:00
LinkerScript.cpp [LLD][ELF] - Support discarding the .dynamic section. 2018-12-10 09:24:49 +00:00
LinkerScript.h [LLD][ELF] - Linker script: accept using a file name without a list of sections. 2018-12-06 08:34:52 +00:00
MapFile.cpp [ELF] - (-Map file) Implement printing of LMA for assignments outside of section declarations. 2018-12-06 09:04:52 +00:00
MapFile.h
MarkLive.cpp Avoid unnecessary buffer allocation and memcpy for compressed sections. 2018-10-08 16:58:59 +00:00
MarkLive.h
Options.td [ELF] Add --{,no-}call-graph-profile-sort (enabled by default) 2018-10-25 23:15:23 +00:00
OutputSections.cpp ELF: allow non allocated sections to go into allocated sections 2018-12-04 18:47:44 +00:00
OutputSections.h [ELF] Make TrapInstr and Filler byte arrays. NFC. 2018-11-14 21:05:20 +00:00
README.md
Relocations.cpp Simplify Symbol::getPltVA. 2018-11-28 17:42:59 +00:00
Relocations.h [ELF] - Fix R_AARCH64_ADR_GOT_PAGE, R_AARCH64_LD64_GOT_LO12 handling against IFUNC symbols. 2018-11-27 10:30:46 +00:00
ScriptLexer.cpp [LLD][ELD] - Do not reject INFO output section type when used with a start address. 2018-08-28 08:39:21 +00:00
ScriptLexer.h [LLD][ELD] - Do not reject INFO output section type when used with a start address. 2018-08-28 08:39:21 +00:00
ScriptParser.cpp [LLD][ELF] - Use auto. NFC. 2018-12-06 10:56:11 +00:00
ScriptParser.h
SymbolTable.cpp [ELF] - Make SymbolTable::addDefined return Defined. 2018-11-22 11:40:08 +00:00
SymbolTable.h [ELF] - Make SymbolTable::addDefined return Defined. 2018-11-22 11:40:08 +00:00
Symbols.cpp Simplify Symbol::getPltVA. 2018-11-28 17:42:59 +00:00
Symbols.h Simplify Symbol::getPltVA. 2018-11-28 17:42:59 +00:00
SyntheticSections.cpp [ELF] - Allow discarding .dynsym from the linker script. 2018-12-10 09:13:36 +00:00
SyntheticSections.h Simplify Symbol::getPltVA. 2018-11-28 17:42:59 +00:00
Target.cpp Use llvm_unreachable for unreachable code. 2018-11-01 20:08:29 +00:00
Target.h Simplify Symbol::getPltVA. 2018-11-28 17:42:59 +00:00
Thunks.cpp [PPC64] Long branch thunks. 2018-11-14 17:56:43 +00:00
Thunks.h
Writer.cpp [LLD][ELF] - Support discarding the .dynamic section. 2018-12-10 09:24:49 +00:00
Writer.h ELF: Do not ICF two sections with different output sections. 2018-05-23 01:58:43 +00:00

README.md

See docs/NewLLD.rst