Changes in directory llvm/tools/bugpoint:
ToolRunner.cpp updated: 1.61 -> 1.62 ToolRunner.h updated: 1.24 -> 1.25 --- Log message: Added -rsh-host and -rsh-user to support remote execution. --- Diffs of the changes: (+44 -6) ToolRunner.cpp | 46 +++++++++++++++++++++++++++++++++++++++++----- ToolRunner.h | 4 +++- 2 files changed, 44 insertions(+), 6 deletions(-) Index: llvm/tools/bugpoint/ToolRunner.cpp diff -u llvm/tools/bugpoint/ToolRunner.cpp:1.61 llvm/tools/bugpoint/ToolRunner.cpp:1.62 --- llvm/tools/bugpoint/ToolRunner.cpp:1.61 Fri Feb 16 13:11:07 2007 +++ llvm/tools/bugpoint/ToolRunner.cpp Thu May 3 13:36:15 2007 @@ -15,6 +15,7 @@ #include "ToolRunner.h" #include "llvm/Config/config.h" // for HAVE_LINK_R #include "llvm/System/Program.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" #include "llvm/Support/FileUtilities.h" #include <fstream> @@ -22,6 +23,16 @@ #include <iostream> using namespace llvm; +namespace { + cl::opt<std::string> + RSHHost("rsh-host", + cl::desc("Remote execution (rsh) host")); + + cl::opt<std::string> + RSHUser("rsh-user", + cl::desc("Remote execution (rsh) user id")); +} + ToolExecutionError::~ToolExecutionError() throw() { } /// RunProgramWithTimeout - This function provides an alternate interface to the @@ -482,7 +493,22 @@ std::vector<const char*> ProgramArgs; - ProgramArgs.push_back(OutputBinary.c_str()); + if (RSHPath.isEmpty()) + ProgramArgs.push_back(OutputBinary.c_str()); + else { + ProgramArgs.push_back(RSHPath.c_str()); + ProgramArgs.push_back(RSHHost.c_str()); + ProgramArgs.push_back("-l"); + ProgramArgs.push_back(RSHUser.c_str()); + + char* env_pwd = getenv("PWD"); + std::string Exec = "cd "; + Exec += env_pwd; + Exec += "; ./"; + Exec += OutputBinary.c_str(); + ProgramArgs.push_back(Exec.c_str()); + } + // Add optional parameters to the running program from Argv for (unsigned i=0, e = Args.size(); i != e; ++i) ProgramArgs.push_back(Args[i].c_str()); @@ -497,9 +523,15 @@ ); FileRemover OutputBinaryRemover(OutputBinary); - return RunProgramWithTimeout(OutputBinary, &ProgramArgs[0], - sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile), - Timeout, MemoryLimit); + + if (RSHPath.isEmpty()) + return RunProgramWithTimeout(OutputBinary, &ProgramArgs[0], + sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile), + Timeout, MemoryLimit); + else + return RunProgramWithTimeout(sys::Path(RSHPath), &ProgramArgs[0], + sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile), + Timeout, MemoryLimit); } int GCC::MakeSharedObject(const std::string &InputFile, FileType fileType, @@ -583,6 +615,10 @@ return 0; } + sys::Path RSHPath; + if (!RSHHost.empty()) + RSHPath = FindExecutable("rsh", ProgramPath); + Message = "Found gcc: " + GCCPath.toString() + "\n"; - return new GCC(GCCPath); + return new GCC(GCCPath, RSHPath); } Index: llvm/tools/bugpoint/ToolRunner.h diff -u llvm/tools/bugpoint/ToolRunner.h:1.24 llvm/tools/bugpoint/ToolRunner.h:1.25 --- llvm/tools/bugpoint/ToolRunner.h:1.24 Fri Feb 16 13:11:07 2007 +++ llvm/tools/bugpoint/ToolRunner.h Thu May 3 13:36:15 2007 @@ -44,7 +44,9 @@ // class GCC { sys::Path GCCPath; // The path to the gcc executable - GCC(const sys::Path &gccPath) : GCCPath(gccPath) { } + sys::Path RSHPath; // The path to the rsh executable + GCC(const sys::Path &gccPath, const sys::Path &rshPath) + : GCCPath(gccPath), RSHPath(rshPath) { } public: enum FileType { AsmFile, CFile }; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits