patch-r262262-clang-r198923-sparc.diff revision 269012
1Pull in r198923 from upstream clang trunk (by Jakob Stoklund Olesen):
2
3  Use the right dynamic linker for SPARC Linux executables.
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@@ -6374,7 +6374,8 @@ static StringRef getLinuxDynamicLinker(const ArgLi
12                                        const toolchains::Linux &ToolChain) {
13   if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android)
14     return "/system/bin/linker";
15-  else if (ToolChain.getArch() == llvm::Triple::x86)
16+  else if (ToolChain.getArch() == llvm::Triple::x86 ||
17+           ToolChain.getArch() == llvm::Triple::sparc)
18     return "/lib/ld-linux.so.2";
19   else if (ToolChain.getArch() == llvm::Triple::aarch64)
20     return "/lib/ld-linux-aarch64.so.1";
21@@ -6399,6 +6400,8 @@ static StringRef getLinuxDynamicLinker(const ArgLi
22            ToolChain.getArch() == llvm::Triple::ppc64le ||
23            ToolChain.getArch() == llvm::Triple::systemz)
24     return "/lib64/ld64.so.1";
25+  else if (ToolChain.getArch() == llvm::Triple::sparcv9)
26+    return "/lib64/ld-linux.so.2";
27   else
28     return "/lib64/ld-linux-x86-64.so.2";
29 }
30Index: tools/clang/test/Driver/linux-ld.c
31===================================================================
32--- tools/clang/test/Driver/linux-ld.c
33+++ tools/clang/test/Driver/linux-ld.c
34@@ -389,6 +389,7 @@
35 // RUN:   | FileCheck --check-prefix=CHECK-SPARCV8 %s
36 // CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}"
37 // CHECK-SPARCV8: "-m" "elf32_sparc"
38+// CHECK-SPARCV8: "-dynamic-linker" "/lib/ld-linux.so.2"
39 //
40 // RUN: %clang %s -### -o %t.o 2>&1 \
41 // RUN:     --target=sparcv9-linux-gnu \
42@@ -395,6 +396,7 @@
43 // RUN:   | FileCheck --check-prefix=CHECK-SPARCV9 %s
44 // CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}"
45 // CHECK-SPARCV9: "-m" "elf64_sparc"
46+// CHECK-SPARCV9: "-dynamic-linker" "/lib64/ld-linux.so.2"
47 //
48 // Thoroughly exercise the Debian multiarch environment.
49 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
50