[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