commit:     24e2d10e6b9b2c7f9532787ccefe85288a9babf0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 15:50:33 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 15:50:33 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24e2d10e

sys-libs/libomp: Add 18.0.0_pre20231013 snapshot

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

 sys-libs/libomp/Manifest                         |   1 +
 sys-libs/libomp/libomp-18.0.0_pre20231013.ebuild | 151 +++++++++++++++++++++++
 2 files changed, 152 insertions(+)

diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest
index a5863568a308..38ed96161550 100644
--- a/sys-libs/libomp/Manifest
+++ b/sys-libs/libomp/Manifest
@@ -12,4 +12,5 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 
3182e3c3a48635fdec39b945ee3b
 DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B 
fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12
 SHA512 
4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659
 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 
3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb
 SHA512 
234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909
 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 
BLAKE2B 
001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961
 SHA512 
b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
+DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 
BLAKE2B 
7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a
 SHA512 
4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 
BLAKE2B 
1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988
 SHA512 
9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libomp/libomp-18.0.0_pre20231013.ebuild 
b/sys-libs/libomp/libomp-18.0.0_pre20231013.ebuild
new file mode 100644
index 000000000000..31560a1c0eef
--- /dev/null
+++ b/sys-libs/libomp/libomp-18.0.0_pre20231013.ebuild
@@ -0,0 +1,151 @@
+# 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}"
+KEYWORDS=""
+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
+}

Reply via email to