================ @@ -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