diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-12-14 04:18:15 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-12-14 04:18:15 +0000 |
commit | 44f6966ef076b223b69da893c438236ea0fc677e (patch) | |
tree | 20c7c1836f75e1c6367029d9d5e8a4e3c27567aa /lib/Support/SystemUtils.cpp | |
parent | a077c9a0a2bd037bf119d80238f681afd2f9dfcf (diff) |
For PR351:
* Remove the ExecWait function. This is now in sys::Program::ExecuteAndWait
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18927 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/SystemUtils.cpp')
-rw-r--r-- | lib/Support/SystemUtils.cpp | 81 |
1 files changed, 3 insertions, 78 deletions
diff --git a/lib/Support/SystemUtils.cpp b/lib/Support/SystemUtils.cpp index 2538c0e3cd..72e4e917ef 100644 --- a/lib/Support/SystemUtils.cpp +++ b/lib/Support/SystemUtils.cpp @@ -14,15 +14,15 @@ #include "llvm/Support/SystemUtils.h" #include "llvm/System/Program.h" -#include <unistd.h> -#include <wait.h> -#include <sys/fcntl.h> +#include "llvm/Config/fcntl.h" +#include "llvm/Config/sys/wait.h" #include <algorithm> #include <cerrno> #include <cstdlib> #include <fstream> #include <iostream> #include <signal.h> + using namespace llvm; /// isStandardOutAConsole - Return true if we can tell that the standard output @@ -160,78 +160,3 @@ int llvm::RunProgramWithTimeout(const std::string &ProgramPath, return -1; #endif } - - -// ExecWait - executes a program with the specified arguments and environment. -// It then waits for the progarm to termiante and then returns to the caller. -// -// Inputs: -// argv - The arguments to the program as an array of C strings. The first -// argument should be the name of the program to execute, and the -// last argument should be a pointer to NULL. -// -// envp - The environment passes to the program as an array of C strings in -// the form of "name=value" pairs. The last element should be a -// pointer to NULL. -// -// Outputs: -// None. -// -// Return value: -// 0 - No errors. -// 1 - The program could not be executed. -// 1 - The program returned a non-zero exit status. -// 1 - The program terminated abnormally. -// -// Notes: -// The program will inherit the stdin, stdout, and stderr file descriptors -// as well as other various configuration settings (umask). -// -// This function should not print anything to stdout/stderr on its own. It is -// a generic library function. The caller or executed program should report -// errors in the way it sees fit. -// -// This function does not use $PATH to find programs. -// -int llvm::ExecWait(const char * const old_argv[], - const char * const old_envp[]) { -#ifdef HAVE_SYS_WAIT_H - // Create local versions of the parameters that can be passed into execve() - // without creating const problems. - char ** const argv = (char ** const) old_argv; - char ** const envp = (char ** const) old_envp; - - // Create a child process. - switch (fork()) { - // An error occured: Return to the caller. - case -1: - return 1; - break; - - // Child process: Execute the program. - case 0: - execve (argv[0], argv, envp); - // If the execve() failed, we should exit and let the parent pick up - // our non-zero exit status. - exit (1); - - // Parent process: Break out of the switch to do our processing. - default: - break; - } - - // Parent process: Wait for the child process to terminate. - int status; - if ((wait (&status)) == -1) - return 1; - - // If the program exited normally with a zero exit status, return success! - if (WIFEXITED (status) && (WEXITSTATUS(status) == 0)) - return 0; -#else - std::cerr << "llvm::ExecWait not implemented on this platform!\n"; -#endif - - // Otherwise, return failure. - return 1; -} |