diff --git a/tools/osx/crosstool/wrapped_clang.cc b/tools/osx/crosstool/wrapped_clang.cc index febf3cb246cbec..ba3ff871e2b437 100644 --- a/tools/osx/crosstool/wrapped_clang.cc +++ b/tools/osx/crosstool/wrapped_clang.cc @@ -108,16 +108,6 @@ std::vector ConvertToCArgs(const std::vector &args) { return c_args; } -// Turn our current process into a new process. Avoids fork overhead. -// Never returns. -void ExecProcess(const std::vector &args) { - std::vector exec_argv = ConvertToCArgs(args); - execv(args[0].c_str(), const_cast(exec_argv.data())); - std::cerr << "Error executing child process.'" << args[0] << "'. " - << strerror(errno) << "\n"; - abort(); -} - // Spawns a subprocess for given arguments args. The first argument is used // for the executable path. void RunSubProcess(const std::vector &args) { @@ -407,19 +397,13 @@ int main(int argc, char *argv[]) { } } + RunSubProcess(invocation_args); if (!postprocess) { - ExecProcess(invocation_args); - std::cerr << "ExecProcess should not return. Please fix!\n"; - abort(); + return 0; } - RunSubProcess(invocation_args); - std::vector dsymutil_args = { "/usr/bin/xcrun", "dsymutil", linked_binary, "-o", dsym_path, "--flat"}; - ExecProcess(dsymutil_args); - std::cerr << "ExecProcess should not return. Please fix!\n"; - abort(); - + RunSubProcess(dsymutil_args); return 0; }