https://github.com/mstorsjo created 
https://github.com/llvm/llvm-project/pull/191401

This plugin currently seems to expect to be linked with undefined references 
(rather than linking against the libclang-cpp dylib).

Linking a shared library with undefined references is not supported on Windows. 
(Plugins in general can be built on Windows in mingw mode, if linking against 
libLLVM and libclang-cpp as dylibs.)

From 7c05f4fb91918de6be9e656cc064f7ab31ee1b18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]>
Date: Fri, 10 Apr 2026 14:45:06 +0300
Subject: [PATCH] [clang][ssaf] Don't try to link SSAFExamplePlugin on Windows

This plugin currently seems to expect to be linked with undefined
references (rather than linking against the libclang-cpp dylib).

Linking a shared library with undefined references is not supported
on Windows. (Plugins in general can be built on Windows in mingw mode,
if linking against libLLVM and libclang-cpp as dylibs.)
---
 .../ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt   | 5 ++++-
 clang/test/CMakeLists.txt                                    | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/clang/lib/ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt 
b/clang/lib/ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt
index d5bec9f7f38b3..b77ffc49c0f9f 100644
--- a/clang/lib/ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt
+++ b/clang/lib/ScalableStaticAnalysisFramework/Plugins/CMakeLists.txt
@@ -1,4 +1,4 @@
-if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS)
+if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS AND NOT WIN32)
   # Plugins must never bring LLVM or Clang libraries in statically.
   # clang-ssaf-analyzer already loads clangScalableStaticAnalysisFrameworkCore
   # and LLVM into the process; a second static copy would produce duplicate
@@ -8,5 +8,8 @@ if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS)
   # tool that will load it, and pull only include paths (not link deps) from
   # the libraries whose headers are needed. All symbols are resolved from the
   # tool's address space when the plugin is loaded via --load.
+  #
+  # This plugin is intended to be linked with undefined references; this isn't
+  # supported on PE-COFF.
   add_subdirectory(ExamplePlugin)
 endif()
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index 9bd21c013b092..cb1f34d2e49bc 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -207,7 +207,7 @@ if(CLANG_ENABLE_STATIC_ANALYZER)
   endif()
 endif()
 
-if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS)
+if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS AND NOT WIN32)
   list(APPEND CLANG_TEST_DEPS
     SSAFExamplePlugin
     )

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to