1Pull in r198911 from upstream clang trunk (by Jakob Stoklund Olesen): 2 3 Pass -32/-64 to the assembler when building for sparc/sparc64. 4 5Introduced here: http://svnweb.freebsd.org/changeset/base/262262 6 7Index: tools/clang/test/Driver/linux-as.c 8=================================================================== 9--- tools/clang/test/Driver/linux-as.c 10+++ tools/clang/test/Driver/linux-as.c 11@@ -60,6 +60,20 @@ 12 // RUN: | FileCheck -check-prefix=CHECK-PPC-NO-MCPU %s 13 // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu" 14 // 15+// RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \ 16+// RUN: -no-integrated-as -c %s 2>&1 \ 17+// RUN: | FileCheck -check-prefix=CHECK-SPARCV9 %s 18+// CHECK-SPARCV9: as 19+// CHECK-SPARCV9: -64 20+// CHECK-SPARCV9: -o 21+// 22+// RUN: %clang -target sparc-linux -mcpu=invalid-cpu -### \ 23+// RUN: -no-integrated-as -c %s 2>&1 \ 24+// RUN: | FileCheck -check-prefix=CHECK-SPARCV8 %s 25+// CHECK-SPARCV8: as 26+// CHECK-SPARCV8: -32 27+// CHECK-SPARCV8: -o 28+// 29 // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \ 30 // RUN: | FileCheck -check-prefix=CHECK-Z-DEFAULT-ARCH %s 31 // CHECK-Z-DEFAULT-ARCH: as{{.*}} "-march=z10" 32Index: tools/clang/lib/Driver/Tools.cpp 33=================================================================== 34--- tools/clang/lib/Driver/Tools.cpp 35+++ tools/clang/lib/Driver/Tools.cpp 36@@ -6226,6 +6226,10 @@ void gnutools::Assemble::ConstructJob(Compilation 37 CmdArgs.push_back("-a64"); 38 CmdArgs.push_back("-mppc64le"); 39 CmdArgs.push_back("-many"); 40+ } else if (getToolChain().getArch() == llvm::Triple::sparc) { 41+ CmdArgs.push_back("-32"); 42+ } else if (getToolChain().getArch() == llvm::Triple::sparcv9) { 43+ CmdArgs.push_back("-64"); 44 } else if (getToolChain().getArch() == llvm::Triple::arm) { 45 StringRef MArch = getToolChain().getArchName(); 46 if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a") 47