From fe32bb78333e92278bc974044d22dc7f64f134ba Mon Sep 17 00:00:00 2001 From: Alp Toker Date: Thu, 23 Jan 2014 19:57:16 +0000 Subject: Replace the interim lli build fix with something cleaner Eliminates the LLI_BUILDING_CHILD build hack from r199885. Also add a FIXME to remove code that tricks the tests into passing when the feature fails to work. Please don't do stuff like this, the tests exist for a reason! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199929 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lli/lli.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'tools/lli/lli.cpp') diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp index e36d917958..7e928bebff 100644 --- a/tools/lli/lli.cpp +++ b/tools/lli/lli.cpp @@ -17,6 +17,7 @@ #include "llvm/IR/LLVMContext.h" #include "RemoteMemoryManager.h" #include "RemoteTarget.h" +#include "RemoteTargetExternal.h" #include "llvm/ADT/Triple.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/CodeGen/LinkAllCodegenComponents.h" @@ -663,21 +664,23 @@ int main(int argc, char **argv, char * const *envp) { OwningPtr Target; if (!ChildExecPath.empty()) { // Remote execution on a child process - if (!RemoteTarget::hostSupportsExternalRemoteTarget()) { - errs() << "Warning: host does not support external remote targets.\n" - << " Defaulting to simulated remote execution\n"; - Target.reset(RemoteTarget::createRemoteTarget()); - } else { - if (!sys::fs::can_execute(ChildExecPath)) { - errs() << "Unable to find usable child executable: '" << ChildExecPath - << "'\n"; - return -1; - } - Target.reset(RemoteTarget::createExternalRemoteTarget(ChildExecPath)); +#ifndef LLVM_ON_UNIX + // FIXME: Remove this pointless fallback mode which causes tests to "pass" + // on platforms where they should XFAIL. + errs() << "Warning: host does not support external remote targets.\n" + << " Defaulting to simulated remote execution\n"; + Target.reset(new RemoteTarget); +#else + if (!sys::fs::can_execute(ChildExecPath)) { + errs() << "Unable to find usable child executable: '" << ChildExecPath + << "'\n"; + return -1; } + Target.reset(new RemoteTargetExternal(ChildExecPath)); +#endif } else { // No child process name provided, use simulated remote execution. - Target.reset(RemoteTarget::createRemoteTarget()); + Target.reset(new RemoteTarget); } // Give the memory manager a pointer to our remote target interface object. -- cgit v1.2.3