File tree Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -85,11 +85,18 @@ void tools::MinGW::Linker::AddLibGCC(const ArgList &Args,
85
85
86
86
CmdArgs.push_back (" -lmoldname" );
87
87
CmdArgs.push_back (" -lmingwex" );
88
- for (auto Lib : Args.getAllArgValues (options::OPT_l))
88
+ for (auto Lib : Args.getAllArgValues (options::OPT_l)) {
89
89
if (StringRef (Lib).starts_with (" msvcr" ) ||
90
90
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));
92
97
return ;
98
+ }
99
+ }
93
100
CmdArgs.push_back (" -lmsvcrt" );
94
101
}
95
102
Original file line number Diff line number Diff line change 7
7
// CHECK_DEFAULT: "-lmingwex" "-lmsvcrt" "-ladvapi32"
8
8
// CHECK_DEFAULT-SAME: "-lmsvcrt" "-lkernel32" "{{.*}}crtend.o"
9
9
// CHECK_MSVCR120: "-lmsvcr120"
10
- // CHECK_MSVCR120-SAME: "-lmingwex" "-ladvapi32"
10
+ // CHECK_MSVCR120-SAME: "-lmingwex" "-lmsvcr120" "- ladvapi32"
11
11
// CHECK_UCRTBASE: "-lucrtbase"
12
- // CHECK_UCRTBASE-SAME: "-lmingwex" "-ladvapi32"
12
+ // CHECK_UCRTBASE-SAME: "-lmingwex" "-lucrtbase" "- ladvapi32"
13
13
// CHECK_UCRT: "-lucrt"
14
- // CHECK_UCRT-SAME: "-lmingwex" "-ladvapi32"
14
+ // CHECK_UCRT-SAME: "-lmingwex" "-lucrt" "- ladvapi32"
15
15
// CHECK_CRTDLL: "-lcrtdll"
16
- // CHECK_CRTDLL-SAME: "-lmingwex" "-ladvapi32"
16
+ // CHECK_CRTDLL-SAME: "-lmingwex" "-lcrtdll" "- ladvapi32"
You can’t perform that action at this time.
0 commit comments