diff --git a/libc/startup/gpu/CMakeLists.txt b/libc/startup/gpu/CMakeLists.txt index 6f67fa9ff44f7..701ea63e1e2d5 100644 --- a/libc/startup/gpu/CMakeLists.txt +++ b/libc/startup/gpu/CMakeLists.txt @@ -26,6 +26,16 @@ function(add_startup_object name) PROPERTIES OUTPUT_NAME ${name}.o ) + + # Make an executable target of relocatable bitcode for clang if needed. + if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR) + add_executable(${fq_target_name}.exe $) + set_target_properties(${fq_target_name}.exe PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${LIBC_LIBRARY_DIR} + RUNTIME_OUTPUT_NAME ${name}.o) + target_link_options(${fq_target_name}.exe PRIVATE + "-flto" "-Wl,--lto-emit-llvm" "-march= ") + endif() endfunction() if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE})