aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2021-08-27 07:52:40 +1000
committerLang Hames <lhames@gmail.com>2021-08-27 14:41:58 +1000
commitb749ef9e2241542c0b57f2fe77db200ef444df5c (patch)
treed0737b4b0e00f7050f88d40224232d77ea497214 /llvm/tools/llvm-jitlink/llvm-jitlink.cpp
parent2e6a4fce356ac5ba2e88dac1b8ba6a1dfd033f0e (diff)
downloadllvm-b749ef9e2241542c0b57f2fe77db200ef444df5c.zip
llvm-b749ef9e2241542c0b57f2fe77db200ef444df5c.tar.gz
llvm-b749ef9e2241542c0b57f2fe77db200ef444df5c.tar.bz2
[ORC][ORC-RT] Reapply "Introduce ELF/*nix Platform and runtime..." with fixes.
This reapplies e256445bfff, which was reverted in 45ac5f54418 due to bot errors (e.g. https://lab.llvm.org/buildbot/#/builders/112/builds/8599). The issue that caused the bot failure was fixed in 2e6a4fce356.
Diffstat (limited to 'llvm/tools/llvm-jitlink/llvm-jitlink.cpp')
-rw-r--r--llvm/tools/llvm-jitlink/llvm-jitlink.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
index ac2f378..dd97baf 100644
--- a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
+++ b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp
@@ -16,6 +16,7 @@
#include "llvm/BinaryFormat/Magic.h"
#include "llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h"
+#include "llvm/ExecutionEngine/Orc/ELFNixPlatform.h"
#include "llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h"
#include "llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h"
#include "llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h"
@@ -927,6 +928,14 @@ Session::Session(std::unique_ptr<ExecutorProcessControl> EPC, Error &Err)
Err = P.takeError();
return;
}
+ } else if (TT.isOSBinFormatELF() && !OrcRuntime.empty()) {
+ if (auto P =
+ ELFNixPlatform::Create(ES, ObjLayer, *MainJD, OrcRuntime.c_str()))
+ ES.setPlatform(std::move(*P));
+ else {
+ Err = P.takeError();
+ return;
+ }
} else if (!NoExec && !TT.isOSWindows() && !TT.isOSBinFormatMachO()) {
ObjLayer.addPlugin(std::make_unique<EHFrameRegistrationPlugin>(
ES, ExitOnErr(EPCEHFrameRegistrar::Create(this->ES))));