https://github.com/androm3da created 
https://github.com/llvm/llvm-project/pull/209375

COMPILER_RT_INSTALL_LIBRARY_DIR must be CACHE STRING, not CACHE PATH: a 
relative PATH-typed cache entry resolves against the runtimes sub-build 
directory instead of CMAKE_INSTALL_PREFIX, misplacing sanitizer libs.

Replace the explicit COMPILER_RT_BUILD_* ON list with 
COMPILER_RT_SANITIZERS_TO_BUILD=all, since those options already default ON 
upstream and infeasible sanitizers self-exclude via their own 
ALL_<X>_SUPPORTED_ARCH lists.

Add FORCE to the dylib overrides so they take effect after 
hexagon-unknown-linux-musl-clang-dist.cmake has already cached them OFF.

>From a61e2691c1c99821faa06fb85be835cb9405b64d Mon Sep 17 00:00:00 2001
From: Brian Cain <[email protected]>
Date: Mon, 13 Jul 2026 21:55:31 -0700
Subject: [PATCH] [Hexagon] Fix compiler-rt install dir type, scope sanitizers,
 force dylib override

COMPILER_RT_INSTALL_LIBRARY_DIR must be CACHE STRING, not CACHE PATH: a
relative PATH-typed cache entry resolves against the runtimes sub-build
directory instead of CMAKE_INSTALL_PREFIX, misplacing sanitizer libs.

Replace the explicit COMPILER_RT_BUILD_* ON list with
COMPILER_RT_SANITIZERS_TO_BUILD=all, since those options already default ON
upstream and infeasible sanitizers self-exclude via their own
ALL_<X>_SUPPORTED_ARCH lists.

Add FORCE to the dylib overrides so they take effect after
hexagon-unknown-linux-musl-clang-dist.cmake has already cached them OFF.
---
 ...exagon-unknown-linux-musl-clang-dist.cmake | 20 +++++++++++--------
 ...-unknown-linux-musl-clang-dylib-dist.cmake |  6 +++---
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dist.cmake 
b/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dist.cmake
index 66c40e694d119..98fceee6d52e8 100644
--- a/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dist.cmake
+++ b/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dist.cmake
@@ -127,8 +127,12 @@ 
set(RUNTIMES_hexagon-unknown-linux-musl_LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF C
 # The Hexagon driver's getCompilerRTPath() returns ${SysRoot}/usr/lib/,
 # so compiler-rt libraries must be installed there with arch-suffix names.
 # Headers stay in the resource dir (COMPILER_RT_INSTALL_INCLUDE_DIR default).
+# NOTE: must be CACHE STRING, not CACHE PATH.  A relative PATH-typed cache
+# entry is resolved against the (runtimes sub-) build directory, which sent the
+# sanitizer libs to obj_llvm/.../runtimes-bins instead of the sysroot.  STRING
+# is joined to CMAKE_INSTALL_PREFIX at install time, matching LIBCXX_* below.
 set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_INSTALL_LIBRARY_DIR
-    "target/hexagon-unknown-linux-musl/usr/lib" CACHE PATH "")
+    "target/hexagon-unknown-linux-musl/usr/lib" CACHE STRING "")
 
 # libc++/libcxxabi/libunwind headers and libraries -> sysroot.
 # Paths are relative to CMAKE_INSTALL_PREFIX (the host toolchain root).
@@ -170,11 +174,11 @@ 
set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_CXX_LIBRARY "libcxx" CACHE S
 set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_USE_BUILTINS_LIBRARY ON 
CACHE BOOL "")
 set(RUNTIMES_hexagon-unknown-linux-musl_SANITIZER_CXX_ABI "libc++" CACHE 
STRING "")
 set(RUNTIMES_hexagon-unknown-linux-musl_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL 
"")
+# COMPILER_RT_BUILD_{SANITIZERS,XRAY,PROFILE,GWP_ASAN,LIBFUZZER,MEMPROF,
+# CTX_PROFILE} all default ON upstream, so they're left unset here.
+# COMPILER_RT_SANITIZERS_TO_BUILD defaults to "all"; set explicitly for
+# documentation clarity. Sanitizers Hexagon can't support (e.g. tsan) simply
+# aren't built, since Hexagon is absent from their own
+# ALL_<X>_SUPPORTED_ARCH list in cmake/Modules/AllSupportedArchDefs.cmake.
 set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_BUILTINS OFF CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_SANITIZERS ON CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_XRAY ON CACHE BOOL 
"")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_PROFILE ON CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_GWP_ASAN ON CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_LIBFUZZER ON CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_MEMPROF ON CACHE 
BOOL "")
-set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_BUILD_CTX_PROFILE ON CACHE 
BOOL "")
+set(RUNTIMES_hexagon-unknown-linux-musl_COMPILER_RT_SANITIZERS_TO_BUILD "all" 
CACHE STRING "")
diff --git 
a/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dylib-dist.cmake 
b/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dylib-dist.cmake
index b653a159faeed..310a28cf4cca2 100644
--- a/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dylib-dist.cmake
+++ b/clang/cmake/caches/hexagon-unknown-linux-musl-clang-dylib-dist.cmake
@@ -5,6 +5,6 @@
 # conflicts with libLLVM.so), so ELD must be excluded when this cache
 # is used.
 
-set(LLVM_BUILD_LLVM_DYLIB ON CACHE BOOL "")
-set(LLVM_LINK_LLVM_DYLIB ON CACHE BOOL "")
-set(CLANG_LINK_LLVM_DYLIB ON CACHE BOOL "")
+set(LLVM_BUILD_LLVM_DYLIB ON CACHE BOOL "" FORCE)
+set(LLVM_LINK_LLVM_DYLIB ON CACHE BOOL "" FORCE)
+set(CLANG_LINK_LLVM_DYLIB ON CACHE BOOL "" FORCE)

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

Reply via email to