From 68c730a1b22b0f1a3015b9b3f49b53f84539164a Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 25 Sep 2017 19:24:45 +0000 Subject: [PATCH] [MinGW] Don't link -lmsvcrt if a different msvcrt version is to be linked Differential Revision: https://reviews.llvm.org/D37530 llvm-svn: 314138 --- clang/lib/Driver/ToolChains/MinGW.cpp | 3 +++ clang/test/Driver/mingw-msvcrt.c | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 clang/test/Driver/mingw-msvcrt.c diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp index 46e2289..660b0c7 100644 --- a/clang/lib/Driver/ToolChains/MinGW.cpp +++ b/clang/lib/Driver/ToolChains/MinGW.cpp @@ -82,6 +82,9 @@ void tools::MinGW::Linker::AddLibGCC(const ArgList &Args, CmdArgs.push_back("-lmoldname"); CmdArgs.push_back("-lmingwex"); + for (auto Lib : Args.getAllArgValues(options::OPT_l)) + if (StringRef(Lib).startswith("msvcr") || Lib == "ucrtbase") + return; CmdArgs.push_back("-lmsvcrt"); } diff --git a/clang/test/Driver/mingw-msvcrt.c b/clang/test/Driver/mingw-msvcrt.c new file mode 100644 index 0000000..b7c6584 --- /dev/null +++ b/clang/test/Driver/mingw-msvcrt.c @@ -0,0 +1,5 @@ +// RUN: %clang -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DEFAULT %s +// RUN: %clang -v -target i686-pc-windows-gnu -lmsvcr120 -### %s 2>&1 | FileCheck -check-prefix=CHECK_MSVCR120 %s + +// CHECK_DEFAULT: "-lmingwex" "-lmsvcrt" "-ladvapi32" +// CHECK_MSVCR120: "-lmingwex" "-ladvapi32" -- 2.7.4