From 1abc10223b37d9ead3454a06e176b4b65370a2be Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 27 Jan 2020 08:37:56 +0200 Subject: Improve process run_*() API --- libbuild2/cc/gcc.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'libbuild2/cc/gcc.cxx') 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); -- cgit v1.1