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)