[PATCH] D106219: [lld/mac] Change load command order to be more like ld64
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 19 12:05:00 PDT 2021
This revision was automatically updated to reflect the committed changes.
thakis marked an inline comment as done.
Closed by commit rGbcbb3066ce8a: [lld/mac] Change load command order to be more like ld64 (authored by thakis).
Herald added a project: LLVM.
Changed prior to commit:
https://reviews.llvm.org/D106219?vs=359564&id=359872#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106219/new/
https://reviews.llvm.org/D106219
Files:
lld/MachO/Writer.cpp
lld/test/MachO/load-command-sequence.s
Index: lld/test/MachO/load-command-sequence.s
===================================================================
--- lld/test/MachO/load-command-sequence.s
+++ lld/test/MachO/load-command-sequence.s
@@ -43,11 +43,13 @@
# COMMON: cmd LC_DYSYMTAB
# EXEC: cmd LC_LOAD_DYLINKER
-# EXEC: cmd LC_MAIN
# DYLIB: cmd LC_ID_DYLIB
# COMMON: cmd LC_UUID
# COMMON: cmd LC_BUILD_VERSION
+
+# EXEC: cmd LC_MAIN
+
# COMMON: cmd LC_LOAD_DYLIB
.section __TEXT,__cstring
Index: lld/MachO/Writer.cpp
===================================================================
--- lld/MachO/Writer.cpp
+++ lld/MachO/Writer.cpp
@@ -690,10 +690,6 @@
make<LCDysymtab>(symtabSection, indirectSymtabSection));
if (!config->umbrella.empty())
in.header->addLoadCommand(make<LCSubFramework>(config->umbrella));
- if (functionStartsSection)
- in.header->addLoadCommand(make<LCFunctionStarts>(functionStartsSection));
- if (dataInCodeSection)
- in.header->addLoadCommand(make<LCDataInCode>(dataInCodeSection));
if (config->emitEncryptionInfo)
in.header->addLoadCommand(make<LCEncryptionInfo<LP>>());
for (StringRef path : config->runtimePaths)
@@ -702,7 +698,6 @@
switch (config->outputType) {
case MH_EXECUTE:
in.header->addLoadCommand(make<LCLoadDylinker>());
- in.header->addLoadCommand(make<LCMain>());
break;
case MH_DYLIB:
in.header->addLoadCommand(make<LCDylib>(LC_ID_DYLIB, config->installName,
@@ -723,6 +718,10 @@
else
in.header->addLoadCommand(make<LCMinVersion>(config->platformInfo));
+ // This is down here to match ld64's load command order.
+ if (config->outputType == MH_EXECUTE)
+ in.header->addLoadCommand(make<LCMain>());
+
int64_t dylibOrdinal = 1;
DenseMap<StringRef, int64_t> ordinalForInstallName;
for (InputFile *file : inputFiles) {
@@ -789,6 +788,10 @@
}
}
+ if (functionStartsSection)
+ in.header->addLoadCommand(make<LCFunctionStarts>(functionStartsSection));
+ if (dataInCodeSection)
+ in.header->addLoadCommand(make<LCDataInCode>(dataInCodeSection));
if (codeSignatureSection)
in.header->addLoadCommand(make<LCCodeSignature>(codeSignatureSection));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106219.359872.patch
Type: text/x-patch
Size: 2168 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210719/fbd8e7b4/attachment.bin>
More information about the llvm-commits
mailing list