[llvm-branch-commits] [clang] [flang] [lld] [llvm] [Flang] LLVM_ENABLE_RUNTIMES=flang-rt (PR #110217)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Nov 13 08:46:34 PST 2024


================
@@ -50,43 +42,28 @@ macro(enable_cuda_compilation name files)
       "${CUDA_COMPILE_OPTIONS}"
       )
 
-    if (EXISTS "${FLANG_LIBCUDACXX_PATH}/include")
+    if (EXISTS "${FLANG_RT_LIBCUDACXX_PATH}/include")
       # When using libcudacxx headers files, we have to use them
       # for all files of F18 runtime.
-      include_directories(AFTER ${FLANG_LIBCUDACXX_PATH}/include)
+      include_directories(AFTER ${FLANG_RT_LIBCUDACXX_PATH}/include)
       add_compile_definitions(RT_USE_LIBCUDACXX=1)
     endif()
 
     # Add an OBJECT library consisting of CUDA PTX.
-    llvm_add_library(${name}PTX OBJECT PARTIAL_SOURCES_INTENDED ${files})
-    set_property(TARGET obj.${name}PTX PROPERTY CUDA_PTX_COMPILATION ON)
-    if (FLANG_CUDA_RUNTIME_PTX_WITHOUT_GLOBAL_VARS)
-      target_compile_definitions(obj.${name}PTX
-        PRIVATE FLANG_RUNTIME_NO_GLOBAL_VAR_DEFS
+    add_flangrt_library(${name}PTX OBJECT ${files})
----------------
jeanPerier wrote:

Also, I think the `OBJECT` processing [in llvm_add_library](https://github.com/llvm/llvm-project/blob/0baa6a7272970257fd6f527e95eb7cb18ba3361c/llvm/cmake/modules/AddLLVM.cmake#L565) is more complex and also implies `STATIC` (that is, it both triggers [an object build for the `obj.${name}PTX`](https://github.com/llvm/llvm-project/blob/0baa6a7272970257fd6f527e95eb7cb18ba3361c/llvm/cmake/modules/AddLLVM.cmake#L568), and a [STATIC build for the  `${name}PTX`](https://github.com/llvm/llvm-project/blob/0baa6a7272970257fd6f527e95eb7cb18ba3361c/llvm/cmake/modules/AddLLVM.cmake#L644)).

I do not think this is happening with `add_flangrt_library` that only makes an object build.

https://github.com/llvm/llvm-project/pull/110217


More information about the llvm-branch-commits mailing list