llvm-capstone/lld/MachO
Kyungwoo Lee 77e204c7b0
[lld-macho][arm64] implement -objc_stubs_small (#78665)
This patch implements `-objc_stubs_small` targeting arm64, aiming to
align with ld64's behavior.
1. `-objc_stubs_fast`: As previously implemented, this always uses the
Global Offset Table (GOT) to invoke `objc_msgSend`. The alignment of the
objc stub is 32 bytes.
2. `-objc_stubs_small`: This behavior depends on whether `objc_msgSend`
is defined. If it is, it directly jumps to `objc_msgSend`. If not, it
creates another stub to indirectly jump to `objc_msgSend`, minimizing
the size. The alignment of the objc stub in this case is 4 bytes.
2024-01-23 07:31:34 -08:00
..
Arch [lld-macho][arm64] implement -objc_stubs_small (#78665) 2024-01-23 07:31:34 -08:00
CMakeLists.txt [lld-macho] Remove linking bitcode support 2023-05-30 14:47:11 -07:00
ConcatOutputSection.cpp [lld-macho] Remove partially supported 32-bit ARM arch 2023-05-20 13:06:03 -07:00
ConcatOutputSection.h
Config.h [NFC][CodeGen] Change CodeGenOpt::Level/CodeGenFileType into enum classes (#66295) 2023-09-14 14:10:14 -07:00
Driver.cpp [lld-macho][arm64] implement -objc_stubs_small (#78665) 2024-01-23 07:31:34 -08:00
Driver.h [lld-macho] Postprocess LC Linker Option 2023-08-13 13:39:04 -07:00
DriverUtils.cpp [lld] Use SmallString::operator std::string (NFC) 2024-01-22 00:13:23 -08:00
Dwarf.cpp
Dwarf.h [lld] Change Optional to std::optional 2022-11-27 17:25:34 -08:00
EhFrame.cpp
EhFrame.h [lld-macho] Change most Optional to std::optional 2022-11-27 16:54:07 -08:00
ExportTrie.cpp [lld-macho] Support re-exports of individual symbols 2023-03-27 16:39:37 -04:00
ExportTrie.h
ICF.cpp [lld-macho] Switch to xxh3_64bits 2023-07-19 09:58:44 -07:00
ICF.h [lld/mac] Use C++17 nested namespace syntax in most places 2022-08-08 07:11:17 -04:00
InputFiles.cpp [ADT] Rename SmallString::{starts,ends}with to {starts,ends}_with (#74916) 2023-12-09 14:28:45 -08:00
InputFiles.h lld/MachO: Fix two typos to cycle bots 2023-12-22 12:06:38 -05:00
InputSection.cpp [lld-macho] Switch to xxh3_64bits 2023-07-19 09:58:44 -07:00
InputSection.h [lld-macho][re-land] Warn on method name collisions from category definitions 2023-03-30 14:33:42 -04:00
Layout.h [lld-macho][re-land] Warn on method name collisions from category definitions 2023-03-30 14:33:42 -04:00
LTO.cpp [NFC][LLD] Refactor some copy-paste into the Common library (#67598) 2023-09-28 00:06:48 +02:00
LTO.h [lld-macho] Avoid running LTO pipeline for no files 2023-03-03 15:28:59 -08:00
MachOStructs.h
MapFile.cpp [lld-macho] Don't include zero-size private label symbols in map file 2023-03-11 01:40:14 -05:00
MapFile.h
MarkLive.cpp [lld-macho][nfc] Clean up includes 2022-10-19 13:56:24 -04:00
MarkLive.h
ObjC.cpp [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
ObjC.h [lld-macho][re-land] Warn on method name collisions from category definitions 2023-03-30 14:33:42 -04:00
Options.td lld/MachO: Fix two typos to cycle bots 2023-12-22 12:06:38 -05:00
OutputSection.cpp
OutputSection.h
OutputSegment.cpp [lld-macho] Fix __objc_stubs ordering 2022-12-13 13:23:27 -08: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][re-land] Warn on method name collisions from category definitions 2023-03-30 14:33:42 -04:00
Relocations.h [lld-macho][re-land] Warn on method name collisions from category definitions 2023-03-30 14:33:42 -04:00
SectionPriorities.cpp [lld] std::optional::value => operator*/operator-> 2022-12-17 03:19:47 +00:00
SectionPriorities.h [lld-macho] Change most Optional to std::optional 2022-11-27 16:54:07 -08:00
Symbols.cpp reland: [Demangle] make llvm::demangle take std::string_view rather than const std::string& 2023-06-06 10:18:06 -07:00
Symbols.h [lld-macho] Fixed crashes when linking with incompatible-arch archives/ 2023-08-04 09:25:59 -04:00
SymbolTable.cpp [lld-macho] Stricter Bitcode Symbol Resolution 2023-08-22 12:03:17 -07:00
SymbolTable.h [lld-macho] Remove partially supported 32-bit ARM arch 2023-05-20 13:06:03 -07:00
SyntheticSections.cpp [lld-macho][arm64] implement -objc_stubs_small (#78665) 2024-01-23 07:31:34 -08:00
SyntheticSections.h [lld-macho][arm64] implement -objc_stubs_small (#78665) 2024-01-23 07:31:34 -08:00
Target.cpp
Target.h [lld-macho][arm64] implement -objc_stubs_small (#78665) 2024-01-23 07:31:34 -08:00
UnwindInfoSection.cpp [Support] Change MapVector's default template parameter to SmallVector<*, 0> 2023-07-24 22:04:03 -07:00
UnwindInfoSection.h [lld-macho][nfc] Clean up includes 2022-10-19 13:56:24 -04:00
Writer.cpp [lld-macho] Use fixed chunk size for UUID 2023-07-19 17:24:36 -07:00
Writer.h