]> granicus.if.org Git - clang/commitdiff
Driver: support -fuse-ld= on cross windows
authorSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 28 Oct 2015 04:45:58 +0000 (04:45 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Wed, 28 Oct 2015 04:45:58 +0000 (04:45 +0000)
Update the linker selection to support the `-fuse-ld=` option for selecting a
linker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@251493 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/Driver/Inputs/Windows/ARM/8.1/usr/bin/ld.lld-link2 [new file with mode: 0755]
test/Driver/windows-cross.c

index 44609aa4bda54ef3e6cf109d547285e119d2f424..1c6f86f8b5c892b291d4b607734aa00f318c8c41 100644 (file)
@@ -9750,8 +9750,7 @@ void CrossWindows::Linker::ConstructJob(Compilation &C, const JobAction &JA,
     }
   }
 
-  const std::string Linker = TC.GetProgramPath("ld");
-  Exec = Args.MakeArgString(Linker);
+  Exec = Args.MakeArgString(TC.GetLinkerPath());
 
   C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
 }
diff --git a/test/Driver/Inputs/Windows/ARM/8.1/usr/bin/ld.lld-link2 b/test/Driver/Inputs/Windows/ARM/8.1/usr/bin/ld.lld-link2
new file mode 100755 (executable)
index 0000000..e69de29
index 979f68539c01ea09c79d3b32ba9c8b2f621d39b3..7bc9ac72b4ad217ad071fb09d02bdcccf7bd5930 100644 (file)
@@ -38,3 +38,7 @@
 
 // CHECK-LIBSTDCXX:  "-internal-isystem" "{{.*}}/usr/include/c++" "-internal-isystem" "{{.*}}/usr/include/c++/armv7--windows-itanium" "-internal-isystem" "{{.*}}/usr/include/c++/backwards"
 
+// RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -fuse-ld=lld-link2 -shared -o shared.dll -x c++ %s 2>&1 \
+// RUN:    | FileCheck %s --check-prefix CHECK-FUSE-LD
+// CHECK-FUSE-LD: "{{.*}}lld-link2"
+