Skip to content

Commit 732e399

Browse files
author
git apple-llvm automerger
committed
Merge commit '1d46440e9f82' from llvm.org/release/21.x into stable/21.x
2 parents 9368218 + 1d46440 commit 732e399

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

clang/lib/Driver/ToolChains/MinGW.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,18 @@ void tools::MinGW::Linker::AddLibGCC(const ArgList &Args,
8585

8686
CmdArgs.push_back("-lmoldname");
8787
CmdArgs.push_back("-lmingwex");
88-
for (auto Lib : Args.getAllArgValues(options::OPT_l))
88+
for (auto Lib : Args.getAllArgValues(options::OPT_l)) {
8989
if (StringRef(Lib).starts_with("msvcr") ||
9090
StringRef(Lib).starts_with("ucrt") ||
91-
StringRef(Lib).starts_with("crtdll"))
91+
StringRef(Lib).starts_with("crtdll")) {
92+
std::string CRTLib = (llvm::Twine("-l") + Lib).str();
93+
// Respect the user's chosen crt variant, but still provide it
94+
// again as the last linker argument, because some of the libraries
95+
// we added above may depend on it.
96+
CmdArgs.push_back(Args.MakeArgStringRef(CRTLib));
9297
return;
98+
}
99+
}
93100
CmdArgs.push_back("-lmsvcrt");
94101
}
95102

clang/test/Driver/mingw-msvcrt.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
// CHECK_DEFAULT: "-lmingwex" "-lmsvcrt" "-ladvapi32"
88
// CHECK_DEFAULT-SAME: "-lmsvcrt" "-lkernel32" "{{.*}}crtend.o"
99
// CHECK_MSVCR120: "-lmsvcr120"
10-
// CHECK_MSVCR120-SAME: "-lmingwex" "-ladvapi32"
10+
// CHECK_MSVCR120-SAME: "-lmingwex" "-lmsvcr120" "-ladvapi32"
1111
// CHECK_UCRTBASE: "-lucrtbase"
12-
// CHECK_UCRTBASE-SAME: "-lmingwex" "-ladvapi32"
12+
// CHECK_UCRTBASE-SAME: "-lmingwex" "-lucrtbase" "-ladvapi32"
1313
// CHECK_UCRT: "-lucrt"
14-
// CHECK_UCRT-SAME: "-lmingwex" "-ladvapi32"
14+
// CHECK_UCRT-SAME: "-lmingwex" "-lucrt" "-ladvapi32"
1515
// CHECK_CRTDLL: "-lcrtdll"
16-
// CHECK_CRTDLL-SAME: "-lmingwex" "-ladvapi32"
16+
// CHECK_CRTDLL-SAME: "-lmingwex" "-lcrtdll" "-ladvapi32"

0 commit comments

Comments
 (0)