aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp7
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;