diff options
author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2009-07-14 19:10:55 +0000 |
---|---|---|
committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2009-07-14 19:10:55 +0000 |
commit | 699220b64fd6335cc678f830bb35aa5952d354e7 (patch) | |
tree | 2b92f8edc281612c4889411eaa32b347ef11361c | |
parent | 5e25dd388c0b23d34d44c4300e7d27dac9be1f39 (diff) | |
download | external_llvm-699220b64fd6335cc678f830bb35aa5952d354e7.zip external_llvm-699220b64fd6335cc678f830bb35aa5952d354e7.tar.gz external_llvm-699220b64fd6335cc678f830bb35aa5952d354e7.tar.bz2 |
Fix for bugpoint -remote-client
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75665 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/bugpoint/ToolRunner.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp index e00a2b9..503a5dd 100644 --- a/tools/bugpoint/ToolRunner.cpp +++ b/tools/bugpoint/ToolRunner.cpp @@ -635,6 +635,7 @@ int GCC::ExecuteProgram(const std::string &ProgramFile, std::vector<const char*> ProgramArgs; + std::string Exec; if (RemoteClientPath.isEmpty()) ProgramArgs.push_back(OutputBinary.c_str()); else { @@ -650,10 +651,10 @@ int GCC::ExecuteProgram(const std::string &ProgramFile, ProgramArgs.push_back(RemoteExtra.c_str()); } + // Full path to the binary char* env_pwd = getenv("PWD"); - std::string Exec = "cd "; Exec += env_pwd; - Exec += "; ./"; + Exec += "/"; Exec += OutputBinary.c_str(); ProgramArgs.push_back(Exec.c_str()); } @@ -673,14 +674,21 @@ int GCC::ExecuteProgram(const std::string &ProgramFile, FileRemover OutputBinaryRemover(OutputBinary); - if (RemoteClientPath.isEmpty()) + if (RemoteClientPath.isEmpty()) { + DEBUG(std::cerr << "<run locally>" << std::flush;); return RunProgramWithTimeout(OutputBinary, &ProgramArgs[0], sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile), Timeout, MemoryLimit); - else - return RunProgramWithTimeout(sys::Path(RemoteClientPath), &ProgramArgs[0], - sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile), - Timeout, MemoryLimit); + } else { + std::cout << "<run remotely>" << std::flush; + int RemoteClientStatus = RunProgramWithTimeout(sys::Path(RemoteClientPath), + &ProgramArgs[0], sys::Path(InputFile), sys::Path(OutputFile), + sys::Path(OutputFile), Timeout, MemoryLimit); + if (RemoteClientStatus != 0) { + std::cerr << "Remote Client failed with an error: " << + RemoteClientStatus << ".\n" << std::flush; + } + } } int GCC::MakeSharedObject(const std::string &InputFile, FileType fileType, |