diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index bd896eeeaf0e1598027d3b8e67e4c9382abc7832..9c0cf68a8bc6f32eb42283155b9b6e76c74bdc2d 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -97,7 +97,8 @@ static QByteArray runGcc(const FileName &gcc, const QStringList &arguments, cons
         return QByteArray();
     }
 
-    const QByteArray stdErr = cpp.readAllStandardError();
+    const QByteArray stdErr = SynchronousProcess::normalizeNewlines(
+                QString::fromLocal8Bit(cpp.readAllStandardError())).toLocal8Bit();
     if (cpp.exitCode() != 0) {
         qWarning().nospace()
             << Q_FUNC_INFO << ": " << gcc.toUserOutput() << ' '
@@ -106,7 +107,8 @@ static QByteArray runGcc(const FileName &gcc, const QStringList &arguments, cons
         return QByteArray();
     }
 
-    QByteArray data = cpp.readAllStandardOutput();
+    QByteArray data = SynchronousProcess::normalizeNewlines(
+                QString::fromLocal8Bit(cpp.readAllStandardOutput())).toLocal8Bit();
     if (!data.isEmpty() && !data.endsWith('\n'))
         data.append('\n');
     data.append(stdErr);