diff options
author | 2023-11-19 10:45:44 +0100 | |
---|---|---|
committer | 2023-11-19 12:10:11 +0100 | |
commit | 766b1426b795c28a42568d9cbc667d07a55e45de (patch) | |
tree | 056425730c8f1e1a04cfe76134787657fa1b7d2f /sys-libs | |
parent | sys-libs/libcxx: Add 18.0.0_pre20231119 snapshot (diff) | |
download | gentoo-766b1426b795c28a42568d9cbc667d07a55e45de.tar.gz gentoo-766b1426b795c28a42568d9cbc667d07a55e45de.tar.bz2 gentoo-766b1426b795c28a42568d9cbc667d07a55e45de.zip |
sys-libs/libomp: Add 18.0.0_pre20231119 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'sys-libs')
-rw-r--r-- | sys-libs/libomp/Manifest | 1 | ||||
-rw-r--r-- | sys-libs/libomp/libomp-18.0.0_pre20231119.ebuild | 150 |
2 files changed, 151 insertions, 0 deletions
diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index a89df4fea627..d8f967e7dde7 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -12,4 +12,5 @@ DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd DIST llvm-project-17.0.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022 DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9 +DIST llvm-project-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45 DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509 diff --git a/sys-libs/libomp/libomp-18.0.0_pre20231119.ebuild b/sys-libs/libomp/libomp-18.0.0_pre20231119.ebuild new file mode 100644 index 000000000000..960f9ce8087f --- /dev/null +++ b/sys-libs/libomp/libomp-18.0.0_pre20231119.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +inherit flag-o-matic cmake-multilib linux-info llvm llvm.org +inherit python-single-r1 toolchain-funcs + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0/${LLVM_SOABI}" +IUSE=" + +debug gdb-plugin hwloc offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX +" +REQUIRED_USE=" + gdb-plugin? ( ${PYTHON_REQUIRED_USE} ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + gdb-plugin? ( ${PYTHON_DEPS} ) + hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) + offload? ( + dev-libs/libffi:=[${MULTILIB_USEDEP}] + ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}] + llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= ) + ) +" +# 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} +" +BDEPEND=" + dev-lang/perl + offload? ( + llvm_targets_AMDGPU? ( sys-devel/clang ) + llvm_targets_NVPTX? ( sys-devel/clang ) + virtual/pkgconfig + ) + test? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/lit[${PYTHON_USEDEP}] + ') + sys-devel/clang + ) +" + +LLVM_COMPONENTS=( openmp cmake llvm/include ) +llvm.org_set_globals + +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 offload && LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + if use gdb-plugin || use test; then + python-single-r1_pkg_setup + fi +} + +multilib_src_configure() { + # LTO causes issues in other packages building, #870127 + filter-lto + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local build_omptarget=OFF + # upstream disallows building libomptarget when sizeof(void*) != 8 + if use offload && + "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} -c -x c - -o /dev/null \ + <<-EOF &>/dev/null + int test[sizeof(void *) == 8 ? 1 : -1]; + EOF + then + build_omptarget=ON + fi + + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=${build_omptarget} + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + # prevent trying to access the GPU + -DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND + ) + + if [[ ${build_omptarget} == ON ]]; then + if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then + mycmakeargs+=( + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=$(usex llvm_targets_AMDGPU) + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=$(usex llvm_targets_NVPTX) + ) + else + mycmakeargs+=( + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF + ) + fi + fi + + 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++")" + ) + addpredict /dev/nvidiactl + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} |