]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/patches/patch-r262262-clang-r198923-sparc.diff
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / patches / patch-r262262-clang-r198923-sparc.diff
1 Pull in r198923 from upstream clang trunk (by Jakob Stoklund Olesen):
2
3   Use the right dynamic linker for SPARC Linux executables.
4
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262262
6
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";
27    else
28      return "/lib64/ld-linux-x86-64.so.2";
29  }
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
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 \