================
@@ -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})
----------------
Meinersbur wrote:

Either I was confused by the `OBJECT` argument[^1] or had the impression that 
only the `*.ptx` files are the ones needed here. In any case, I wasn't aware 
that the `.a` files consists of those `*.ptx` files. Fixed in the last PR push.

`CUDA_PTX_COMPILATION` can only be applied to object libraries. There seems to 
be no way in CMake to include those `.ptx` files into a static library without 
an intermediate object library. The usual tools such as `nm`, `objdump`, or 
`strip` don't like `.a` files built this way. I wonder whether this is sound.

[^1]: The semantics of `SHARED`/`STATIC`/`OBJECT` are pairwise different in 
`llvm_add_library`, `add_flang_library`, and CMake's `add_library`, a mistake I 
don't want to repeat for `add_flangrt_library`. Whether `llvm_add_library` 
actually creates a `obj.${name}` is present depends on not only function 
arguments, but also e.g. globals such as `BUILD_SHARED_LIBS`. `OBJECT` does NOT 
imply `STATIC`, but can also be a `SHARED` library if `BUILD_SHARED_LIBS=ON`. 
At least creating a shared library out of `.ptx` files does not work.

https://github.com/llvm/llvm-project/pull/110217
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to