1 Pull in r198923 from upstream clang trunk (by Jakob Stoklund Olesen):
3 Use the right dynamic linker for SPARC Linux executables.
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262262
7 Index: 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";
28 return "/lib64/ld-linux-x86-64.so.2";
30 Index: tools/clang/test/Driver/linux-ld.c
31 ===================================================================
32 --- tools/clang/test/Driver/linux-ld.c
33 +++ tools/clang/test/Driver/linux-ld.c
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"
40 // RUN: %clang %s -### -o %t.o 2>&1 \
41 // RUN: --target=sparcv9-linux-gnu \
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"
48 // Thoroughly exercise the Debian multiarch environment.
49 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \