From 200390c3c17196b9c0f34453eeb85175015b2283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 8 Feb 2022 10:48:32 +0200 Subject: [PATCH] [clang] [MinGW] Recognize -lcrtdll as a library replacing -lmsvcrt Differential Revision: https://reviews.llvm.org/D119234 (cherry picked from commit 079b6d02d1f52301e2d3276fadba822bf87b75b2) --- clang/lib/Driver/ToolChains/MinGW.cpp | 4 +++- clang/test/Driver/mingw-msvcrt.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp index 0501f973740444..ceeaa79bc2021d 100644 --- a/clang/lib/Driver/ToolChains/MinGW.cpp +++ b/clang/lib/Driver/ToolChains/MinGW.cpp @@ -86,7 +86,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") || StringRef(Lib).startswith("ucrt")) + if (StringRef(Lib).startswith("msvcr") || + StringRef(Lib).startswith("ucrt") || + StringRef(Lib).startswith("crtdll")) return; CmdArgs.push_back("-lmsvcrt"); } diff --git a/clang/test/Driver/mingw-msvcrt.c b/clang/test/Driver/mingw-msvcrt.c index bb4813ca33a5a6..48a30d8469cb6f 100644 --- a/clang/test/Driver/mingw-msvcrt.c +++ b/clang/test/Driver/mingw-msvcrt.c @@ -2,6 +2,7 @@ // RUN: %clang -v -target i686-pc-windows-gnu -lmsvcr120 -### %s 2>&1 | FileCheck -check-prefix=CHECK_MSVCR120 %s // RUN: %clang -v -target i686-pc-windows-gnu -lucrtbase -### %s 2>&1 | FileCheck -check-prefix=CHECK_UCRTBASE %s // RUN: %clang -v -target i686-pc-windows-gnu -lucrt -### %s 2>&1 | FileCheck -check-prefix=CHECK_UCRT %s +// RUN: %clang -v -target i686-pc-windows-gnu -lcrtdll -### %s 2>&1 | FileCheck -check-prefix=CHECK_CRTDLL %s // CHECK_DEFAULT: "-lmingwex" "-lmsvcrt" "-ladvapi32" // CHECK_DEFAULT-SAME: "-lmsvcrt" "-lkernel32" "{{.*}}crtend.o" @@ -11,3 +12,5 @@ // CHECK_UCRTBASE-SAME: "-lmingwex" "-ladvapi32" // CHECK_UCRT: "-lucrt" // CHECK_UCRT-SAME: "-lmingwex" "-ladvapi32" +// CHECK_CRTDLL: "-lcrtdll" +// CHECK_CRTDLL-SAME: "-lmingwex" "-ladvapi32"