aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
diff options
context:
space:
mode:
authorKeith Smiley <keithbsmiley@gmail.com>2022-12-05 10:21:46 -0800
committerKeith Smiley <keithbsmiley@gmail.com>2022-12-12 10:21:12 -0800
commit988ab0048daf893a50019ce4056297fbaf130956 (patch)
treef3761f5630a641809845019df6e70a67ce32f18e /llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
parentfd21361a794207e01b26e1db57217b0ddad47be5 (diff)
downloadllvm-988ab0048daf893a50019ce4056297fbaf130956.zip
llvm-988ab0048daf893a50019ce4056297fbaf130956.tar.gz
llvm-988ab0048daf893a50019ce4056297fbaf130956.tar.bz2
[ORC] Extract hasInitializerSection for testing (NFC)
Based on the discussion in https://reviews.llvm.org/D130221 and https://reviews.llvm.org/D139223 Differential Revision: https://reviews.llvm.org/D139347
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp26
1 files changed, 2 insertions, 24 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp b/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
index 255aff3..1a4a451 100644
--- a/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
@@ -9,6 +9,7 @@
#include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
#include "llvm/ExecutionEngine/JITLink/EHFrameSupport.h"
#include "llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h"
+#include "llvm/ExecutionEngine/Orc/ObjectFileInterface.h"
#include "llvm/Support/MemoryBuffer.h"
#include <string>
#include <vector>
@@ -57,35 +58,12 @@ private:
LGI.SymbolFlags[ES.intern(Sym->getName())] = Flags;
}
- if ((G.getTargetTriple().isOSBinFormatMachO() && hasMachOInitSection(G)) ||
- (G.getTargetTriple().isOSBinFormatELF() && hasELFInitSection(G)))
+ if (hasInitializerSection(G))
LGI.InitSymbol = makeInitSymbol(ES, G);
return LGI;
}
- static bool hasMachOInitSection(LinkGraph &G) {
- for (auto &Sec : G.sections())
- if (Sec.getName() == "__DATA,__objc_selrefs" ||
- Sec.getName() == "__DATA,__objc_classlist" ||
- Sec.getName() == "__TEXT,__swift5_protos" ||
- Sec.getName() == "__TEXT,__swift5_proto" ||
- Sec.getName() == "__TEXT,__swift5_types" ||
- Sec.getName() == "__DATA,__mod_init_func")
- return true;
- return false;
- }
-
- static bool hasELFInitSection(LinkGraph &G) {
- for (auto &Sec : G.sections()) {
- auto SecName = Sec.getName();
- if (SecName.consume_front(".init_array") &&
- (SecName.empty() || SecName[0] == '.'))
- return true;
- }
- return false;
- }
-
static SymbolStringPtr makeInitSymbol(ExecutionSession &ES, LinkGraph &G) {
std::string InitSymString;
raw_string_ostream(InitSymString)