From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 86AE515800A for ; Sun, 20 Aug 2023 12:02:50 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B88DB2BC046; Sun, 20 Aug 2023 12:02:47 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 57C582BC044 for ; Sun, 20 Aug 2023 12:02:47 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 709FB341217 for ; Sun, 20 Aug 2023 12:02:46 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DBD75104B for ; Sun, 20 Aug 2023 12:02:42 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1692532956.7be57784803bf5200d0bdca435859dc97d172f9d.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/libomp/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-libs/libomp/Manifest sys-libs/libomp/libomp-18.0.0_pre20230820.ebuild X-VCS-Directories: sys-libs/libomp/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 7be57784803bf5200d0bdca435859dc97d172f9d X-VCS-Branch: master Date: Sun, 20 Aug 2023 12:02:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: bde06cd6-879d-4866-b235-cc1a2b73a958 X-Archives-Hash: a1e92716341535b869ba0ebdfa5dc904 commit: 7be57784803bf5200d0bdca435859dc97d172f9d Author: Michał Górny gentoo org> AuthorDate: Sun Aug 20 12:01:19 2023 +0000 Commit: Michał Górny gentoo org> CommitDate: Sun Aug 20 12:02:36 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7be57784 sys-libs/libomp: Add 18.0.0_pre20230820 snapshot Signed-off-by: Michał Górny gentoo.org> sys-libs/libomp/Manifest | 1 + sys-libs/libomp/libomp-18.0.0_pre20230820.ebuild | 151 +++++++++++++++++++++++ 2 files changed, 152 insertions(+) diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index ced1a7cabb94..c12929d3cd5d 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -13,3 +13,4 @@ DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d57 DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710 DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b +DIST llvm-project-fe42682e7818d44cbe19f98ef34caa4e414aa937.tar.gz 196564445 BLAKE2B 056e6622b38009e34392c1d1755086e008bc85e9b4c00126e7ca92ddaee2ede7f31bafbc6ca04c5008983ce843d19fb152d75ce01e6ece4c2d891cc38604532c SHA512 8245f8a50f77e9ac9c0309a0025fde8407bb82d82277e3edba0a995debff50940e9500d4ad65060a330e6c19e2e1332d700ea040ca382ef4b75282a4566cbf72 diff --git a/sys-libs/libomp/libomp-18.0.0_pre20230820.ebuild b/sys-libs/libomp/libomp-18.0.0_pre20230820.ebuild new file mode 100644 index 000000000000..31560a1c0eef --- /dev/null +++ b/sys-libs/libomp/libomp-18.0.0_pre20230820.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 +}