llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Brian Cain (androm3da) <details> <summary>Changes</summary> 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. --- Full diff: https://github.com/llvm/llvm-project/pull/209375.diff 2 Files Affected: - (modified) clang/cmake/caches/hexagon-unknown-linux-musl-clang-dist.cmake (+12-8) - (modified) clang/cmake/caches/hexagon-unknown-linux-musl-clang-dylib-dist.cmake (+3-3) ``````````diff 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) `````````` </details> https://github.com/llvm/llvm-project/pull/209375 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
