[flang-commits] [flang] [clang] [flang][windows] Add option to link against specific MSVC CRT (PR #70833)
Brad King via flang-commits
flang-commits at lists.llvm.org
Thu Nov 2 09:53:15 PDT 2023
================
@@ -976,12 +976,46 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
return true;
}
-void tools::addFortranRuntimeLibs(const ToolChain &TC,
+void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) {
if (TC.getTriple().isKnownWindowsMSVCEnvironment()) {
- CmdArgs.push_back("Fortran_main.lib");
- CmdArgs.push_back("FortranRuntime.lib");
- CmdArgs.push_back("FortranDecimal.lib");
+ CmdArgs.push_back(Args.MakeArgString(
+ "/DEFAULTLIB:" + TC.getCompilerRTBasename(Args, "builtins")));
+ unsigned RTOptionID = options::OPT__SLASH_MT;
+ if (auto *rtl = Args.getLastArg(options::OPT_fms_runtime_lib_EQ)) {
+ RTOptionID = llvm::StringSwitch<unsigned>(rtl->getValue())
+ .Case("static", options::OPT__SLASH_MT)
+ .Case("static_dbg", options::OPT__SLASH_MTd)
+ .Case("dll", options::OPT__SLASH_MD)
+ .Case("dll_dbg", options::OPT__SLASH_MDd)
+ .Default(options::OPT__SLASH_MT);
----------------
bradking wrote:
Hmm. Now that I see those names on disk after building from your update, file names like `FortranRuntime.dll.lib` might be confusing since they do not actually have a corresponding `FortranRuntime.dll`. Maybe `.dynamic` was better.
https://github.com/llvm/llvm-project/pull/70833
More information about the flang-commits
mailing list