llvm-project/lld/MachO
Vincent Lee 58edaef3fe [lld-macho] Do not error out on dead stripped duplicate symbols
Builds that error out on duplicate symbols can still succeed if the symbols
will be dead stripped. Currently, this is the current behavior in ld64.
https://github.com/apple-oss-distributions/ld64/blob/main/src/ld/Resolver.cpp#L2018.
In order to provide an easier to path for adoption, introduce a new flag that will
retain compatibility with ld64's behavior (similar to `--deduplicate-literals`). This is
turned off by default since we do not encourage this behavior in the linker.

Reviewed By: #lld-macho, thakis, int3

Differential Revision: https://reviews.llvm.org/D134794
2022-09-30 15:09:27 -07:00
..
Arch [lld-macho] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +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] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07:00
Driver.cpp [lld-macho] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07: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] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +02:00
InputFiles.h [lld-macho] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +02:00
InputSection.cpp [lld-macho] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +02:00
InputSection.h [lld-macho] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +02: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] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07: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] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +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] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07:00
SymbolTable.h [lld-macho] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07: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] Simplify base address calculation for init offsets (NFC) 2022-09-17 10:23:05 +02: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] Parallelize linker optimization hint processing 2022-09-16 17:38:46 +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-macho] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07:00
Writer.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00