llvm-project/lld/MachO
Jez Ng d515575714 [lld-macho][reland] Add support for N_INDR symbols
This is similar to the `-alias` CLI option, but it gives finer-grained
control in that it allows the aliased symbols to be treated as private
externs.

While working on this, I realized that our `-alias` handling did not
cover the cases where the aliased symbol is a common or dylib symbol,
nor the case where we have an undefined that gets treated specially and
converted to a defined later on. My N_INDR handling neglects this too
for now; I've added checks and TODO messages for these.

`N_INDR` symbols cropped up as part of our attempt to link swift-stdlib.

Reviewed By: #lld-macho, thakis, thevinster

Differential Revision: https://reviews.llvm.org/D133825
2022-09-15 22:57:15 -04:00
..
Arch [lld-macho] Simplify linker optimization hint processing 2022-09-06 08:19:08 +02:00
CMakeLists.txt [lld-macho][reland] Initial support for EH Frames 2022-06-13 07:45:16 -04:00
ConcatOutputSection.cpp Replace to_hexString by touhexstr [NFC] 2022-06-16 17:29:50 +02:00
ConcatOutputSection.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
Config.h [lld-macho] Support synthesizing __TEXT,__init_offsets 2022-08-31 10:13:45 +02:00
Driver.cpp [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
Driver.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
DriverUtils.cpp [lld/mac] Add support for $ld$previous symbols with explicit symbol name 2022-07-28 20:35:48 -04:00
Dwarf.cpp [lld-macho] Support creating N_SO stab for DWARF5 compile units 2022-07-28 09:58:26 +02:00
Dwarf.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
EhFrame.cpp [lld-macho] Support EH frame pointer encodings that use sdata4 2022-07-31 20:16:33 -04:00
EhFrame.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
ExportTrie.cpp Reland "[lld-macho] Avoid using bump-alloc in TrieBuider"" 2022-03-14 19:33:13 -04:00
ExportTrie.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
ICF.cpp [lld-macho] Have ICF dedup explicitly-defined selrefs 2022-09-14 17:59:22 -04:00
ICF.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
InputFiles.cpp [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
InputFiles.h [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
InputSection.cpp [lld-macho] Have ICF dedup explicitly-defined selrefs 2022-09-14 17:59:22 -04:00
InputSection.h [lld-macho] Have ICF dedup explicitly-defined selrefs 2022-09-14 17:59:22 -04:00
LTO.cpp [lld-macho] Hardlink -object_path_lto files to cache when possible 2022-09-07 14:27:43 -04:00
LTO.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
MachOStructs.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
MapFile.cpp [lld-macho][nfci] Don't include null terminator in StringRefs 2022-09-13 21:23:48 -04:00
MapFile.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
MarkLive.cpp [lld-macho][nfc] Simplify MarkLive.cpp using `if constexpr` 2022-08-31 10:40:04 -04:00
MarkLive.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
ObjC.cpp [lld/macho] Fixes the -ObjC flag 2022-05-11 17:00:39 -07:00
ObjC.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
Options.td [lld-macho] Support synthesizing __TEXT,__init_offsets 2022-08-31 10:13:45 +02:00
OutputSection.cpp [lld-macho][nfc] Run clang-format on lld/MachO/*.{h,cpp} 2022-05-24 08:36:20 +07:00
OutputSection.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
OutputSegment.cpp [lld-macho] Set the SG_READ_ONLY flag on __DATA_CONST 2022-08-31 17:04:20 +02:00
OutputSegment.h [lld-macho] Set the SG_READ_ONLY flag on __DATA_CONST 2022-08-31 17:04:20 +02:00
Relocations.cpp [lld-macho] Diagnose unaligned arm64 PAGEOFF12 relocations 2022-09-05 16:58:51 +02:00
Relocations.h [lld-macho] Diagnose unaligned arm64 PAGEOFF12 relocations 2022-09-05 16:58:51 +02:00
SectionPriorities.cpp Use value instead of getValue (NFC) 2022-07-15 20:03:13 -07:00
SectionPriorities.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
SymbolTable.cpp [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
SymbolTable.h [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
Symbols.cpp [lld-macho] Use source information in duplicate symbol errors 2022-06-23 11:07:15 -04:00
Symbols.h [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
SyntheticSections.cpp [lld-macho][nfci] Don't include null terminator in StringRefs 2022-09-13 21:23:48 -04:00
SyntheticSections.h [lld-macho] Sort data-in-code entries 2022-09-13 19:08:35 +02:00
Target.cpp [lld-macho][nfc] Create Relocations.{h,cpp} for relocation-specific code 2021-03-11 13:28:09 -05:00
Target.h [lld-macho] Simplify linker optimization hint processing 2022-09-06 08:19:08 +02:00
UnwindInfoSection.cpp Drop empty string literals from static_assert (NFC) 2022-09-03 11:17:47 -07:00
UnwindInfoSection.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
Writer.cpp lld: Include name of output file in "failed to write output" diag 2022-09-14 14:57:47 -04:00
Writer.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00