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-devel/llvm/
Date: Fri, 01 Oct 2021 13:27:31
Message-Id: 1633094834.4b8f66386764e2a90e013e25e26bf02acb2c3d1d.mgorny@gentoo
1 commit: 4b8f66386764e2a90e013e25e26bf02acb2c3d1d
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 1 12:37:29 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 1 13:27:14 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b8f6638
7
8 sys-devel/llvm: Remove 13.0.0 RCs
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/llvm/Manifest | 6 -
13 sys-devel/llvm/llvm-13.0.0_rc2.ebuild | 511 ----------------------------------
14 sys-devel/llvm/llvm-13.0.0_rc3.ebuild | 511 ----------------------------------
15 sys-devel/llvm/llvm-13.0.0_rc4.ebuild | 511 ----------------------------------
16 4 files changed, 1539 deletions(-)
17
18 diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
19 index 578c9305fe9..1049a69ff19 100644
20 --- a/sys-devel/llvm/Manifest
21 +++ b/sys-devel/llvm/Manifest
22 @@ -5,15 +5,9 @@ DIST llvm-13.0.0-manpages.tar.bz2 202595 BLAKE2B 1a3a389e8c544675f7ba2692f92bb82
23 DIST llvm-gentoo-patchset-10.0.1-3.tar.xz 9244 BLAKE2B f568b8eef92f048f08fb6618e7e3c69f218c73c71f85c498a341cfc06f892c15fa51011913547bb61f3f8cebb826b75276304fdcc4552b78d103b7fc6113e240 SHA512 1d90d5c990e6b7819681609a06c8b1cd5e094b9f9647ba486079abcdec375cd7c261ef1c5b41aa614decdc595bf830e1d325fb66b070cda1945bb6c7f08668b6
24 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
25 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
26 -DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
27 -DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
28 -DIST llvm-gentoo-patchset-13.0.0-rc4.tar.xz 5016 BLAKE2B 021ba4e67904e4cf4dfdf1ecfc1cd1cc860c2f43db97e04c40ca7d95567f6235a27a2a919083c58b89b269eefa2d751cb9c324bda6518c22e9fc01007936a520 SHA512 dce61179dffafc5992fb0e18314bba2d5fbf2f0470a491bc1ffc036274b65d0a1de741b23e2de32e873250c856a53707e06f8c560bd29f8a54a6ae0c74267f43
29 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
30 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
31 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
32 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
33 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
34 -DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
35 -DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46
36 -DIST llvmorg-13.0.0-rc4.tar.gz 147286367 BLAKE2B a43c54b8bb379b0374f99ae07066d7ba4ae2a83dfdb61390101c736f91dc44aa07a88778551aaaf903033562b2a0a863ea6b27392b700c9cddc74e2c7899cad1 SHA512 8ccaaea21ec4fe3c4b4446d3a7cae36a47ed196f407d341da45824bcefefffd3c412c0c5c27670ceaba1458bc53107273f9d3aec2de261b6b82c6d209b45b14d
37 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
38
39 diff --git a/sys-devel/llvm/llvm-13.0.0_rc2.ebuild b/sys-devel/llvm/llvm-13.0.0_rc2.ebuild
40 deleted file mode 100644
41 index 31f75d41c82..00000000000
42 --- a/sys-devel/llvm/llvm-13.0.0_rc2.ebuild
43 +++ /dev/null
44 @@ -1,511 +0,0 @@
45 -# Copyright 1999-2021 Gentoo Authors
46 -# Distributed under the terms of the GNU General Public License v2
47 -
48 -EAPI=7
49 -
50 -PYTHON_COMPAT=( python3_{8..10} )
51 -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
52 - toolchain-funcs
53 -
54 -DESCRIPTION="Low Level Virtual Machine"
55 -HOMEPAGE="https://llvm.org/"
56 -
57 -# Additional licenses:
58 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
59 -# 2. xxhash: BSD.
60 -# 3. MD5 code: public-domain.
61 -# 4. ConvertUTF.h: TODO.
62 -
63 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
64 -SLOT="$(ver_cut 1)"
65 -KEYWORDS=""
66 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3
67 - kernel_Darwin"
68 -RESTRICT="!test? ( test )"
69 -
70 -RDEPEND="
71 - sys-libs/zlib:0=[${MULTILIB_USEDEP}]
72 - exegesis? ( dev-libs/libpfm:= )
73 - gold? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
74 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
75 - libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
76 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
77 - xar? ( app-arch/xar )
78 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
79 - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
80 -DEPEND="${RDEPEND}
81 - gold? ( sys-libs/binutils-libs )"
82 -BDEPEND="
83 - dev-lang/perl
84 - >=dev-util/cmake-3.16
85 - sys-devel/gnuconfig
86 - kernel_Darwin? (
87 - <sys-libs/libcxx-$(ver_cut 1-3).9999
88 - >=sys-devel/binutils-apple-5.1
89 - )
90 - doc? ( $(python_gen_any_dep '
91 - dev-python/recommonmark[${PYTHON_USEDEP}]
92 - dev-python/sphinx[${PYTHON_USEDEP}]
93 - ') )
94 - libffi? ( virtual/pkgconfig )
95 - ${PYTHON_DEPS}"
96 -# There are no file collisions between these versions but having :0
97 -# installed means llvm-config there will take precedence.
98 -RDEPEND="${RDEPEND}
99 - !sys-devel/llvm:0"
100 -PDEPEND="sys-devel/llvm-common
101 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
102 -
103 -LLVM_COMPONENTS=( llvm )
104 -LLVM_MANPAGES=build
105 -LLVM_PATCHSET=13.0.0-rc2
106 -LLVM_USE_TARGETS=provide
107 -llvm.org_set_globals
108 -
109 -python_check_deps() {
110 - use doc || return 0
111 -
112 - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
113 - has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
114 -}
115 -
116 -check_live_ebuild() {
117 - local prod_targets=(
118 - $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
119 - | tail -n +2 | head -n -1)
120 - )
121 - local all_targets=(
122 - lib/Target/*/
123 - )
124 - all_targets=( "${all_targets[@]#lib/Target/}" )
125 - all_targets=( "${all_targets[@]%/}" )
126 -
127 - local exp_targets=() i
128 - for i in "${all_targets[@]}"; do
129 - has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
130 - done
131 -
132 - if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
133 - eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
134 - eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
135 - eqawarn "Expected: ${exp_targets[*]}"
136 - eqawarn
137 - fi
138 -
139 - if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
140 - eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
141 - eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
142 - eqawarn "Expected: ${prod_targets[*]}"
143 - fi
144 -}
145 -
146 -check_distribution_components() {
147 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
148 - local all_targets=() my_targets=() l
149 - cd "${BUILD_DIR}" || die
150 -
151 - while read -r l; do
152 - if [[ ${l} == install-*-stripped:* ]]; then
153 - l=${l#install-}
154 - l=${l%%-stripped*}
155 -
156 - case ${l} in
157 - # shared libs
158 - LLVM|LLVMgold)
159 - ;;
160 - # TableGen lib + deps
161 - LLVMDemangle|LLVMSupport|LLVMTableGen)
162 - ;;
163 - # static libs
164 - LLVM*)
165 - continue
166 - ;;
167 - # meta-targets
168 - distribution|llvm-libraries)
169 - continue
170 - ;;
171 - # used only w/ USE=doc
172 - docs-llvm-html)
173 - use doc || continue
174 - ;;
175 - esac
176 -
177 - all_targets+=( "${l}" )
178 - fi
179 - done < <(ninja -t targets all)
180 -
181 - while read -r l; do
182 - my_targets+=( "${l}" )
183 - done < <(get_distribution_components $"\n")
184 -
185 - local add=() remove=()
186 - for l in "${all_targets[@]}"; do
187 - if ! has "${l}" "${my_targets[@]}"; then
188 - add+=( "${l}" )
189 - fi
190 - done
191 - for l in "${my_targets[@]}"; do
192 - if ! has "${l}" "${all_targets[@]}"; then
193 - remove+=( "${l}" )
194 - fi
195 - done
196 -
197 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
198 - eqawarn "get_distribution_components() is outdated!"
199 - eqawarn " Add: ${add[*]}"
200 - eqawarn "Remove: ${remove[*]}"
201 - fi
202 - cd - >/dev/null || die
203 - fi
204 -}
205 -
206 -src_prepare() {
207 - # disable use of SDK on OSX, bug #568758
208 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
209 -
210 - # Update config.guess to support more systems
211 - cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
212 -
213 - # Verify that the live ebuild is up-to-date
214 - check_live_ebuild
215 -
216 - llvm.org_src_prepare
217 -}
218 -
219 -# Is LLVM being linked against libc++?
220 -is_libcxx_linked() {
221 - local code='#include <ciso646>
222 -#if defined(_LIBCPP_VERSION)
223 - HAVE_LIBCXX
224 -#endif
225 -'
226 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
227 -
228 - [[ ${out} == *HAVE_LIBCXX* ]]
229 -}
230 -
231 -get_distribution_components() {
232 - local sep=${1-;}
233 -
234 - local out=(
235 - # shared libs
236 - LLVM
237 - LTO
238 - Remarks
239 -
240 - # tools
241 - llvm-config
242 -
243 - # common stuff
244 - cmake-exports
245 - llvm-headers
246 -
247 - # libraries needed for clang-tblgen
248 - LLVMDemangle
249 - LLVMSupport
250 - LLVMTableGen
251 - )
252 -
253 - if multilib_is_native_abi; then
254 - out+=(
255 - # utilities
256 - llvm-tblgen
257 - FileCheck
258 - llvm-PerfectShuffle
259 - count
260 - not
261 - yaml-bench
262 -
263 - # tools
264 - bugpoint
265 - dsymutil
266 - llc
267 - lli
268 - lli-child-target
269 - llvm-addr2line
270 - llvm-ar
271 - llvm-as
272 - llvm-bcanalyzer
273 - llvm-bitcode-strip
274 - llvm-c-test
275 - llvm-cat
276 - llvm-cfi-verify
277 - llvm-config
278 - llvm-cov
279 - llvm-cvtres
280 - llvm-cxxdump
281 - llvm-cxxfilt
282 - llvm-cxxmap
283 - llvm-diff
284 - llvm-dis
285 - llvm-dlltool
286 - llvm-dwarfdump
287 - llvm-dwp
288 - llvm-exegesis
289 - llvm-extract
290 - llvm-gsymutil
291 - llvm-ifs
292 - llvm-install-name-tool
293 - llvm-jitlink
294 - llvm-jitlink-executor
295 - llvm-lib
296 - llvm-libtool-darwin
297 - llvm-link
298 - llvm-lipo
299 - llvm-lto
300 - llvm-lto2
301 - llvm-mc
302 - llvm-mca
303 - llvm-ml
304 - llvm-modextract
305 - llvm-mt
306 - llvm-nm
307 - llvm-objcopy
308 - llvm-objdump
309 - llvm-opt-report
310 - llvm-otool
311 - llvm-pdbutil
312 - llvm-profdata
313 - llvm-profgen
314 - llvm-ranlib
315 - llvm-rc
316 - llvm-readelf
317 - llvm-readobj
318 - llvm-reduce
319 - llvm-rtdyld
320 - llvm-sim
321 - llvm-size
322 - llvm-split
323 - llvm-stress
324 - llvm-strings
325 - llvm-strip
326 - llvm-symbolizer
327 - llvm-tapi-diff
328 - llvm-undname
329 - llvm-windres
330 - llvm-xray
331 - obj2yaml
332 - opt
333 - sancov
334 - sanstats
335 - split-file
336 - verify-uselistorder
337 - yaml2obj
338 -
339 - # python modules
340 - opt-viewer
341 - )
342 -
343 - if llvm_are_manpages_built; then
344 - out+=(
345 - # manpages
346 - docs-dsymutil-man
347 - docs-llvm-dwarfdump-man
348 - docs-llvm-man
349 - )
350 - fi
351 - use doc && out+=(
352 - docs-llvm-html
353 - )
354 -
355 - use gold && out+=(
356 - LLVMgold
357 - )
358 - fi
359 -
360 - printf "%s${sep}" "${out[@]}"
361 -}
362 -
363 -multilib_src_configure() {
364 - local ffi_cflags ffi_ldflags
365 - if use libffi; then
366 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
367 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
368 - fi
369 -
370 - local libdir=$(get_libdir)
371 - local mycmakeargs=(
372 - # disable appending VCS revision to the version to improve
373 - # direct cache hit ratio
374 - -DLLVM_APPEND_VC_REV=OFF
375 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
376 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
377 -
378 - -DBUILD_SHARED_LIBS=OFF
379 - -DLLVM_BUILD_LLVM_DYLIB=ON
380 - -DLLVM_LINK_LLVM_DYLIB=ON
381 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
382 -
383 - # cheap hack: LLVM combines both anyway, and the only difference
384 - # is that the former list is explicitly verified at cmake time
385 - -DLLVM_TARGETS_TO_BUILD=""
386 - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
387 - -DLLVM_BUILD_TESTS=$(usex test)
388 -
389 - -DLLVM_ENABLE_FFI=$(usex libffi)
390 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
391 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
392 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
393 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
394 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
395 - -DLLVM_ENABLE_EH=ON
396 - -DLLVM_ENABLE_RTTI=ON
397 - -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
398 -
399 - -DLLVM_HOST_TRIPLE="${CHOST}"
400 -
401 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
402 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
403 - # used only for llvm-objdump tool
404 - -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
405 -
406 - -DPython3_EXECUTABLE="${PYTHON}"
407 -
408 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
409 - -DOCAMLFIND=NO
410 - )
411 -
412 - if is_libcxx_linked; then
413 - # Smart hack: alter version suffix -> SOVERSION when linking
414 - # against libc++. This way we won't end up mixing LLVM libc++
415 - # libraries with libstdc++ clang, and the other way around.
416 - mycmakeargs+=(
417 - -DLLVM_VERSION_SUFFIX="libcxx"
418 - -DLLVM_ENABLE_LIBCXX=ON
419 - )
420 - fi
421 -
422 -# Note: go bindings have no CMake rules at the moment
423 -# but let's kill the check in case they are introduced
424 -# if ! multilib_is_native_abi || ! use go; then
425 - mycmakeargs+=(
426 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
427 - )
428 -# fi
429 -
430 - use test && mycmakeargs+=(
431 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
432 - )
433 -
434 - if multilib_is_native_abi; then
435 - local build_docs=OFF
436 - if llvm_are_manpages_built; then
437 - build_docs=ON
438 - mycmakeargs+=(
439 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
440 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
441 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
442 - )
443 - fi
444 -
445 - mycmakeargs+=(
446 - -DLLVM_BUILD_DOCS=${build_docs}
447 - -DLLVM_ENABLE_OCAMLDOC=OFF
448 - -DLLVM_ENABLE_SPHINX=${build_docs}
449 - -DLLVM_ENABLE_DOXYGEN=OFF
450 - -DLLVM_INSTALL_UTILS=ON
451 - )
452 - use gold && mycmakeargs+=(
453 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
454 - )
455 - fi
456 -
457 - if tc-is-cross-compiler; then
458 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
459 - [[ -x "${tblgen}" ]] \
460 - || die "${tblgen} not found or usable"
461 - mycmakeargs+=(
462 - -DCMAKE_CROSSCOMPILING=ON
463 - -DLLVM_TABLEGEN="${tblgen}"
464 - )
465 - fi
466 -
467 - # workaround BMI bug in gcc-7 (fixed in 7.4)
468 - # https://bugs.gentoo.org/649880
469 - # apply only to x86, https://bugs.gentoo.org/650506
470 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
471 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
472 - then
473 - local CFLAGS="${CFLAGS} -mno-bmi"
474 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
475 - fi
476 -
477 - # LLVM can have very high memory consumption while linking,
478 - # exhausting the limit on 32-bit linker executable
479 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
480 -
481 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
482 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
483 - cmake_src_configure
484 -
485 - multilib_is_native_abi && check_distribution_components
486 -}
487 -
488 -multilib_src_compile() {
489 - cmake_build distribution
490 -
491 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
492 - pax-mark m "${BUILD_DIR}"/bin/lli
493 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
494 -
495 - if use test; then
496 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
497 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
498 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
499 - fi
500 -}
501 -
502 -multilib_src_test() {
503 - # respect TMPDIR!
504 - local -x LIT_PRESERVES_TMP=1
505 - cmake_build check
506 -}
507 -
508 -src_install() {
509 - local MULTILIB_CHOST_TOOLS=(
510 - /usr/lib/llvm/${SLOT}/bin/llvm-config
511 - )
512 -
513 - local MULTILIB_WRAPPED_HEADERS=(
514 - /usr/include/llvm/Config/llvm-config.h
515 - )
516 -
517 - local LLVM_LDPATHS=()
518 - multilib-minimal_src_install
519 -
520 - # move wrapped headers back
521 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
522 -}
523 -
524 -multilib_src_install() {
525 - DESTDIR=${D} cmake_build install-distribution
526 -
527 - # move headers to /usr/include for wrapping
528 - rm -rf "${ED}"/usr/include || die
529 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
530 -
531 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
532 -}
533 -
534 -multilib_src_install_all() {
535 - local revord=$(( 9999 - ${SLOT} ))
536 - newenvd - "60llvm-${revord}" <<-_EOF_
537 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
538 - # we need to duplicate it in ROOTPATH for Portage to respect...
539 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
540 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
541 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
542 - _EOF_
543 -
544 - docompress "/usr/lib/llvm/${SLOT}/share/man"
545 - llvm_install_manpages
546 -}
547 -
548 -pkg_postinst() {
549 - elog "You can find additional opt-viewer utility scripts in:"
550 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
551 - elog "To use these scripts, you will need Python along with the following"
552 - elog "packages:"
553 - elog " dev-python/pygments (for opt-viewer)"
554 - elog " dev-python/pyyaml (for all of them)"
555 -}
556
557 diff --git a/sys-devel/llvm/llvm-13.0.0_rc3.ebuild b/sys-devel/llvm/llvm-13.0.0_rc3.ebuild
558 deleted file mode 100644
559 index 6eaee99b46f..00000000000
560 --- a/sys-devel/llvm/llvm-13.0.0_rc3.ebuild
561 +++ /dev/null
562 @@ -1,511 +0,0 @@
563 -# Copyright 1999-2021 Gentoo Authors
564 -# Distributed under the terms of the GNU General Public License v2
565 -
566 -EAPI=7
567 -
568 -PYTHON_COMPAT=( python3_{8..10} )
569 -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
570 - toolchain-funcs
571 -
572 -DESCRIPTION="Low Level Virtual Machine"
573 -HOMEPAGE="https://llvm.org/"
574 -
575 -# Additional licenses:
576 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
577 -# 2. xxhash: BSD.
578 -# 3. MD5 code: public-domain.
579 -# 4. ConvertUTF.h: TODO.
580 -
581 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
582 -SLOT="$(ver_cut 1)"
583 -KEYWORDS=""
584 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3
585 - kernel_Darwin"
586 -RESTRICT="!test? ( test )"
587 -
588 -RDEPEND="
589 - sys-libs/zlib:0=[${MULTILIB_USEDEP}]
590 - exegesis? ( dev-libs/libpfm:= )
591 - gold? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
592 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
593 - libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
594 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
595 - xar? ( app-arch/xar )
596 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
597 - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
598 -DEPEND="${RDEPEND}
599 - gold? ( sys-libs/binutils-libs )"
600 -BDEPEND="
601 - dev-lang/perl
602 - >=dev-util/cmake-3.16
603 - sys-devel/gnuconfig
604 - kernel_Darwin? (
605 - <sys-libs/libcxx-$(ver_cut 1-3).9999
606 - >=sys-devel/binutils-apple-5.1
607 - )
608 - doc? ( $(python_gen_any_dep '
609 - dev-python/recommonmark[${PYTHON_USEDEP}]
610 - dev-python/sphinx[${PYTHON_USEDEP}]
611 - ') )
612 - libffi? ( virtual/pkgconfig )
613 - ${PYTHON_DEPS}"
614 -# There are no file collisions between these versions but having :0
615 -# installed means llvm-config there will take precedence.
616 -RDEPEND="${RDEPEND}
617 - !sys-devel/llvm:0"
618 -PDEPEND="sys-devel/llvm-common
619 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
620 -
621 -LLVM_COMPONENTS=( llvm )
622 -LLVM_MANPAGES=build
623 -LLVM_PATCHSET=13.0.0-rc3
624 -LLVM_USE_TARGETS=provide
625 -llvm.org_set_globals
626 -
627 -python_check_deps() {
628 - use doc || return 0
629 -
630 - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
631 - has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
632 -}
633 -
634 -check_live_ebuild() {
635 - local prod_targets=(
636 - $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
637 - | tail -n +2 | head -n -1)
638 - )
639 - local all_targets=(
640 - lib/Target/*/
641 - )
642 - all_targets=( "${all_targets[@]#lib/Target/}" )
643 - all_targets=( "${all_targets[@]%/}" )
644 -
645 - local exp_targets=() i
646 - for i in "${all_targets[@]}"; do
647 - has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
648 - done
649 -
650 - if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
651 - eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
652 - eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
653 - eqawarn "Expected: ${exp_targets[*]}"
654 - eqawarn
655 - fi
656 -
657 - if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
658 - eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
659 - eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
660 - eqawarn "Expected: ${prod_targets[*]}"
661 - fi
662 -}
663 -
664 -check_distribution_components() {
665 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
666 - local all_targets=() my_targets=() l
667 - cd "${BUILD_DIR}" || die
668 -
669 - while read -r l; do
670 - if [[ ${l} == install-*-stripped:* ]]; then
671 - l=${l#install-}
672 - l=${l%%-stripped*}
673 -
674 - case ${l} in
675 - # shared libs
676 - LLVM|LLVMgold)
677 - ;;
678 - # TableGen lib + deps
679 - LLVMDemangle|LLVMSupport|LLVMTableGen)
680 - ;;
681 - # static libs
682 - LLVM*)
683 - continue
684 - ;;
685 - # meta-targets
686 - distribution|llvm-libraries)
687 - continue
688 - ;;
689 - # used only w/ USE=doc
690 - docs-llvm-html)
691 - use doc || continue
692 - ;;
693 - esac
694 -
695 - all_targets+=( "${l}" )
696 - fi
697 - done < <(ninja -t targets all)
698 -
699 - while read -r l; do
700 - my_targets+=( "${l}" )
701 - done < <(get_distribution_components $"\n")
702 -
703 - local add=() remove=()
704 - for l in "${all_targets[@]}"; do
705 - if ! has "${l}" "${my_targets[@]}"; then
706 - add+=( "${l}" )
707 - fi
708 - done
709 - for l in "${my_targets[@]}"; do
710 - if ! has "${l}" "${all_targets[@]}"; then
711 - remove+=( "${l}" )
712 - fi
713 - done
714 -
715 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
716 - eqawarn "get_distribution_components() is outdated!"
717 - eqawarn " Add: ${add[*]}"
718 - eqawarn "Remove: ${remove[*]}"
719 - fi
720 - cd - >/dev/null || die
721 - fi
722 -}
723 -
724 -src_prepare() {
725 - # disable use of SDK on OSX, bug #568758
726 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
727 -
728 - # Update config.guess to support more systems
729 - cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
730 -
731 - # Verify that the live ebuild is up-to-date
732 - check_live_ebuild
733 -
734 - llvm.org_src_prepare
735 -}
736 -
737 -# Is LLVM being linked against libc++?
738 -is_libcxx_linked() {
739 - local code='#include <ciso646>
740 -#if defined(_LIBCPP_VERSION)
741 - HAVE_LIBCXX
742 -#endif
743 -'
744 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
745 -
746 - [[ ${out} == *HAVE_LIBCXX* ]]
747 -}
748 -
749 -get_distribution_components() {
750 - local sep=${1-;}
751 -
752 - local out=(
753 - # shared libs
754 - LLVM
755 - LTO
756 - Remarks
757 -
758 - # tools
759 - llvm-config
760 -
761 - # common stuff
762 - cmake-exports
763 - llvm-headers
764 -
765 - # libraries needed for clang-tblgen
766 - LLVMDemangle
767 - LLVMSupport
768 - LLVMTableGen
769 - )
770 -
771 - if multilib_is_native_abi; then
772 - out+=(
773 - # utilities
774 - llvm-tblgen
775 - FileCheck
776 - llvm-PerfectShuffle
777 - count
778 - not
779 - yaml-bench
780 -
781 - # tools
782 - bugpoint
783 - dsymutil
784 - llc
785 - lli
786 - lli-child-target
787 - llvm-addr2line
788 - llvm-ar
789 - llvm-as
790 - llvm-bcanalyzer
791 - llvm-bitcode-strip
792 - llvm-c-test
793 - llvm-cat
794 - llvm-cfi-verify
795 - llvm-config
796 - llvm-cov
797 - llvm-cvtres
798 - llvm-cxxdump
799 - llvm-cxxfilt
800 - llvm-cxxmap
801 - llvm-diff
802 - llvm-dis
803 - llvm-dlltool
804 - llvm-dwarfdump
805 - llvm-dwp
806 - llvm-exegesis
807 - llvm-extract
808 - llvm-gsymutil
809 - llvm-ifs
810 - llvm-install-name-tool
811 - llvm-jitlink
812 - llvm-jitlink-executor
813 - llvm-lib
814 - llvm-libtool-darwin
815 - llvm-link
816 - llvm-lipo
817 - llvm-lto
818 - llvm-lto2
819 - llvm-mc
820 - llvm-mca
821 - llvm-ml
822 - llvm-modextract
823 - llvm-mt
824 - llvm-nm
825 - llvm-objcopy
826 - llvm-objdump
827 - llvm-opt-report
828 - llvm-otool
829 - llvm-pdbutil
830 - llvm-profdata
831 - llvm-profgen
832 - llvm-ranlib
833 - llvm-rc
834 - llvm-readelf
835 - llvm-readobj
836 - llvm-reduce
837 - llvm-rtdyld
838 - llvm-sim
839 - llvm-size
840 - llvm-split
841 - llvm-stress
842 - llvm-strings
843 - llvm-strip
844 - llvm-symbolizer
845 - llvm-tapi-diff
846 - llvm-undname
847 - llvm-windres
848 - llvm-xray
849 - obj2yaml
850 - opt
851 - sancov
852 - sanstats
853 - split-file
854 - verify-uselistorder
855 - yaml2obj
856 -
857 - # python modules
858 - opt-viewer
859 - )
860 -
861 - if llvm_are_manpages_built; then
862 - out+=(
863 - # manpages
864 - docs-dsymutil-man
865 - docs-llvm-dwarfdump-man
866 - docs-llvm-man
867 - )
868 - fi
869 - use doc && out+=(
870 - docs-llvm-html
871 - )
872 -
873 - use gold && out+=(
874 - LLVMgold
875 - )
876 - fi
877 -
878 - printf "%s${sep}" "${out[@]}"
879 -}
880 -
881 -multilib_src_configure() {
882 - local ffi_cflags ffi_ldflags
883 - if use libffi; then
884 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
885 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
886 - fi
887 -
888 - local libdir=$(get_libdir)
889 - local mycmakeargs=(
890 - # disable appending VCS revision to the version to improve
891 - # direct cache hit ratio
892 - -DLLVM_APPEND_VC_REV=OFF
893 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
894 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
895 -
896 - -DBUILD_SHARED_LIBS=OFF
897 - -DLLVM_BUILD_LLVM_DYLIB=ON
898 - -DLLVM_LINK_LLVM_DYLIB=ON
899 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
900 -
901 - # cheap hack: LLVM combines both anyway, and the only difference
902 - # is that the former list is explicitly verified at cmake time
903 - -DLLVM_TARGETS_TO_BUILD=""
904 - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
905 - -DLLVM_BUILD_TESTS=$(usex test)
906 -
907 - -DLLVM_ENABLE_FFI=$(usex libffi)
908 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
909 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
910 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
911 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
912 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
913 - -DLLVM_ENABLE_EH=ON
914 - -DLLVM_ENABLE_RTTI=ON
915 - -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
916 -
917 - -DLLVM_HOST_TRIPLE="${CHOST}"
918 -
919 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
920 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
921 - # used only for llvm-objdump tool
922 - -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
923 -
924 - -DPython3_EXECUTABLE="${PYTHON}"
925 -
926 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
927 - -DOCAMLFIND=NO
928 - )
929 -
930 - if is_libcxx_linked; then
931 - # Smart hack: alter version suffix -> SOVERSION when linking
932 - # against libc++. This way we won't end up mixing LLVM libc++
933 - # libraries with libstdc++ clang, and the other way around.
934 - mycmakeargs+=(
935 - -DLLVM_VERSION_SUFFIX="libcxx"
936 - -DLLVM_ENABLE_LIBCXX=ON
937 - )
938 - fi
939 -
940 -# Note: go bindings have no CMake rules at the moment
941 -# but let's kill the check in case they are introduced
942 -# if ! multilib_is_native_abi || ! use go; then
943 - mycmakeargs+=(
944 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
945 - )
946 -# fi
947 -
948 - use test && mycmakeargs+=(
949 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
950 - )
951 -
952 - if multilib_is_native_abi; then
953 - local build_docs=OFF
954 - if llvm_are_manpages_built; then
955 - build_docs=ON
956 - mycmakeargs+=(
957 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
958 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
959 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
960 - )
961 - fi
962 -
963 - mycmakeargs+=(
964 - -DLLVM_BUILD_DOCS=${build_docs}
965 - -DLLVM_ENABLE_OCAMLDOC=OFF
966 - -DLLVM_ENABLE_SPHINX=${build_docs}
967 - -DLLVM_ENABLE_DOXYGEN=OFF
968 - -DLLVM_INSTALL_UTILS=ON
969 - )
970 - use gold && mycmakeargs+=(
971 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
972 - )
973 - fi
974 -
975 - if tc-is-cross-compiler; then
976 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
977 - [[ -x "${tblgen}" ]] \
978 - || die "${tblgen} not found or usable"
979 - mycmakeargs+=(
980 - -DCMAKE_CROSSCOMPILING=ON
981 - -DLLVM_TABLEGEN="${tblgen}"
982 - )
983 - fi
984 -
985 - # workaround BMI bug in gcc-7 (fixed in 7.4)
986 - # https://bugs.gentoo.org/649880
987 - # apply only to x86, https://bugs.gentoo.org/650506
988 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
989 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
990 - then
991 - local CFLAGS="${CFLAGS} -mno-bmi"
992 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
993 - fi
994 -
995 - # LLVM can have very high memory consumption while linking,
996 - # exhausting the limit on 32-bit linker executable
997 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
998 -
999 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
1000 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
1001 - cmake_src_configure
1002 -
1003 - multilib_is_native_abi && check_distribution_components
1004 -}
1005 -
1006 -multilib_src_compile() {
1007 - cmake_build distribution
1008 -
1009 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
1010 - pax-mark m "${BUILD_DIR}"/bin/lli
1011 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
1012 -
1013 - if use test; then
1014 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
1015 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
1016 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
1017 - fi
1018 -}
1019 -
1020 -multilib_src_test() {
1021 - # respect TMPDIR!
1022 - local -x LIT_PRESERVES_TMP=1
1023 - cmake_build check
1024 -}
1025 -
1026 -src_install() {
1027 - local MULTILIB_CHOST_TOOLS=(
1028 - /usr/lib/llvm/${SLOT}/bin/llvm-config
1029 - )
1030 -
1031 - local MULTILIB_WRAPPED_HEADERS=(
1032 - /usr/include/llvm/Config/llvm-config.h
1033 - )
1034 -
1035 - local LLVM_LDPATHS=()
1036 - multilib-minimal_src_install
1037 -
1038 - # move wrapped headers back
1039 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
1040 -}
1041 -
1042 -multilib_src_install() {
1043 - DESTDIR=${D} cmake_build install-distribution
1044 -
1045 - # move headers to /usr/include for wrapping
1046 - rm -rf "${ED}"/usr/include || die
1047 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
1048 -
1049 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
1050 -}
1051 -
1052 -multilib_src_install_all() {
1053 - local revord=$(( 9999 - ${SLOT} ))
1054 - newenvd - "60llvm-${revord}" <<-_EOF_
1055 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
1056 - # we need to duplicate it in ROOTPATH for Portage to respect...
1057 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
1058 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
1059 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
1060 - _EOF_
1061 -
1062 - docompress "/usr/lib/llvm/${SLOT}/share/man"
1063 - llvm_install_manpages
1064 -}
1065 -
1066 -pkg_postinst() {
1067 - elog "You can find additional opt-viewer utility scripts in:"
1068 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
1069 - elog "To use these scripts, you will need Python along with the following"
1070 - elog "packages:"
1071 - elog " dev-python/pygments (for opt-viewer)"
1072 - elog " dev-python/pyyaml (for all of them)"
1073 -}
1074
1075 diff --git a/sys-devel/llvm/llvm-13.0.0_rc4.ebuild b/sys-devel/llvm/llvm-13.0.0_rc4.ebuild
1076 deleted file mode 100644
1077 index ee6e126425c..00000000000
1078 --- a/sys-devel/llvm/llvm-13.0.0_rc4.ebuild
1079 +++ /dev/null
1080 @@ -1,511 +0,0 @@
1081 -# Copyright 1999-2021 Gentoo Authors
1082 -# Distributed under the terms of the GNU General Public License v2
1083 -
1084 -EAPI=7
1085 -
1086 -PYTHON_COMPAT=( python3_{8..10} )
1087 -inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
1088 - toolchain-funcs
1089 -
1090 -DESCRIPTION="Low Level Virtual Machine"
1091 -HOMEPAGE="https://llvm.org/"
1092 -
1093 -# Additional licenses:
1094 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
1095 -# 2. xxhash: BSD.
1096 -# 3. MD5 code: public-domain.
1097 -# 4. ConvertUTF.h: TODO.
1098 -
1099 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
1100 -SLOT="$(ver_cut 1)"
1101 -KEYWORDS=""
1102 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3
1103 - kernel_Darwin"
1104 -RESTRICT="!test? ( test )"
1105 -
1106 -RDEPEND="
1107 - sys-libs/zlib:0=[${MULTILIB_USEDEP}]
1108 - exegesis? ( dev-libs/libpfm:= )
1109 - gold? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
1110 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
1111 - libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
1112 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
1113 - xar? ( app-arch/xar )
1114 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
1115 - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
1116 -DEPEND="${RDEPEND}
1117 - gold? ( sys-libs/binutils-libs )"
1118 -BDEPEND="
1119 - dev-lang/perl
1120 - >=dev-util/cmake-3.16
1121 - sys-devel/gnuconfig
1122 - kernel_Darwin? (
1123 - <sys-libs/libcxx-$(ver_cut 1-3).9999
1124 - >=sys-devel/binutils-apple-5.1
1125 - )
1126 - doc? ( $(python_gen_any_dep '
1127 - dev-python/recommonmark[${PYTHON_USEDEP}]
1128 - dev-python/sphinx[${PYTHON_USEDEP}]
1129 - ') )
1130 - libffi? ( virtual/pkgconfig )
1131 - ${PYTHON_DEPS}"
1132 -# There are no file collisions between these versions but having :0
1133 -# installed means llvm-config there will take precedence.
1134 -RDEPEND="${RDEPEND}
1135 - !sys-devel/llvm:0"
1136 -PDEPEND="sys-devel/llvm-common
1137 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
1138 -
1139 -LLVM_COMPONENTS=( llvm )
1140 -LLVM_MANPAGES=build
1141 -LLVM_PATCHSET=${PV/_/-}
1142 -LLVM_USE_TARGETS=provide
1143 -llvm.org_set_globals
1144 -
1145 -python_check_deps() {
1146 - use doc || return 0
1147 -
1148 - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
1149 - has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
1150 -}
1151 -
1152 -check_live_ebuild() {
1153 - local prod_targets=(
1154 - $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
1155 - | tail -n +2 | head -n -1)
1156 - )
1157 - local all_targets=(
1158 - lib/Target/*/
1159 - )
1160 - all_targets=( "${all_targets[@]#lib/Target/}" )
1161 - all_targets=( "${all_targets[@]%/}" )
1162 -
1163 - local exp_targets=() i
1164 - for i in "${all_targets[@]}"; do
1165 - has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
1166 - done
1167 -
1168 - if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
1169 - eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
1170 - eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
1171 - eqawarn "Expected: ${exp_targets[*]}"
1172 - eqawarn
1173 - fi
1174 -
1175 - if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
1176 - eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
1177 - eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
1178 - eqawarn "Expected: ${prod_targets[*]}"
1179 - fi
1180 -}
1181 -
1182 -check_distribution_components() {
1183 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
1184 - local all_targets=() my_targets=() l
1185 - cd "${BUILD_DIR}" || die
1186 -
1187 - while read -r l; do
1188 - if [[ ${l} == install-*-stripped:* ]]; then
1189 - l=${l#install-}
1190 - l=${l%%-stripped*}
1191 -
1192 - case ${l} in
1193 - # shared libs
1194 - LLVM|LLVMgold)
1195 - ;;
1196 - # TableGen lib + deps
1197 - LLVMDemangle|LLVMSupport|LLVMTableGen)
1198 - ;;
1199 - # static libs
1200 - LLVM*)
1201 - continue
1202 - ;;
1203 - # meta-targets
1204 - distribution|llvm-libraries)
1205 - continue
1206 - ;;
1207 - # used only w/ USE=doc
1208 - docs-llvm-html)
1209 - use doc || continue
1210 - ;;
1211 - esac
1212 -
1213 - all_targets+=( "${l}" )
1214 - fi
1215 - done < <(ninja -t targets all)
1216 -
1217 - while read -r l; do
1218 - my_targets+=( "${l}" )
1219 - done < <(get_distribution_components $"\n")
1220 -
1221 - local add=() remove=()
1222 - for l in "${all_targets[@]}"; do
1223 - if ! has "${l}" "${my_targets[@]}"; then
1224 - add+=( "${l}" )
1225 - fi
1226 - done
1227 - for l in "${my_targets[@]}"; do
1228 - if ! has "${l}" "${all_targets[@]}"; then
1229 - remove+=( "${l}" )
1230 - fi
1231 - done
1232 -
1233 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
1234 - eqawarn "get_distribution_components() is outdated!"
1235 - eqawarn " Add: ${add[*]}"
1236 - eqawarn "Remove: ${remove[*]}"
1237 - fi
1238 - cd - >/dev/null || die
1239 - fi
1240 -}
1241 -
1242 -src_prepare() {
1243 - # disable use of SDK on OSX, bug #568758
1244 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
1245 -
1246 - # Update config.guess to support more systems
1247 - cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
1248 -
1249 - # Verify that the live ebuild is up-to-date
1250 - check_live_ebuild
1251 -
1252 - llvm.org_src_prepare
1253 -}
1254 -
1255 -# Is LLVM being linked against libc++?
1256 -is_libcxx_linked() {
1257 - local code='#include <ciso646>
1258 -#if defined(_LIBCPP_VERSION)
1259 - HAVE_LIBCXX
1260 -#endif
1261 -'
1262 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
1263 -
1264 - [[ ${out} == *HAVE_LIBCXX* ]]
1265 -}
1266 -
1267 -get_distribution_components() {
1268 - local sep=${1-;}
1269 -
1270 - local out=(
1271 - # shared libs
1272 - LLVM
1273 - LTO
1274 - Remarks
1275 -
1276 - # tools
1277 - llvm-config
1278 -
1279 - # common stuff
1280 - cmake-exports
1281 - llvm-headers
1282 -
1283 - # libraries needed for clang-tblgen
1284 - LLVMDemangle
1285 - LLVMSupport
1286 - LLVMTableGen
1287 - )
1288 -
1289 - if multilib_is_native_abi; then
1290 - out+=(
1291 - # utilities
1292 - llvm-tblgen
1293 - FileCheck
1294 - llvm-PerfectShuffle
1295 - count
1296 - not
1297 - yaml-bench
1298 -
1299 - # tools
1300 - bugpoint
1301 - dsymutil
1302 - llc
1303 - lli
1304 - lli-child-target
1305 - llvm-addr2line
1306 - llvm-ar
1307 - llvm-as
1308 - llvm-bcanalyzer
1309 - llvm-bitcode-strip
1310 - llvm-c-test
1311 - llvm-cat
1312 - llvm-cfi-verify
1313 - llvm-config
1314 - llvm-cov
1315 - llvm-cvtres
1316 - llvm-cxxdump
1317 - llvm-cxxfilt
1318 - llvm-cxxmap
1319 - llvm-diff
1320 - llvm-dis
1321 - llvm-dlltool
1322 - llvm-dwarfdump
1323 - llvm-dwp
1324 - llvm-exegesis
1325 - llvm-extract
1326 - llvm-gsymutil
1327 - llvm-ifs
1328 - llvm-install-name-tool
1329 - llvm-jitlink
1330 - llvm-jitlink-executor
1331 - llvm-lib
1332 - llvm-libtool-darwin
1333 - llvm-link
1334 - llvm-lipo
1335 - llvm-lto
1336 - llvm-lto2
1337 - llvm-mc
1338 - llvm-mca
1339 - llvm-ml
1340 - llvm-modextract
1341 - llvm-mt
1342 - llvm-nm
1343 - llvm-objcopy
1344 - llvm-objdump
1345 - llvm-opt-report
1346 - llvm-otool
1347 - llvm-pdbutil
1348 - llvm-profdata
1349 - llvm-profgen
1350 - llvm-ranlib
1351 - llvm-rc
1352 - llvm-readelf
1353 - llvm-readobj
1354 - llvm-reduce
1355 - llvm-rtdyld
1356 - llvm-sim
1357 - llvm-size
1358 - llvm-split
1359 - llvm-stress
1360 - llvm-strings
1361 - llvm-strip
1362 - llvm-symbolizer
1363 - llvm-tapi-diff
1364 - llvm-undname
1365 - llvm-windres
1366 - llvm-xray
1367 - obj2yaml
1368 - opt
1369 - sancov
1370 - sanstats
1371 - split-file
1372 - verify-uselistorder
1373 - yaml2obj
1374 -
1375 - # python modules
1376 - opt-viewer
1377 - )
1378 -
1379 - if llvm_are_manpages_built; then
1380 - out+=(
1381 - # manpages
1382 - docs-dsymutil-man
1383 - docs-llvm-dwarfdump-man
1384 - docs-llvm-man
1385 - )
1386 - fi
1387 - use doc && out+=(
1388 - docs-llvm-html
1389 - )
1390 -
1391 - use gold && out+=(
1392 - LLVMgold
1393 - )
1394 - fi
1395 -
1396 - printf "%s${sep}" "${out[@]}"
1397 -}
1398 -
1399 -multilib_src_configure() {
1400 - local ffi_cflags ffi_ldflags
1401 - if use libffi; then
1402 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
1403 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
1404 - fi
1405 -
1406 - local libdir=$(get_libdir)
1407 - local mycmakeargs=(
1408 - # disable appending VCS revision to the version to improve
1409 - # direct cache hit ratio
1410 - -DLLVM_APPEND_VC_REV=OFF
1411 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
1412 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
1413 -
1414 - -DBUILD_SHARED_LIBS=OFF
1415 - -DLLVM_BUILD_LLVM_DYLIB=ON
1416 - -DLLVM_LINK_LLVM_DYLIB=ON
1417 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
1418 -
1419 - # cheap hack: LLVM combines both anyway, and the only difference
1420 - # is that the former list is explicitly verified at cmake time
1421 - -DLLVM_TARGETS_TO_BUILD=""
1422 - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
1423 - -DLLVM_BUILD_TESTS=$(usex test)
1424 -
1425 - -DLLVM_ENABLE_FFI=$(usex libffi)
1426 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
1427 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
1428 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
1429 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
1430 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
1431 - -DLLVM_ENABLE_EH=ON
1432 - -DLLVM_ENABLE_RTTI=ON
1433 - -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
1434 -
1435 - -DLLVM_HOST_TRIPLE="${CHOST}"
1436 -
1437 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
1438 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
1439 - # used only for llvm-objdump tool
1440 - -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
1441 -
1442 - -DPython3_EXECUTABLE="${PYTHON}"
1443 -
1444 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
1445 - -DOCAMLFIND=NO
1446 - )
1447 -
1448 - if is_libcxx_linked; then
1449 - # Smart hack: alter version suffix -> SOVERSION when linking
1450 - # against libc++. This way we won't end up mixing LLVM libc++
1451 - # libraries with libstdc++ clang, and the other way around.
1452 - mycmakeargs+=(
1453 - -DLLVM_VERSION_SUFFIX="libcxx"
1454 - -DLLVM_ENABLE_LIBCXX=ON
1455 - )
1456 - fi
1457 -
1458 -# Note: go bindings have no CMake rules at the moment
1459 -# but let's kill the check in case they are introduced
1460 -# if ! multilib_is_native_abi || ! use go; then
1461 - mycmakeargs+=(
1462 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
1463 - )
1464 -# fi
1465 -
1466 - use test && mycmakeargs+=(
1467 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
1468 - )
1469 -
1470 - if multilib_is_native_abi; then
1471 - local build_docs=OFF
1472 - if llvm_are_manpages_built; then
1473 - build_docs=ON
1474 - mycmakeargs+=(
1475 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
1476 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
1477 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
1478 - )
1479 - fi
1480 -
1481 - mycmakeargs+=(
1482 - -DLLVM_BUILD_DOCS=${build_docs}
1483 - -DLLVM_ENABLE_OCAMLDOC=OFF
1484 - -DLLVM_ENABLE_SPHINX=${build_docs}
1485 - -DLLVM_ENABLE_DOXYGEN=OFF
1486 - -DLLVM_INSTALL_UTILS=ON
1487 - )
1488 - use gold && mycmakeargs+=(
1489 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
1490 - )
1491 - fi
1492 -
1493 - if tc-is-cross-compiler; then
1494 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
1495 - [[ -x "${tblgen}" ]] \
1496 - || die "${tblgen} not found or usable"
1497 - mycmakeargs+=(
1498 - -DCMAKE_CROSSCOMPILING=ON
1499 - -DLLVM_TABLEGEN="${tblgen}"
1500 - )
1501 - fi
1502 -
1503 - # workaround BMI bug in gcc-7 (fixed in 7.4)
1504 - # https://bugs.gentoo.org/649880
1505 - # apply only to x86, https://bugs.gentoo.org/650506
1506 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
1507 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
1508 - then
1509 - local CFLAGS="${CFLAGS} -mno-bmi"
1510 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
1511 - fi
1512 -
1513 - # LLVM can have very high memory consumption while linking,
1514 - # exhausting the limit on 32-bit linker executable
1515 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
1516 -
1517 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
1518 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
1519 - cmake_src_configure
1520 -
1521 - multilib_is_native_abi && check_distribution_components
1522 -}
1523 -
1524 -multilib_src_compile() {
1525 - cmake_build distribution
1526 -
1527 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
1528 - pax-mark m "${BUILD_DIR}"/bin/lli
1529 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
1530 -
1531 - if use test; then
1532 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
1533 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
1534 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
1535 - fi
1536 -}
1537 -
1538 -multilib_src_test() {
1539 - # respect TMPDIR!
1540 - local -x LIT_PRESERVES_TMP=1
1541 - cmake_build check
1542 -}
1543 -
1544 -src_install() {
1545 - local MULTILIB_CHOST_TOOLS=(
1546 - /usr/lib/llvm/${SLOT}/bin/llvm-config
1547 - )
1548 -
1549 - local MULTILIB_WRAPPED_HEADERS=(
1550 - /usr/include/llvm/Config/llvm-config.h
1551 - )
1552 -
1553 - local LLVM_LDPATHS=()
1554 - multilib-minimal_src_install
1555 -
1556 - # move wrapped headers back
1557 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
1558 -}
1559 -
1560 -multilib_src_install() {
1561 - DESTDIR=${D} cmake_build install-distribution
1562 -
1563 - # move headers to /usr/include for wrapping
1564 - rm -rf "${ED}"/usr/include || die
1565 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
1566 -
1567 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
1568 -}
1569 -
1570 -multilib_src_install_all() {
1571 - local revord=$(( 9999 - ${SLOT} ))
1572 - newenvd - "60llvm-${revord}" <<-_EOF_
1573 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
1574 - # we need to duplicate it in ROOTPATH for Portage to respect...
1575 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
1576 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
1577 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
1578 - _EOF_
1579 -
1580 - docompress "/usr/lib/llvm/${SLOT}/share/man"
1581 - llvm_install_manpages
1582 -}
1583 -
1584 -pkg_postinst() {
1585 - elog "You can find additional opt-viewer utility scripts in:"
1586 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
1587 - elog "To use these scripts, you will need Python along with the following"
1588 - elog "packages:"
1589 - elog " dev-python/pygments (for opt-viewer)"
1590 - elog " dev-python/pyyaml (for all of them)"
1591 -}