diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 0e1292d48d5d89e1d30b78a792e0b432141ed3c0..d22599dec6153d6f4a5757c1e9201a5b90b2ea2d 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -939,6 +939,7 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts,
   // Target properties.
   if (getTriple().getArch() == llvm::Triple::ppc64le) {
     Builder.defineMacro("_LITTLE_ENDIAN");
+    Builder.defineMacro("_CALL_ELF","2");
   } else {
     if (getTriple().getOS() != llvm::Triple::NetBSD &&
         getTriple().getOS() != llvm::Triple::OpenBSD)