--- a/lib/Basic/Targets/PPC.h +++ b/lib/Basic/Targets/PPC.h @@ -376,11 +376,11 @@ public: if ((Triple.getArch() == llvm::Triple::ppc64le)) { resetDataLayout("e-m:e-i64:64-n32:64"); - ABI = "elfv2"; } else { resetDataLayout("E-m:e-i64:64-n32:64"); - ABI = Triple.getEnvironment() == llvm::Triple::ELFv2 ? "elfv2" : "elfv1"; } + /* default to elfv2 always, ignore llvm's elfv2 triples */ + ABI = "elfv2"; if (Triple.getOS() == llvm::Triple::AIX) SuitableAlign = 64; --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -1804,7 +1804,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args, break; } - ABIName = "elfv1"; + ABIName = "elfv2"; break; } case llvm::Triple::ppc64le: