Apply patch to use proper clang

This commit is contained in:
2026-02-24 12:28:35 +01:00
parent 47953dff81
commit 8cbb52b724
2 changed files with 47 additions and 0 deletions

45
cmake-fix.patch Normal file
View File

@@ -0,0 +1,45 @@
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 11472060a6..0e570f5a21 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -335,7 +335,6 @@
"${PROG_NAME}${CMAKE_EXECUTABLE_SUFFIX}"
HINTS "${LLVM_BINDIR}" "${LLVM_CONFIG_LOCATION}"
DOC "${DOCSTRING}"
- NO_DEFAULT_PATH
NO_CMAKE_PATH
NO_CMAKE_ENVIRONMENT_PATH
)
@@ -346,7 +345,12 @@
endif()
endmacro()
-find_program_or_die(CLANG "clang" "clang binary")
+if(DEFINED CMAKE_C_COMPILER) # TODO: this assumes we are using clang
+ set(CLANG "${CMAKE_C_COMPILER}")
+ message(STATUS "Using clang: ${CLANG}")
+else()
+ find_program_or_die(CLANG "clang" "clang binary")
+endif()
execute_process(COMMAND "${CLANG}" "--version" OUTPUT_VARIABLE LLVM_CLANG_VERSION RESULT_VARIABLE CLANG_RES)
find_program_or_die(CLANGXX "clang++" "clang++ binary")
execute_process(COMMAND "${CLANGXX}" "--version" OUTPUT_VARIABLE LLVM_CLANGXX_VERSION RESULT_VARIABLE CLANGXX_RES)
@@ -925,9 +929,15 @@
#####################################################################
-execute_process(COMMAND "${CLANG}" "--print-resource-dir" OUTPUT_VARIABLE RESOURCE_DIR)
-string(STRIP "${RESOURCE_DIR}" RESOURCE_DIR)
-set(CLANG_RESOURCE_DIR "${RESOURCE_DIR}" CACHE INTERNAL "Clang resource dir")
+if (NOT DEFINED CLANG_RESOURCE_DIR)
+ execute_process(COMMAND "${CLANG}" "--print-resource-dir" OUTPUT_VARIABLE RESOURCE_DIR)
+ string(STRIP "${RESOURCE_DIR}" RESOURCE_DIR)
+ set(CLANG_RESOURCE_DIR "${RESOURCE_DIR}" CACHE INTERNAL "Clang resource dir")
+endif()
+
+set(CLANG_OPENCL_HEADERS "${CLANG_RESOURCE_DIR}/include/opencl-c.h"
+ "${CLANG_RESOURCE_DIR}/include/opencl-c-base.h")
+message(STATUS "clang OpenCL Headers: ${CLANG_OPENCL_HEADERS}")
##########################################################

View File

@@ -45,6 +45,8 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
version = "nightly";
inherit src;
patches = [ ./cmake-fix.patch ];
cmakeFlags = [
# TODO: all these are broken when cross compiling. Upstream has refactored
# all the cmake infra for cross compilation, but it's not in a release yet