From 8bc8a30bdbebdb81bba3fbf5fe91b60534863d7e Mon Sep 17 00:00:00 2001 From: Shadab Naseem Date: Wed, 20 Feb 2019 12:57:27 +0530 Subject: [PATCH] scripts: gcc-wrapper: Route the GCC errors to stderr The GCC wrapper writes any error message from GCC to stdout along with the messages from the wrapper itself. This is okay for most case, but when GCC is used with -print-xxx flags, the stdout output is supposed to be taken as input to some other build command, so putting error messages in there is pretty bad. Fix this by writing error messages to stderr. Change-Id: I4656033f11ba5212fdcc884cc588f8b9d2c23419 Signed-off-by: Shadab Naseem --- scripts/gcc-wrapper.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/gcc-wrapper.py b/scripts/gcc-wrapper.py index 8a0e0af1c39a..76fb91c57264 100755 --- a/scripts/gcc-wrapper.py +++ b/scripts/gcc-wrapper.py @@ -55,7 +55,7 @@ def interpret_warning(line): line = line.rstrip('\n') m = warning_re.match(line) if m and m.group(2) not in allowed_warnings: - print "error, forbidden warning:", m.group(2) + print >> sys.stderr, "error, forbidden warning:", m.group(2) # If there is a warning, remove any object if it exists. if ofile: @@ -80,17 +80,17 @@ def run_gcc(): try: proc = subprocess.Popen(args, stderr=subprocess.PIPE) for line in proc.stderr: - print line, + print >> sys.stderr, line, interpret_warning(line) result = proc.wait() except OSError as e: result = e.errno if result == errno.ENOENT: - print args[0] + ':',e.strerror - print 'Is your PATH set correctly?' + print >> sys.stderr, args[0] + ':',e.strerror + print >> sys.stderr, 'Is your PATH set correctly?' else: - print ' '.join(args), str(e) + print >> sys.stderr, ' '.join(args), str(e) return result