diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-12-17 02:02:20 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-12-17 02:02:20 +0000 |
commit | 2f50f3ca1d346a1f74054f124adb11136068b2b1 (patch) | |
tree | 10b9920e8655629b9153b171f314ed189fce6578 /llvm-runtimes/offload | |
parent | e07c6f9648d478943b5ecd6f1c42cc91cae0f547 (diff) |
gentoo auto-resync : 17:12:2024 - 02:02:19
Diffstat (limited to 'llvm-runtimes/offload')
-rw-r--r-- | llvm-runtimes/offload/Manifest | 2 | ||||
-rw-r--r-- | llvm-runtimes/offload/offload-20.0.0_pre20241215.ebuild | 147 |
2 files changed, 149 insertions, 0 deletions
diff --git a/llvm-runtimes/offload/Manifest b/llvm-runtimes/offload/Manifest index ddaf663d0599..9b770d78dd6d 100644 --- a/llvm-runtimes/offload/Manifest +++ b/llvm-runtimes/offload/Manifest @@ -1,4 +1,6 @@ DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba +DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a EBUILD offload-20.0.0.9999.ebuild 3745 BLAKE2B c83224e4b837481682439d576e42024e2caab14c068943fdb60997f8dd8c305279c2d1b1e3b1953b77f4840a1df723bde7ffba367ca45e1dc896f321610ba2b7 SHA512 78bc62063fa73cfbe02eed2f2491b597e8be1618221b794403f1299dc3e65706b356bdfbaf82d6d88a7044055a423029e85a951d5e3459ce617cf801e1f26f3d EBUILD offload-20.0.0_pre20241207.ebuild 4098 BLAKE2B c51babc0900e4f8640140590a177ae855b6b64a62f9d18b2fe03ef0f576c596f363cd4505c843c9a0a257e2906eedba73bc2c27682bccb00dac08e0d2f641945 SHA512 33a224a18cbc45b9195b0b9729a2b57121bdb1aa297ba3a394306e1edb3794ac805c260c86bbf01662c6cd80dbafb571a578ceaaf4cf6b8b1bb7205ec423bb91 +EBUILD offload-20.0.0_pre20241215.ebuild 3745 BLAKE2B c83224e4b837481682439d576e42024e2caab14c068943fdb60997f8dd8c305279c2d1b1e3b1953b77f4840a1df723bde7ffba367ca45e1dc896f321610ba2b7 SHA512 78bc62063fa73cfbe02eed2f2491b597e8be1618221b794403f1299dc3e65706b356bdfbaf82d6d88a7044055a423029e85a951d5e3459ce617cf801e1f26f3d MISC metadata.xml 379 BLAKE2B 2b4c75d4ec6e126d887b736ea978c4b34683a347252f408c9d1f5f55c6c1bead7b7f9533812806f816538d8abaa00ded4d439dbe626d3f2cf09b78a3674e41bd SHA512 d49054d4b5a1a051d83f1ef397a7925fb36ee3092668d134e6ed5c1218bf5d67a43145b689709677643da070a783ec9f8705b37f15587475829fe185634af1d4 diff --git a/llvm-runtimes/offload/offload-20.0.0_pre20241215.ebuild b/llvm-runtimes/offload/offload-20.0.0_pre20241215.ebuild new file mode 100644 index 000000000000..66a73775d296 --- /dev/null +++ b/llvm-runtimes/offload/offload-20.0.0_pre20241215.ebuild @@ -0,0 +1,147 @@ +# 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}" +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_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 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 +} + +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+="amdgpu" + fi + if use llvm_targets_NVPTX; then + plugins+=";cuda" + build_devicertl=TRUE + gpus+="nvptx" + fi + [[ ${gpus} == amdgpunvptx ]] && gpus=all + fi + + local mycmakeargs=( + -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 +} |