diff -ru cmake/config-ix.cmake.orig cmake/config-ix.cmake
--- cmake/config-ix.cmake.orig	2010-05-05 13:15:45.000000000 -0700
+++ cmake/config-ix.cmake	2010-05-05 13:17:16.000000000 -0700
@@ -183,7 +183,7 @@
   set(LLVM_NATIVE_ARCH X86)
 elseif (LLVM_NATIVE_ARCH STREQUAL "x86_64")
   set(LLVM_NATIVE_ARCH X86)
-elseif (LLVM_NATIVE_ARCH MATCHES "sparc")
+elseif (LLVM_NATIVE_ARCH MATCHES "sparc64")
   set(LLVM_NATIVE_ARCH Sparc)
 elseif (LLVM_NATIVE_ARCH MATCHES "powerpc")
   set(LLVM_NATIVE_ARCH PowerPC)
diff -ru lib/Support/Triple.cpp.orig lib/Support/Triple.cpp
--- lib/Support/Triple.cpp.orig	2010-05-05 13:15:44.000000000 -0700
+++ lib/Support/Triple.cpp	2010-05-05 13:16:43.000000000 -0700
@@ -32,7 +32,7 @@
   case pic16:   return "pic16";
   case ppc64:   return "powerpc64";
   case ppc:     return "powerpc";
-  case sparc:   return "sparc";
+  case sparc:   return "sparc64";
   case sparcv9: return "sparcv9";
   case systemz: return "s390x";
   case tce:     return "tce";
@@ -66,7 +66,7 @@
   case mblaze:  return "mblaze";
 
   case sparcv9:
-  case sparc:   return "sparc";
+  case sparc:   return "sparc64";
 
   case x86:
   case x86_64:  return "x86";
@@ -132,7 +132,7 @@
     return ppc;
   if (Name == "mblaze")
     return mblaze;
-  if (Name == "sparc")
+  if (Name == "sparc64")
     return sparc;
   if (Name == "sparcv9")
     return sparcv9;
@@ -261,7 +261,7 @@
   else if (ArchName == "mipsel" || ArchName == "mipsallegrexel" ||
            ArchName == "psp")
     Arch = mipsel;
-  else if (ArchName == "sparc")
+  else if (ArchName == "sparc64")
     Arch = sparc;
   else if (ArchName == "sparcv9")
     Arch = sparcv9;
diff -ru lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp.orig lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
--- lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp.orig	2010-05-05 13:15:45.000000000 -0700
+++ lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp	2010-05-05 13:17:28.000000000 -0700
@@ -16,6 +16,6 @@
 Target llvm::TheSparcV9Target;
 
 extern "C" void LLVMInitializeSparcTargetInfo() { 
-  RegisterTarget<Triple::sparc> X(TheSparcTarget, "sparc", "Sparc");
+  RegisterTarget<Triple::sparc> X(TheSparcTarget, "sparc64", "Sparc");
   RegisterTarget<Triple::sparcv9> Y(TheSparcV9Target, "sparcv9", "Sparc V9");
 }
