forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
llvm-runtimes/offload: Add 20.1.0_rc1
Signed-off-by: Michał Górny <[email protected]>
- Loading branch information
Showing
2 changed files
with
150 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8 | ||
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda | ||
DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac | ||
DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4 | ||
DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c | ||
DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# 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 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_AMDGPU] ) | ||
llvm_targets_NVPTX? ( llvm-core/clang[llvm_targets_NVPTX] ) | ||
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 | ||
} | ||
|
||
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() { | ||
# 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 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 | ||
} |