https://github.com/akshaydubey05 updated https://github.com/llvm/llvm-project/pull/204990
>From b1d3a777edf662990fc05c4259908e5645c49af5 Mon Sep 17 00:00:00 2001 From: akshaydubey05 <[email protected]> Date: Sun, 21 Jun 2026 21:57:09 +0530 Subject: [PATCH 1/2] [clangd] Log environment variables that influence compilation at startup Print env vars like INCLUDE, CPATH, LIBRARY_PATH etc. at startup to help diagnose missing system include issues, especially on Windows. Fixes https://github.com/clangd/clangd/issues/2657 --- clang-tools-extra/clangd/tool/ClangdMain.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 549b1ae8d7980..af6022856339b 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -912,6 +912,18 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var log("argv[{0}]: {1}", I, argv[I]); if (auto EnvFlags = llvm::sys::Process::GetEnv(FlagsEnvVar)) log("{0}: {1}", FlagsEnvVar, *EnvFlags); + // Log environment variables that influence how clangd finds system headers. + // This helps diagnose missing-include issues, especially on Windows. + for (const char *EnvVar : { + // MSVC environment variables (set by vcvarsall.bat) + "INCLUDE", "LIB", "LIBPATH", "CL", "_CL_", + // GCC/Clang environment variables + "CPATH", "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", + "OBJC_INCLUDE_PATH", "LIBRARY_PATH", "GCC_EXEC_PREFIX", + }) { + if (auto Val = llvm::sys::Process::GetEnv(EnvVar)) + log("Env {0}: {1}", EnvVar, *Val); + } ClangdLSPServer::Options Opts; Opts.UseDirBasedCDB = (CompileArgsFrom == FilesystemCompileArgs); >From 39108cbfae6dd92bb4c9dd00335ede2c0941c6a3 Mon Sep 17 00:00:00 2001 From: akshaydubey05 <[email protected]> Date: Sun, 21 Jun 2026 22:08:40 +0530 Subject: [PATCH 2/2] clang-format: put each env var string on its own line --- clang-tools-extra/clangd/tool/ClangdMain.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index af6022856339b..13fe4d3911731 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -916,10 +916,18 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var // This helps diagnose missing-include issues, especially on Windows. for (const char *EnvVar : { // MSVC environment variables (set by vcvarsall.bat) - "INCLUDE", "LIB", "LIBPATH", "CL", "_CL_", + "INCLUDE", + "LIB", + "LIBPATH", + "CL", + "_CL_", // GCC/Clang environment variables - "CPATH", "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", - "OBJC_INCLUDE_PATH", "LIBRARY_PATH", "GCC_EXEC_PREFIX", + "CPATH", + "C_INCLUDE_PATH", + "CPLUS_INCLUDE_PATH", + "OBJC_INCLUDE_PATH", + "LIBRARY_PATH", + "GCC_EXEC_PREFIX", }) { if (auto Val = llvm::sys::Process::GetEnv(EnvVar)) log("Env {0}: {1}", EnvVar, *Val); _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
