diff --git a/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll b/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll index 99c2fe57f69..97932bc389a 100644 --- a/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll @@ -1,5 +1,6 @@ ; RUN: %lli_mcjit -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target %s -; XFAIL: mips +; XFAIL: * +; This test should fail until remote symbol resolution is supported. define i32 @main() nounwind { entry: diff --git a/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll b/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll index 42e9d77e569..88faf21adb1 100644 --- a/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll @@ -1,5 +1,6 @@ ; RUN: %lli_mcjit -remote-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s -; XFAIL: mips, i686, i386, aarch64, arm +; XFAIL: * +; This function should fail until remote symbol resolution is supported. define i32 @main() nounwind { entry: diff --git a/tools/lli/RemoteMemoryManager.h b/tools/lli/RemoteMemoryManager.h index eabe042fff0..16d0a808b9b 100644 --- a/tools/lli/RemoteMemoryManager.h +++ b/tools/lli/RemoteMemoryManager.h @@ -78,7 +78,7 @@ public: // interface does support this, but clients must provide their own // mechanism for finding remote symbol addresses. MCJIT will resolve // symbols from Modules it contains. - uint64_t getSymbolAddress(const std::string &Name) {} + uint64_t getSymbolAddress(const std::string &Name) { return 0; } void notifyObjectLoaded(ExecutionEngine *EE, const ObjectImage *Obj); diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp index 5578a1da31a..7117707691f 100644 --- a/tools/lli/lli.cpp +++ b/tools/lli/lli.cpp @@ -398,18 +398,18 @@ int main(int argc, char **argv, char * const *envp) { return -1; } - // If the program doesn't explicitly call exit, we will need the Exit - // function later on to make an explicit call, so get the function now. - Constant *Exit = Mod->getOrInsertFunction("exit", Type::getVoidTy(Context), - Type::getInt32Ty(Context), - NULL); - // Reset errno to zero on entry to main. errno = 0; int Result; if (!RemoteMCJIT) { + // If the program doesn't explicitly call exit, we will need the Exit + // function later on to make an explicit call, so get the function now. + Constant *Exit = Mod->getOrInsertFunction("exit", Type::getVoidTy(Context), + Type::getInt32Ty(Context), + NULL); + // Run static constructors. if (UseMCJIT && !ForceInterpreter) { // Give MCJIT a chance to apply relocations and set page permissions.