commit:     6c5cd51e008ff88fb32382c79051f2596d0d3f70
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 25 12:50:24 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb 25 14:03:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c5cd51e

llvm-runtimes/offload: Add 21.0.0_pre20250225 snapshot

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

 llvm-runtimes/offload/Manifest                     |   1 +
 .../offload/offload-21.0.0_pre20250225.ebuild      | 139 +++++++++++++++++++++
 2 files changed, 140 insertions(+)

diff --git a/llvm-runtimes/offload/Manifest b/llvm-runtimes/offload/Manifest
index 4b857ecd8e3b..906ceb66e070 100644
--- a/llvm-runtimes/offload/Manifest
+++ b/llvm-runtimes/offload/Manifest
@@ -5,3 +5,4 @@ DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B 
aa91f7be228e51b0f2234bb5
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 
BLAKE2B 
51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e
 SHA512 
a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
 DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 
BLAKE2B 
28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d
 SHA512 
d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5
 DIST llvm-project-c30a7f459452d5766da244564bc1d5888346c364.tar.gz 227560986 
BLAKE2B 
c1c833aa6d488530826d96db81ca8be2fcf842ccf5b10a65ff18269fdfa32fa2742fb0a547eb315c2a9ee383e1b6b6cce4a78136e1740e04d322c79fb6a66a86
 SHA512 
0b68d3462e5eac89f50cff5e64603758ab74c701ff2de88c8569dd45b7e702b5d13b26c2745615c0c355d46d13765f47e4d43e61cde735240c6f386c0090becb
+DIST llvm-project-d254fa877f419e61e54709f0a6f2e891da893a60.tar.gz 228028122 
BLAKE2B 
3321f3b205dfcd672d52122d7ba8e4e737916e01f5041a0dc140722f64359476632e036da0e0692cd366b080a073292cfdb4963e973bf800afabc20d06a2e86b
 SHA512 
135c4864973b682cf41953d43d977eaa219a4a898fceb4b4a8cacbbc6a5dd271d26010b1db6c6c90e761bf3495036f3e7528ab259d48c9c4dc4a064332c0326f

diff --git a/llvm-runtimes/offload/offload-21.0.0_pre20250225.ebuild 
b/llvm-runtimes/offload/offload-21.0.0_pre20250225.ebuild
new file mode 100644
index 000000000000..449f09fef8cf
--- /dev/null
+++ b/llvm-runtimes/offload/offload-21.0.0_pre20250225.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake 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}"
+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_AMDGPU] )
+       llvm_targets_NVPTX? ( llvm-core/clang[llvm_targets_NVPTX] )
+       test? (
+               $(python_gen_any_dep '
+                       dev-python/lit[${PYTHON_USEDEP}]
+               ')
+               llvm-core/clang
+       )
+"
+
+LLVM_COMPONENTS=( offload cmake runtimes/cmake libc/shared )
+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
+}
+
+python_check_deps() {
+       python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       if use test; then
+               python-any-r1_pkg_setup
+       fi
+}
+
+src_configure() {
+       # 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 build_devicertl=FALSE
+
+       if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
+               if use llvm_targets_AMDGPU; then
+                       plugins+=";amdgpu"
+                       build_devicertl=TRUE
+               fi
+               if use llvm_targets_NVPTX; then
+                       plugins+=";cuda"
+                       build_devicertl=TRUE
+               fi
+       fi
+
+       local mycmakeargs=(
+               -DLLVM_ROOT="${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
+       )
+       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++")"
+               # requires flang
+               -DOPENMP_TEST_Fortran_COMPILER=
+       )
+
+       cmake_src_configure
+
+       if [[ ${build_devicertl} == FALSE ]]; 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