forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes: https://bugs.gentoo.org/683788 Signed-off-by: Michał Górny <[email protected]>
- Loading branch information
Showing
2 changed files
with
116 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,3 +1,4 @@ | ||
DIST openmp-6.0.1.src.tar.xz 2048320 BLAKE2B 08b3a7051c985903f78331f55a1c6e928399b87c862c43c991e9bf78b66b6e412fc96f202b82c051176dbbe02422f8ceb7414f44ea8f3522f418e515c0f70c62 SHA512 abb956583e5d11d0c6f6d97183c081d658616a74933be884a591eaa3d8c4bb04f08f02016d2c86d7384c7ff1aa44fb949b0d967fc0ff50e3132aaba412e9add8 | ||
DIST openmp-7.0.1.src.tar.xz 909316 BLAKE2B b8adbf67738b8d2d2d42b45b24aabd2f5e65a7b9cdda0d4a62511808c2101d9bb925b4904a9ecb98f77a1b7f38f13408fea6f724748183f9d5f5419c3fdeac54 SHA512 2062db8b87bce2c130bab528a6d654cb05b3de7641737552fc263724ceaa5e322afc2787796a0bddcda8d1bdf913a49f5a0180abcc57f8842b7e8ea8df4d6f51 | ||
DIST openmp-7.1.0.src.tar.xz 909320 BLAKE2B 7a5fd4374992b7c440ff27917c0af6a2ec64aaeb2fda645f75b5affd4981e3ceef7f15cba61c37934c5b35be543af315cc4bff2937545fbf5eaa6593f1aa8b83 SHA512 57f18beede401c1c39766e13a03b52083a0f7b437758069f66b73d6d1388dc51e48c34b0a7ecd3552244fd35e2db57388642588febef413c161f5c5411ab1e5d | ||
DIST openmp-8.0.0.src.tar.xz 934384 BLAKE2B f473fad9e8bcab1ad0c6ffab7cee471065d615947964177194f829847d41e726fb435562f1637f2a65d3ae84e01a8077662de047443f33d089948e2efb58906c SHA512 0fff071c9dbf118bc1908e433d6ce571f47a4f2dbc5bf2d843151889e3414473bb5a9c97dc0b6dc6d1bd9ab0c6e365cae625f97d1b11d5d6ae059fa5a0496cb3 |
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,115 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
: ${CMAKE_MAKEFILE_GENERATOR:=ninja} | ||
# (needed due to CMAKE_BUILD_TYPE != Gentoo) | ||
CMAKE_MIN_VERSION=3.7.0-r1 | ||
PYTHON_COMPAT=( python2_7 ) | ||
|
||
inherit cmake-multilib linux-info multiprocessing python-any-r1 | ||
|
||
DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" | ||
HOMEPAGE="https://openmp.llvm.org" | ||
SRC_URI="https://releases.llvm.org/${PV/_//}/openmp-${PV/_/}.src.tar.xz" | ||
|
||
# Additional licenses: | ||
# - MIT-licensed Intel code, | ||
# - LLVM Software Grant from Intel. | ||
|
||
LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x64-macos" | ||
IUSE="cuda hwloc kernel_linux offload ompt test" | ||
# CUDA works only with the x86_64 ABI | ||
REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" | ||
RESTRICT="!test? ( test )" | ||
|
||
RDEPEND=" | ||
hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) | ||
offload? ( | ||
virtual/libelf:=[${MULTILIB_USEDEP}] | ||
virtual/libffi:=[${MULTILIB_USEDEP}] | ||
cuda? ( dev-util/nvidia-cuda-toolkit:= ) | ||
)" | ||
# tests: | ||
# - dev-python/lit provides the test runner | ||
# - sys-devel/llvm provide test utils (e.g. FileCheck) | ||
# - sys-devel/clang provides the compiler to run tests | ||
DEPEND="${RDEPEND} | ||
dev-lang/perl | ||
offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) | ||
test? ( | ||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') | ||
>=sys-devel/clang-6 | ||
)" | ||
|
||
S=${WORKDIR}/openmp-${PV/_/}.src | ||
|
||
# least intrusive of all | ||
CMAKE_BUILD_TYPE=RelWithDebInfo | ||
|
||
python_check_deps() { | ||
has_version "dev-python/lit[${PYTHON_USEDEP}]" | ||
} | ||
|
||
kernel_pds_check() { | ||
if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then | ||
local CONFIG_CHECK="~!SCHED_PDS" | ||
local ERROR_SCHED_PDS="\ | ||
PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 | ||
< 4.14-pf9) do not implement sched_yield() call which may result in horrible | ||
performance problems with libomp. If you are using one of the specified | ||
kernel versions, you may want to disable the PDS scheduler." | ||
|
||
check_extra_config | ||
fi | ||
} | ||
|
||
pkg_pretend() { | ||
kernel_pds_check | ||
} | ||
|
||
pkg_setup() { | ||
use test && python-any-r1_pkg_setup | ||
} | ||
|
||
multilib_src_configure() { | ||
local libdir="$(get_libdir)" | ||
local mycmakeargs=( | ||
-DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" | ||
|
||
-DLIBOMP_USE_HWLOC=$(usex hwloc) | ||
-DLIBOMP_OMPT_SUPPORT=$(usex ompt) | ||
|
||
-DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) | ||
|
||
# do not install libgomp.so & libiomp5.so aliases | ||
-DLIBOMP_INSTALL_ALIASES=OFF | ||
# disable unnecessary hack copying stuff back to srcdir | ||
-DLIBOMP_COPY_EXPORTS=OFF | ||
) | ||
use offload && mycmakeargs+=( | ||
# this is non-fatal and libomp checks for CUDA conditionally | ||
# to ABI, so we can just ignore passing the wrong value | ||
# on non-amd64 ABIs | ||
-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) | ||
) | ||
use test && mycmakeargs+=( | ||
# this project does not use standard LLVM cmake macros | ||
-DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" | ||
-DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" | ||
|
||
-DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" | ||
-DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" | ||
) | ||
cmake-utils_src_configure | ||
} | ||
|
||
multilib_src_test() { | ||
# respect TMPDIR! | ||
local -x LIT_PRESERVES_TMP=1 | ||
|
||
cmake-utils_src_make check-libomp | ||
} |