Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/libomp/
Date: Tue, 14 Mar 2023 19:43:52
Message-Id: 1678823017.64fd2ec69c8d22c67be9d2b89df92f766c283c47.mgorny@gentoo
1 commit: 64fd2ec69c8d22c67be9d2b89df92f766c283c47
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 14 14:51:36 2023 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 14 19:43:37 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64fd2ec6
7
8 sys-libs/libomp: Add 17.0.0_pre20230314 snapshot
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-libs/libomp/Manifest | 1 +
13 sys-libs/libomp/libomp-17.0.0_pre20230314.ebuild | 149 +++++++++++++++++++++++
14 2 files changed, 150 insertions(+)
15
16 diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest
17 index e1352dfe2bfc..0c2fbc024b6e 100644
18 --- a/sys-libs/libomp/Manifest
19 +++ b/sys-libs/libomp/Manifest
20 @@ -9,3 +9,4 @@ DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f7141
21 DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc
22 DIST llvm-project-16.0.0rc4.src.tar.xz.sig 566 BLAKE2B bfcf39070f32e16cfeae699d95d06f184b1331c3af403340c31cc5a973a3bb1faec0b6342445176cebed5819ddf68e4abfdaa8542ec425b1c822fc8c03c03349 SHA512 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f
23 DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5
24 +DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068
25
26 diff --git a/sys-libs/libomp/libomp-17.0.0_pre20230314.ebuild b/sys-libs/libomp/libomp-17.0.0_pre20230314.ebuild
27 new file mode 100644
28 index 000000000000..57c4ff3a33d0
29 --- /dev/null
30 +++ b/sys-libs/libomp/libomp-17.0.0_pre20230314.ebuild
31 @@ -0,0 +1,149 @@
32 +# Copyright 1999-2023 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=8
36 +
37 +PYTHON_COMPAT=( python3_{9..11} )
38 +inherit flag-o-matic cmake-multilib linux-info llvm llvm.org
39 +inherit python-single-r1 toolchain-funcs
40 +
41 +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
42 +HOMEPAGE="https://openmp.llvm.org"
43 +
44 +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
45 +SLOT="0/${LLVM_SOABI}"
46 +KEYWORDS=""
47 +IUSE="
48 + debug gdb-plugin hwloc offload ompt test
49 + llvm_targets_AMDGPU llvm_targets_NVPTX
50 +"
51 +REQUIRED_USE="
52 + gdb-plugin? ( ${PYTHON_REQUIRED_USE} )
53 +"
54 +RESTRICT="!test? ( test )"
55 +
56 +RDEPEND="
57 + gdb-plugin? ( ${PYTHON_DEPS} )
58 + hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
59 + offload? (
60 + dev-libs/libffi:=[${MULTILIB_USEDEP}]
61 + ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}]
62 + llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= )
63 + )
64 +"
65 +# tests:
66 +# - dev-python/lit provides the test runner
67 +# - sys-devel/llvm provide test utils (e.g. FileCheck)
68 +# - sys-devel/clang provides the compiler to run tests
69 +DEPEND="
70 + ${RDEPEND}
71 +"
72 +BDEPEND="
73 + dev-lang/perl
74 + offload? (
75 + llvm_targets_AMDGPU? ( sys-devel/clang )
76 + llvm_targets_NVPTX? ( sys-devel/clang )
77 + virtual/pkgconfig
78 + )
79 + test? (
80 + ${PYTHON_DEPS}
81 + $(python_gen_cond_dep '
82 + dev-python/lit[${PYTHON_USEDEP}]
83 + ')
84 + sys-devel/clang
85 + )
86 +"
87 +
88 +LLVM_COMPONENTS=( openmp cmake llvm/include )
89 +llvm.org_set_globals
90 +
91 +kernel_pds_check() {
92 + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then
93 + local CONFIG_CHECK="~!SCHED_PDS"
94 + local ERROR_SCHED_PDS="\
95 +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11
96 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible
97 +performance problems with libomp. If you are using one of the specified
98 +kernel versions, you may want to disable the PDS scheduler."
99 +
100 + check_extra_config
101 + fi
102 +}
103 +
104 +pkg_pretend() {
105 + kernel_pds_check
106 +}
107 +
108 +pkg_setup() {
109 + use offload && LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
110 + if use gdb-plugin || use test; then
111 + python-single-r1_pkg_setup
112 + fi
113 +}
114 +
115 +multilib_src_configure() {
116 + # LTO causes issues in other packages building, #870127
117 + filter-lto
118 +
119 + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
120 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
121 +
122 + local build_omptarget=OFF
123 + # upstream disallows building libomptarget when sizeof(void*) != 8
124 + if use offload &&
125 + "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} -c -x c - -o /dev/null \
126 + <<-EOF &>/dev/null
127 + int test[sizeof(void *) == 8 ? 1 : -1];
128 + EOF
129 + then
130 + build_omptarget=ON
131 + fi
132 +
133 + local libdir="$(get_libdir)"
134 + local mycmakeargs=(
135 + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}"
136 +
137 + -DLIBOMP_USE_HWLOC=$(usex hwloc)
138 + -DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin)
139 + -DLIBOMP_OMPT_SUPPORT=$(usex ompt)
140 +
141 + -DOPENMP_ENABLE_LIBOMPTARGET=${build_omptarget}
142 +
143 + # do not install libgomp.so & libiomp5.so aliases
144 + -DLIBOMP_INSTALL_ALIASES=OFF
145 + # disable unnecessary hack copying stuff back to srcdir
146 + -DLIBOMP_COPY_EXPORTS=OFF
147 + )
148 +
149 + if [[ ${build_omptarget} == ON ]]; then
150 + if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
151 + mycmakeargs+=(
152 + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=$(usex llvm_targets_AMDGPU)
153 + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=$(usex llvm_targets_NVPTX)
154 + )
155 + else
156 + mycmakeargs+=(
157 + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF
158 + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF
159 + )
160 + fi
161 + fi
162 +
163 + use test && mycmakeargs+=(
164 + # this project does not use standard LLVM cmake macros
165 + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
166 + -DOPENMP_LIT_ARGS="$(get_lit_flags)"
167 +
168 + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
169 + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
170 + )
171 + addpredict /dev/nvidiactl
172 + cmake_src_configure
173 +}
174 +
175 +multilib_src_test() {
176 + # respect TMPDIR!
177 + local -x LIT_PRESERVES_TMP=1
178 +
179 + cmake_build check-libomp
180 +}