From cf3b37c92ffad21086a0741ac682c87abea9a5d6 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Mon, 3 Jun 2024 14:35:06 -0500 Subject: [PATCH] [libc] Add GPU utility dependencies if present Summary: These tools need to be built before we can do the library creation stage. If they are generated in the same build then this is not guaranteed so we should add explicit dependencies. --- libc/cmake/modules/LLVMLibCLibraryRules.cmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libc/cmake/modules/LLVMLibCLibraryRules.cmake b/libc/cmake/modules/LLVMLibCLibraryRules.cmake index c376faafcf2d..75bc81e2aee8 100644 --- a/libc/cmake/modules/LLVMLibCLibraryRules.cmake +++ b/libc/cmake/modules/LLVMLibCLibraryRules.cmake @@ -132,6 +132,9 @@ function(add_gpu_entrypoint_library target_name base_target_name) ) add_custom_target(${dep}.__gpubin__ DEPENDS ${dep} "${CMAKE_CURRENT_BINARY_DIR}/binary/${name}.gpubin") + if(TARGET clang-offload-packager) + add_dependencies(${dep}.__gpubin__ clang-offload-packager) + endif() # CMake does not permit setting the name on object files. In order to have # human readable names we create an empty stub file with the entrypoint @@ -209,6 +212,9 @@ function(add_bitcode_entrypoint_library target_name base_target_name) ) add_custom_target(${target_name} DEPENDS ${output} ${all_deps}) set_target_properties(${target_name} PROPERTIES TARGET_OBJECT ${output}) + if(TARGET llvm-link) + add_dependencies(${target_name} llvm-link) + endif() endfunction(add_bitcode_entrypoint_library) # A rule to build a library from a collection of entrypoint objects.