diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2020-01-27 08:37:56 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2020-01-27 08:39:31 +0200 |
commit | 1abc10223b37d9ead3454a06e176b4b65370a2be (patch) | |
tree | 2d30c9130bb7acf2968078ed408e1d36b70c22b0 /libbuild2/cc/gcc.cxx | |
parent | ba637925b32e85c22c9dc81820e407ebdacfe5f7 (diff) |
Improve process run_*() API
Diffstat (limited to 'libbuild2/cc/gcc.cxx')
-rw-r--r-- | libbuild2/cc/gcc.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libbuild2/cc/gcc.cxx b/libbuild2/cc/gcc.cxx index 5857709..91a04f6 100644 --- a/libbuild2/cc/gcc.cxx +++ b/libbuild2/cc/gcc.cxx @@ -219,11 +219,14 @@ namespace build2 is.close (); // Don't block. } - catch (const io_error&) + catch (const io_error& e) { - pr.wait (); - fail << "error reading " << x_lang << " compiler -print-search-dirs " - << "output"; + if (run_wait (args, pr)) + fail << "io error reading " << args[0] << " -print-search-dirs " + << "output: " << e; + + // If the child process has failed then assume the io error was caused + // by that and let run_finish() deal with it. } run_finish (args, pr); |