--- lib/Driver/ToolChains/Clang.cpp.orig	2024-03-13 17:42:20.994438710 +0100
+++ lib/Driver/ToolChains/Clang.cpp	2024-03-13 17:42:54.503144176 +0100
@@ -2029,13 +2029,7 @@
   const char *ABIName = nullptr;
   if (T.isOSBinFormatELF()) {
     switch (getToolChain().getArch()) {
-    case llvm::Triple::ppc64: {
-      if (T.isPPC64ELFv2ABI())
-        ABIName = "elfv2";
-      else
-        ABIName = "elfv1";
-      break;
-    }
+    case llvm::Triple::ppc64:
     case llvm::Triple::ppc64le:
       ABIName = "elfv2";
       break;
--- lib/Basic/Targets/PPC.h.orig	2024-03-13 17:38:36.204536553 +0100
+++ lib/Basic/Targets/PPC.h	2024-03-13 17:41:36.426819177 +0100
@@ -424,18 +424,16 @@
       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
     } else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
       DataLayout = "e-m:e-Fn32-i64:64-n32:64";
-      ABI = "elfv2";
     } else {
       DataLayout = "E-m:e";
       if (Triple.isPPC64ELFv2ABI()) {
-        ABI = "elfv2";
         DataLayout += "-Fn32";
       } else {
-        ABI = "elfv1";
         DataLayout += "-Fi64";
       }
       DataLayout += "-i64:64-n32:64";
     }
+    ABI = "elfv2";
 
     if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
       LongDoubleWidth = LongDoubleAlign = 64;
