commit:     d9d53c78c0f6fa892498d313724d7dbfc7043401
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 17 21:34:38 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec 17 21:37:21 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9d53c78

llvm-runtimes/offload: Add 19.1.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/offload/Manifest              |   2 +
 llvm-runtimes/offload/offload-19.1.6.ebuild | 155 ++++++++++++++++++++++++++++
 2 files changed, 157 insertions(+)

diff --git a/llvm-runtimes/offload/Manifest b/llvm-runtimes/offload/Manifest
index 1ba6edec0842..ef02d1824f3c 100644
--- a/llvm-runtimes/offload/Manifest
+++ b/llvm-runtimes/offload/Manifest
@@ -1,2 +1,4 @@
+DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B 
b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607
 SHA512 
d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
+DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 
1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b
 SHA512 
8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 
BLAKE2B 
fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd
 SHA512 
65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
 DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 
BLAKE2B 
0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31
 SHA512 
45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a

diff --git a/llvm-runtimes/offload/offload-19.1.6.ebuild 
b/llvm-runtimes/offload/offload-19.1.6.ebuild
new file mode 100644
index 000000000000..dfd8e699dfa1
--- /dev/null
+++ b/llvm-runtimes/offload/offload-19.1.6.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="OpenMP offloading support"
+HOMEPAGE="https://openmp.llvm.org";
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64"
+IUSE="+debug ompt test llvm_targets_AMDGPU llvm_targets_NVPTX"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-libs/libffi:=
+       ~llvm-core/llvm-${PV}
+       ~llvm-runtimes/openmp-${PV}[ompt?]
+       llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= )
+"
+DEPEND="
+       ${RDEPEND}
+"
+# tests:
+# - dev-python/lit provides the test runner
+# - llvm-core/llvm provide test utils (e.g. FileCheck)
+# - llvm-core/clang provides the compiler to run tests
+BDEPEND="
+       dev-lang/perl
+       virtual/pkgconfig
+       llvm_targets_AMDGPU? ( llvm-core/clang )
+       llvm_targets_NVPTX? ( llvm-core/clang )
+       test? (
+               ${PYTHON_DEPS}
+               $(python_gen_any_dep '
+                       dev-python/lit[${PYTHON_USEDEP}]
+               ')
+               llvm-core/clang
+       )
+"
+# TODO: can it be fixed to compile with gcc?
+BDEPEND+="
+       llvm-core/clang
+"
+
+LLVM_COMPONENTS=( offload cmake runtimes/cmake )
+LLVM_TEST_COMPONENTS=( openmp/cmake )
+llvm.org_set_globals
+
+pkg_pretend() {
+       if [[ ${LLVM_ALLOW_GPU_TESTING} ]]; then
+               ewarn "LLVM_ALLOW_GPU_TESTING set.  This package will run tests 
against your"
+               ewarn "GPU if it is supported.  Note that these tests may be 
flaky, fail or"
+               ewarn "hang, or even cause your GPU to crash (requiring a 
reboot)."
+       fi
+}
+
+pkg_setup() {
+       if use test; then
+               python-any-r1_pkg_setup
+       fi
+}
+
+src_configure() {
+       # TODO
+       local -x CC=${CHOST}-clang
+       local -x CXX=${CHOST}-clang++
+       strip-unsupported-flags
+
+       # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+       use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+       local libdir="$(get_libdir)"
+       local ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+       local ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+       local plugins="host"
+       local gpus=
+       local build_devicertl=FALSE
+
+       if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
+               if use llvm_targets_AMDGPU; then
+                       plugins+=";amdgpu"
+                       build_devicertl=TRUE
+                       
gpus+=";gfx700;gfx701;gfx801;gfx803;gfx900;gfx902;gfx906"
+                       gpus+=";gfx908;gfx90a;gfx90c;gfx940;gfx941;gfx942"
+                       gpus+=";gfx1010;gfx1030;gfx1031;gfx1032;gfx1033"
+                       gpus+=";gfx1034;gfx1035;gfx1036;gfx1100;gfx1101;gfx1102"
+                       gpus+=";gfx1103;gfx1150;gfx1151;gfx1152"
+               fi
+               if use llvm_targets_NVPTX; then
+                       plugins+=";cuda"
+                       build_devicertl=TRUE
+                       gpus+=";sm_35;sm_37;sm_50;sm_52;sm_53;sm_60;sm_61;sm_62"
+                       gpus+=";sm_70;sm_72;sm_75;sm_80;sm_86;sm_87;sm_89;sm_90"
+               fi
+       fi
+
+       local mycmakeargs=(
+               -DCMAKE_PREFIX_PATH="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+               -DOFFLOAD_LIBDIR_SUFFIX="${libdir#lib}"
+               -DLIBOMPTARGET_PLUGINS_TO_BUILD="${plugins}"
+               -DLIBOMPTARGET_OMPT_SUPPORT="$(usex ompt)"
+               -DLIBOMPTARGET_BUILD_DEVICERTL_BCLIB="${build_devicertl}"
+
+               # this breaks building static target libs
+               -DBUILD_SHARED_LIBS=OFF
+
+               -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+               -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+       )
+
+       [[ ! ${LLVM_ALLOW_GPU_TESTING} ]] && mycmakeargs+=(
+               # prevent trying to access the GPU
+               -DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND
+               -DLIBOMPTARGET_NVPTX_ARCH=LIBOMPTARGET_NVPTX_ARCH-NOTFOUND
+       )
+       [[ -n ${gpus} ]] && mycmakeargs+=(
+               -DLIBOMPTARGET_DEVICE_ARCHITECTURES="${gpus}"
+       )
+       use test && mycmakeargs+=(
+               # this project does not use standard LLVM cmake macros
+               -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
+               -DOPENMP_LIT_ARGS="$(get_lit_flags)"
+
+               -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
+               -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
+       )
+
+       cmake_src_configure
+
+       if [[ -z ${gpus} ]]; then
+               # clang requires libomptarget.devicertl.a, but it can be empty
+               > "${BUILD_DIR}"/libomptarget.devicertl.a || die
+       fi
+}
+
+src_test() {
+       # respect TMPDIR!
+       local -x LIT_PRESERVES_TMP=1
+
+       cmake_build check-offload
+}
+
+src_install() {
+       cmake_src_install
+
+       if [[ ! -f ${ED}/usr/$(get_libdir)/libomptarget.devicertl.a ]]
+       then
+               dolib.a "${BUILD_DIR}"/libomptarget.devicertl.a
+       fi
+}

Reply via email to