diff options
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 0519255..01a74d1 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -1106,14 +1106,19 @@ static void InitializePredefinedAuxMacros(const TargetInfo &AuxTI, auto AuxTriple = AuxTI.getTriple(); // Define basic target macros needed by at least bits/wordsize.h and - // bits/mathinline.h + // bits/mathinline.h. + // On PowerPC, explicitely set _CALL_ELF macro needed for gnu/stubs.h. switch (AuxTriple.getArch()) { case llvm::Triple::x86_64: Builder.defineMacro("__x86_64__"); break; case llvm::Triple::ppc64: + Builder.defineMacro("__powerpc64__"); + Builder.defineMacro("_CALL_ELF", "1"); + break; case llvm::Triple::ppc64le: Builder.defineMacro("__powerpc64__"); + Builder.defineMacro("_CALL_ELF", "2"); break; default: break; |