[clang] [llvm] [Fuchsia] Enable OpenCSD by default for Fuchsia (PR #195194)

via cfe-commits cfe-commits at lists.llvm.org
Fri May 1 16:00:02 PDT 2026


https://github.com/gulfemsavrun updated https://github.com/llvm/llvm-project/pull/195194

>From 0f2abf0483cc448cc74395ff9c52e8f17b8e41c1 Mon Sep 17 00:00:00 2001
From: Gulfem Savrun Yeniceri <gulfem at google.com>
Date: Thu, 30 Apr 2026 15:37:34 -0700
Subject: [PATCH] [Fuchsia] Enable OpenCSD by default for Fuchsia

1) Pass LLVM_ENABLE_OPENCSD and OPENCSD_ROOT through the
Fuchsia stage 1 cache.

2) Update ProfileData to use the OPENCSD_ROOT hint when
resolving dependency paths and to support linking both
static libraries for OpenCSD.
---
 clang/cmake/caches/Fuchsia.cmake    |  2 ++
 llvm/lib/ProfileData/CMakeLists.txt | 15 ++++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/clang/cmake/caches/Fuchsia.cmake b/clang/cmake/caches/Fuchsia.cmake
index 1b83f5b14cc3f..f790acacb8e95 100644
--- a/clang/cmake/caches/Fuchsia.cmake
+++ b/clang/cmake/caches/Fuchsia.cmake
@@ -36,6 +36,8 @@ set(_FUCHSIA_BOOTSTRAP_PASSTHROUGH
   CURL_ROOT
   OpenSSL_ROOT
   httplib_ROOT
+  LLVM_ENABLE_OPENCSD
+  OPENCSD_ROOT
 
   # Deprecated
   CursesAndPanel_ROOT
diff --git a/llvm/lib/ProfileData/CMakeLists.txt b/llvm/lib/ProfileData/CMakeLists.txt
index 131f0934fb05b..0c56cea610069 100644
--- a/llvm/lib/ProfileData/CMakeLists.txt
+++ b/llvm/lib/ProfileData/CMakeLists.txt
@@ -51,12 +51,13 @@ set(LLVM_HAVE_OPENCSD OFF CACHE BOOL "Is OpenCSD available" FORCE)
 set(LLVM_OPENCSD_MIN_VERSION "1.5.4")
 
 if(NOT LLVM_ENABLE_OPENCSD STREQUAL "OFF")
-  find_library(OPENCSD_LIB NAMES opencsd_c_api opencsd)
-  find_path(OPENCSD_INCLUDE NAMES opencsd/ocsd_if_types.h)
+  find_library(OPENCSD_C_LIB NAMES opencsd_c_api_static opencsd_c_api HINTS ${OPENCSD_ROOT} PATH_SUFFIXES lib lib64)
+  find_library(OPENCSD_CPP_LIB NAMES opencsd_static opencsd HINTS ${OPENCSD_ROOT} PATH_SUFFIXES lib lib64)
+  find_path(OPENCSD_INCLUDE NAMES opencsd/ocsd_if_types.h HINTS ${OPENCSD_ROOT} PATH_SUFFIXES include)
 
   set(OPENCSD_VERSION "")
   set(OPENCSD_VERSION_OK OFF)
-  if(OPENCSD_LIB AND OPENCSD_INCLUDE)
+  if(OPENCSD_C_LIB AND OPENCSD_INCLUDE)
     # The header exposes an OCSD_VER_STRING macro of the form "M.m.p"
     # which we extract for a robust version comparison.
     file(READ "${OPENCSD_INCLUDE}/opencsd/ocsd_if_version.h" _opencsd_ver_h)
@@ -69,16 +70,16 @@ if(NOT LLVM_ENABLE_OPENCSD STREQUAL "OFF")
     endif()
   endif()
 
-  if(OPENCSD_LIB AND OPENCSD_INCLUDE AND OPENCSD_VERSION_OK)
+  if(OPENCSD_C_LIB AND OPENCSD_CPP_LIB AND OPENCSD_INCLUDE AND OPENCSD_VERSION_OK)
     target_compile_definitions(LLVMProfileData PRIVATE HAVE_OPENCSD)
     target_include_directories(LLVMProfileData PRIVATE ${OPENCSD_INCLUDE})
-    target_link_libraries(LLVMProfileData PRIVATE ${OPENCSD_LIB})
+    target_link_libraries(LLVMProfileData PUBLIC ${OPENCSD_C_LIB} ${OPENCSD_CPP_LIB})
     message(STATUS "LLVMProfileData: OpenCSD support enabled (found ${OPENCSD_VERSION}).")
     set(LLVM_HAVE_OPENCSD ON CACHE BOOL "Is OpenCSD available" FORCE)
-  elseif(OPENCSD_LIB AND OPENCSD_INCLUDE)
+  elseif(OPENCSD_C_LIB AND OPENCSD_INCLUDE)
     if(LLVM_ENABLE_OPENCSD STREQUAL "FORCE_ON")
       message(FATAL_ERROR
-        "OpenCSD found at ${OPENCSD_LIB} but its version "
+        "OpenCSD found at ${OPENCSD_C_LIB} but its version "
         "(${OPENCSD_VERSION}) is older than the required "
         "${LLVM_OPENCSD_MIN_VERSION}. Install a newer OpenCSD or "
         "configure with -DLLVM_ENABLE_OPENCSD=OFF.")



More information about the cfe-commits mailing list