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