1Pull in r198912 from upstream clang trunk (by Jakob Stoklund Olesen): 2 3 Give the linker the right ELF type for SPARC targets. 4 5Introduced here: http://svnweb.freebsd.org/changeset/base/262262 6 7Index: tools/clang/lib/Driver/Tools.cpp 8=================================================================== 9--- tools/clang/lib/Driver/Tools.cpp 10+++ tools/clang/lib/Driver/Tools.cpp 11@@ -6461,6 +6461,10 @@ void gnutools::Link::ConstructJob(Compilation &C, 12 CmdArgs.push_back("elf32ppclinux"); 13 else if (ToolChain.getArch() == llvm::Triple::ppc64) 14 CmdArgs.push_back("elf64ppc"); 15+ else if (ToolChain.getArch() == llvm::Triple::sparc) 16+ CmdArgs.push_back("elf32_sparc"); 17+ else if (ToolChain.getArch() == llvm::Triple::sparcv9) 18+ CmdArgs.push_back("elf64_sparc"); 19 else if (ToolChain.getArch() == llvm::Triple::mips) 20 CmdArgs.push_back("elf32btsmip"); 21 else if (ToolChain.getArch() == llvm::Triple::mipsel) 22Index: tools/clang/test/Driver/linux-ld.c 23=================================================================== 24--- tools/clang/test/Driver/linux-ld.c 25+++ tools/clang/test/Driver/linux-ld.c 26@@ -384,6 +384,18 @@ 27 // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1" 28 // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}" 29 // 30+// RUN: %clang %s -### -o %t.o 2>&1 \ 31+// RUN: --target=sparc-linux-gnu \ 32+// RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s 33+// CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}" 34+// CHECK-SPARCV8: "-m" "elf32_sparc" 35+// 36+// RUN: %clang %s -### -o %t.o 2>&1 \ 37+// RUN: --target=sparcv9-linux-gnu \ 38+// RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s 39+// CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}" 40+// CHECK-SPARCV9: "-m" "elf64_sparc" 41+// 42 // Thoroughly exercise the Debian multiarch environment. 43 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 44 // RUN: --target=i686-linux-gnu \ 45