From 44f6966ef076b223b69da893c438236ea0fc677e Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Tue, 14 Dec 2004 04:18:15 +0000 Subject: [PATCH] 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 --- lib/Support/SystemUtils.cpp | 81 ++----------------------------------- 1 file changed, 3 insertions(+), 78 deletions(-) diff --git a/lib/Support/SystemUtils.cpp b/lib/Support/SystemUtils.cpp index 2538c0e3cdc..72e4e917efb 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 -#include -#include +#include "llvm/Config/fcntl.h" +#include "llvm/Config/sys/wait.h" #include #include #include #include #include #include + 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; -}