https://github.com/akparmar004 updated https://github.com/llvm/llvm-project/pull/174157
>From a4ca537edaf79070878c332e19c8ec35d40d2e51 Mon Sep 17 00:00:00 2001 From: akparmar004 <[email protected]> Date: Fri, 2 Jan 2026 00:51:20 +0530 Subject: [PATCH 1/2] [Driver][Windows] Stop linking oldnames.lib for newer Windows SDKs --- clang/lib/Driver/ToolChains/MSVC.cpp | 30 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp index fcae5b7a18f34..2e6979f515f9e 100644 --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -26,12 +26,12 @@ #include <cstdio> #ifdef _WIN32 - #define WIN32_LEAN_AND_MEAN - #define NOGDI - #ifndef NOMINMAX - #define NOMINMAX - #endif - #include <windows.h> +#define WIN32_LEAN_AND_MEAN +#define NOGDI +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include <windows.h> #endif using namespace clang::driver; @@ -88,7 +88,11 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA, if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles) && !C.getDriver().IsCLMode() && !C.getDriver().IsFlangMode()) { CmdArgs.push_back("-defaultlib:libcmt"); - CmdArgs.push_back("-defaultlib:oldnames"); + bool NeedsOldNames = std::none_of( + TC.getFilePaths().begin(), TC.getFilePaths().end(), + [](const auto &P) { return P.find("10.") != llvm::StringRef::npos; }); + if (NeedsOldNames) + CmdArgs.push_back("-defaultlib:oldnames"); } // If the VC environment hasn't been configured (perhaps because the user @@ -213,8 +217,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA, // to ensure proper SEH handling. CmdArgs.push_back(Args.MakeArgString( TC.getArch() == llvm::Triple::x86 - ? "-include:___asan_seh_interceptor" - : "-include:__asan_seh_interceptor")); + ? "-include:___asan_seh_interceptor" + : "-include:__asan_seh_interceptor")); // Make sure the linker consider all object files from the dynamic runtime // thunk. CmdArgs.push_back(Args.MakeArgString( @@ -776,10 +780,10 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, // As a fallback, select default install paths. // FIXME: Don't guess drives and paths like this on Windows. const StringRef Paths[] = { - "C:/Program Files/Microsoft Visual Studio 10.0/VC/include", - "C:/Program Files/Microsoft Visual Studio 9.0/VC/include", - "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include", - "C:/Program Files/Microsoft Visual Studio 8/VC/include", + "C:/Program Files/Microsoft Visual Studio 10.0/VC/include", + "C:/Program Files/Microsoft Visual Studio 9.0/VC/include", + "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include", + "C:/Program Files/Microsoft Visual Studio 8/VC/include", "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include" }; addSystemIncludes(DriverArgs, CC1Args, Paths); >From 151af6380b6bfecd4615fed2239091491e9a3ced Mon Sep 17 00:00:00 2001 From: akparmar004 <[email protected]> Date: Fri, 2 Jan 2026 01:11:27 +0530 Subject: [PATCH 2/2] [NFC][Format] Apply clang-format to MSVC.cpp --- clang/lib/Driver/ToolChains/MSVC.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp index 2e6979f515f9e..165429e293258 100644 --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -215,8 +215,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA, llvm::is_contained(defines, "_DLL")) { // Make sure the dynamic runtime thunk is not optimized out at link time // to ensure proper SEH handling. - CmdArgs.push_back(Args.MakeArgString( - TC.getArch() == llvm::Triple::x86 + CmdArgs.push_back( + Args.MakeArgString(TC.getArch() == llvm::Triple::x86 ? "-include:___asan_seh_interceptor" : "-include:__asan_seh_interceptor")); // Make sure the linker consider all object files from the dynamic runtime @@ -616,8 +616,8 @@ static VersionTuple getMSVCVersionFromExe(const std::string &BinDir) { if (!llvm::ConvertUTF8toWide(ClExe.c_str(), ClExeWide)) return Version; - const DWORD VersionSize = ::GetFileVersionInfoSizeW(ClExeWide.c_str(), - nullptr); + const DWORD VersionSize = + ::GetFileVersionInfoSizeW(ClExeWide.c_str(), nullptr); if (VersionSize == 0) return Version; @@ -634,7 +634,7 @@ static VersionTuple getMSVCVersionFromExe(const std::string &BinDir) { return Version; const unsigned Major = (FileInfo->dwFileVersionMS >> 16) & 0xFFFF; - const unsigned Minor = (FileInfo->dwFileVersionMS ) & 0xFFFF; + const unsigned Minor = (FileInfo->dwFileVersionMS) & 0xFFFF; const unsigned Micro = (FileInfo->dwFileVersionLS >> 16) & 0xFFFF; Version = VersionTuple(Major, Minor, Micro); @@ -784,8 +784,7 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, "C:/Program Files/Microsoft Visual Studio 9.0/VC/include", "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include", "C:/Program Files/Microsoft Visual Studio 8/VC/include", - "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include" - }; + "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"}; addSystemIncludes(DriverArgs, CC1Args, Paths); #endif } @@ -894,7 +893,8 @@ static void TranslateOptArg(Arg *A, llvm::opt::DerivedArgList &DAL, DAL.AddFlagArg(A, Opts.getOption(options::OPT_fno_inline)); break; case '1': - DAL.AddFlagArg(A, Opts.getOption(options::OPT_finline_hint_functions)); + DAL.AddFlagArg(A, + Opts.getOption(options::OPT_finline_hint_functions)); break; case '2': case '3': @@ -929,11 +929,10 @@ static void TranslateOptArg(Arg *A, llvm::opt::DerivedArgList &DAL, } if (SupportsForcingFramePointer) { if (OmitFramePointer) - DAL.AddFlagArg(A, - Opts.getOption(options::OPT_fomit_frame_pointer)); + DAL.AddFlagArg(A, Opts.getOption(options::OPT_fomit_frame_pointer)); else - DAL.AddFlagArg( - A, Opts.getOption(options::OPT_fno_omit_frame_pointer)); + DAL.AddFlagArg(A, + Opts.getOption(options::OPT_fno_omit_frame_pointer)); } else { // Don't warn about /Oy- in x86-64 builds (where // SupportsForcingFramePointer is false). The flag having no effect _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
