Add predefined macro __gnu_linux__ for proper aux-triple

Clang predefine macro __linx__ for aux-triple with Linux OS
but does not predefine macro __gnu_linux__. This causes
some compilation error for certain applications, e.g. Eigen.

This patch fixes that.

Differential Revision: https://reviews.llvm.org/D51441

llvm-svn: 340967
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 01a74d1..3a488bb 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -1128,6 +1128,7 @@
   if (AuxTriple.getOS() == llvm::Triple::Linux) {
     Builder.defineMacro("__ELF__");
     Builder.defineMacro("__linux__");
+    Builder.defineMacro("__gnu_linux__");
     // Used in features.h. If this is omitted, math.h doesn't declare float
     // versions of the functions in bits/mathcalls.h.
     if (LangOpts.CPlusPlus)