[clang] 898dc85 - [clangd] Disable PCH for libs that use gRPC (#185185)

via cfe-commits cfe-commits at lists.llvm.org
Sat Mar 7 05:35:55 PST 2026


Author: Alexis Engelke
Date: 2026-03-07T13:35:51Z
New Revision: 898dc857633bebda504a20390220c87761050f08

URL: https://github.com/llvm/llvm-project/commit/898dc857633bebda504a20390220c87761050f08
DIFF: https://github.com/llvm/llvm-project/commit/898dc857633bebda504a20390220c87761050f08.diff

LOG: [clangd] Disable PCH for libs that use gRPC (#185185)

gRPC adds -pthread, which is incompatible with PCH without it. At some
point, we probably should generally switch from -lpthread to -pthread,
but until then, disable PCH for affected targets.

Fixes https://github.com/llvm/llvm-project/issues/184759.

Added: 
    

Modified: 
    clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
    clang-tools-extra/clangd/index/remote/CMakeLists.txt
    clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
    clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
    clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
    clang-tools-extra/clangd/tool/CMakeLists.txt
    clang/cmake/modules/AddGRPC.cmake

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt b/clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
index 4fe42cb8786f1..ae11c43fda86a 100644
--- a/clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
+++ b/clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
@@ -5,6 +5,9 @@ set(LLVM_LINK_COMPONENTS
 
 add_clang_executable(dexp
   Dexp.cpp
+
+  # Disable PCH, gRPC adds -pthread.
+  DISABLE_PCH_REUSE
   )
 
 clang_target_link_libraries(dexp

diff  --git a/clang-tools-extra/clangd/index/remote/CMakeLists.txt b/clang-tools-extra/clangd/index/remote/CMakeLists.txt
index 28df71855a142..ef4d04b47dae2 100644
--- a/clang-tools-extra/clangd/index/remote/CMakeLists.txt
+++ b/clang-tools-extra/clangd/index/remote/CMakeLists.txt
@@ -32,6 +32,9 @@ if (CLANGD_ENABLE_REMOTE)
     DEPENDS
     clangdRemoteIndexProto
     clangdRemoteIndexServiceProto
+
+    # Disable PCH, gRPC adds -pthread.
+    DISABLE_PCH_REUSE
     )
 
   clang_target_link_libraries(clangdRemoteIndex

diff  --git a/clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt b/clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
index d7e37003e5f98..74963e838677c 100644
--- a/clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
+++ b/clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
@@ -8,4 +8,7 @@ add_clang_library(clangdRemoteMarshalling STATIC
 
   DEPENDS
   clangdRemoteIndexProto
+
+  # Disable PCH, gRPC adds -pthread.
+  DISABLE_PCH_REUSE
   )

diff  --git a/clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt b/clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
index 194c7d5128a98..53351ae901b3d 100644
--- a/clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
+++ b/clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
@@ -6,6 +6,9 @@ add_clang_executable(clangd-index-server-monitor
 
   DEPENDS
   clangdRemoteIndexServiceProto
+
+  # Disable PCH, gRPC adds -pthread.
+  DISABLE_PCH_REUSE
   )
 
 target_link_libraries(clangd-index-server-monitor

diff  --git a/clang-tools-extra/clangd/index/remote/server/CMakeLists.txt b/clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
index 3bea34826f8a1..12090d83928fd 100644
--- a/clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
+++ b/clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
@@ -7,6 +7,9 @@ add_clang_executable(clangd-index-server
   DEPENDS
   clangdRemoteIndexProto
   clangdRemoteIndexServiceProto
+
+  # Disable PCH, gRPC adds -pthread.
+  DISABLE_PCH_REUSE
   )
 
 target_link_libraries(clangd-index-server

diff  --git a/clang-tools-extra/clangd/tool/CMakeLists.txt b/clang-tools-extra/clangd/tool/CMakeLists.txt
index 850a82833e444..1bd6a1f864dd3 100644
--- a/clang-tools-extra/clangd/tool/CMakeLists.txt
+++ b/clang-tools-extra/clangd/tool/CMakeLists.txt
@@ -4,6 +4,9 @@ set(LLVM_OPTIONAL_SOURCES ClangdToolMain.cpp)
 add_clang_library(clangdMain STATIC
   ClangdMain.cpp
   Check.cpp
+
+  # Disable PCH, gRPC adds -pthread.
+  DISABLE_PCH_REUSE
   )
 
 add_clang_tool(clangd

diff  --git a/clang/cmake/modules/AddGRPC.cmake b/clang/cmake/modules/AddGRPC.cmake
index 8989bd757d247..5d752bf86459d 100644
--- a/clang/cmake/modules/AddGRPC.cmake
+++ b/clang/cmake/modules/AddGRPC.cmake
@@ -7,5 +7,8 @@ function(generate_clang_protos_library LibraryName ProtoFile)
 
   add_clang_library(${LibraryName} ${ProtoSource}
     PARTIAL_SOURCES_INTENDED
-    LINK_LIBS PUBLIC grpc++ protobuf)
+    LINK_LIBS PUBLIC grpc++ protobuf
+    # Disable PCH, gRPC adds -pthread.
+    DISABLE_PCH_REUSE
+    )
 endfunction()


        


More information about the cfe-commits mailing list