diff --git a/clang/tools/amdgpu-arch/CMakeLists.txt b/clang/tools/amdgpu-arch/CMakeLists.txt --- a/clang/tools/amdgpu-arch/CMakeLists.txt +++ b/clang/tools/amdgpu-arch/CMakeLists.txt @@ -10,9 +10,12 @@ add_clang_tool(amdgpu-arch AMDGPUArch.cpp) +option(CLANG_FORCE_DLOPEN_LIBHSA "Build with 'dlopened' libhsa" OFF) + # If we find the HSA runtime we link with it directly. find_package(hsa-runtime64 QUIET 1.2.0 HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm) -if(hsa-runtime64_FOUND AND NOT (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4)) +if(hsa-runtime64_FOUND AND NOT + (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4 OR CLANG_FORCE_DLOPEN_LIBHSA)) set_target_properties(amdgpu-arch PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) target_link_libraries(amdgpu-arch PRIVATE hsa-runtime64::hsa-runtime64) else() diff --git a/clang/tools/nvptx-arch/CMakeLists.txt b/clang/tools/nvptx-arch/CMakeLists.txt --- a/clang/tools/nvptx-arch/CMakeLists.txt +++ b/clang/tools/nvptx-arch/CMakeLists.txt @@ -9,10 +9,12 @@ set(LLVM_LINK_COMPONENTS Support) add_clang_tool(nvptx-arch NVPTXArch.cpp) -find_package(CUDAToolkit QUIET) +option(CLANG_FORCE_DLOPEN_LIBCUDA "Build with 'dlopened' libcuda" OFF) # If we found the CUDA library directly we just dynamically link against it. -if(CUDAToolkit_FOUND AND NOT (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4)) +find_package(CUDAToolkit QUIET) +if(CUDAToolkit_FOUND AND NOT + (LLVM_BUILD_32_BITS OR CMAKE_SIZEOF_VOID_P EQUAL 4 OR CLANG_FORCE_DLOPEN_LIBCUDA)) target_link_libraries(nvptx-arch PRIVATE CUDA::cuda_driver) else() target_compile_definitions(nvptx-arch PRIVATE "DYNAMIC_CUDA")