[llvm] [llvm] statically link TableGenTests (PR #147577)

Andrew Rogers via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 8 10:55:41 PDT 2025


https://github.com/andrurogerz created https://github.com/llvm/llvm-project/pull/147577

## Purpose
Statically link `TableGenTests` so it can still build when linked against an LLVM Windows DLL.

## Background
The effort to build LLVM as a WIndows DLL is tracked in #109483. Additional context is provided in [this discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307).

If `TableGenTests` is linked against LLVM built as a DLL on Windows, it will fail due to a large number of duplicate symbols found in both the LLVM DLL and TableGen libraries. This is because `LLVMTableGenBasic` and `LLVMTableGenCommon` are linked statically against LLVM (using `DISABLE_LLVM_LINK_LLVM_DYLIB`) so already contain a sub-set of symbols also exported from the LLVM DLL.

This patch was originally part of #145448.

>From c23f3be86757b1379417e58cc37d7f46fb97df8e Mon Sep 17 00:00:00 2001
From: Andrew Rogers <andrurogerz at gmail.com>
Date: Tue, 8 Jul 2025 09:43:47 -0700
Subject: [PATCH] [llvm] statically link TableGenTests

---
 llvm/unittests/TableGen/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/llvm/unittests/TableGen/CMakeLists.txt b/llvm/unittests/TableGen/CMakeLists.txt
index 57b237306b19c..854f6c0f9b162 100644
--- a/llvm/unittests/TableGen/CMakeLists.txt
+++ b/llvm/unittests/TableGen/CMakeLists.txt
@@ -13,6 +13,8 @@ add_llvm_unittest(TableGenTests
   AutomataTest.cpp
   CodeExpanderTest.cpp
   ParserEntryPointTest.cpp
+
+  DISABLE_LLVM_LINK_LLVM_DYLIB
   )
 
 target_link_libraries(TableGenTests PRIVATE LLVMTableGenCommon LLVMTableGen)



More information about the llvm-commits mailing list