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: Tue, 30 Nov 2021 10:01:37
Message-Id: 1638266473.24d8d11894ce0797cfb26e7fe0a7c290884d8d12.mgorny@gentoo
1 commit: 24d8d11894ce0797cfb26e7fe0a7c290884d8d12
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Tue Nov 30 09:44:38 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Tue Nov 30 10:01:13 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24d8d118
7
8 sys-devel/llvm: Bump to 13.0.1_rc1
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/llvm/Manifest | 2 +
13 sys-devel/llvm/llvm-13.0.1_rc1.ebuild | 511 ++++++++++++++++++++++++++++++++++
14 2 files changed, 513 insertions(+)
15
16 diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
17 index 397f63350ab4..611dc80a5a82 100644
18 --- a/sys-devel/llvm/Manifest
19 +++ b/sys-devel/llvm/Manifest
20 @@ -4,7 +4,9 @@ DIST llvm-13.0.0-manpages.tar.bz2 202595 BLAKE2B 1a3a389e8c544675f7ba2692f92bb82
21 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
22 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
23 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
24 +DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea
25 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
26 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
27 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
28 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
29 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d
30
31 diff --git a/sys-devel/llvm/llvm-13.0.1_rc1.ebuild b/sys-devel/llvm/llvm-13.0.1_rc1.ebuild
32 new file mode 100644
33 index 000000000000..16dc1da25def
34 --- /dev/null
35 +++ b/sys-devel/llvm/llvm-13.0.1_rc1.ebuild
36 @@ -0,0 +1,511 @@
37 +# Copyright 1999-2021 Gentoo Authors
38 +# Distributed under the terms of the GNU General Public License v2
39 +
40 +EAPI=7
41 +
42 +PYTHON_COMPAT=( python3_{8..10} )
43 +inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
44 + toolchain-funcs
45 +
46 +DESCRIPTION="Low Level Virtual Machine"
47 +HOMEPAGE="https://llvm.org/"
48 +
49 +# Additional licenses:
50 +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
51 +# 2. xxhash: BSD.
52 +# 3. MD5 code: public-domain.
53 +# 4. ConvertUTF.h: TODO.
54 +
55 +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
56 +SLOT="$(ver_cut 1)"
57 +KEYWORDS=""
58 +IUSE="+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar xml
59 + z3 kernel_Darwin"
60 +RESTRICT="!test? ( test )"
61 +
62 +RDEPEND="
63 + sys-libs/zlib:0=[${MULTILIB_USEDEP}]
64 + binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
65 + exegesis? ( dev-libs/libpfm:= )
66 + libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
67 + libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
68 + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
69 + xar? ( app-arch/xar )
70 + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
71 + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
72 +DEPEND="${RDEPEND}
73 + binutils-plugin? ( sys-libs/binutils-libs )"
74 +BDEPEND="
75 + dev-lang/perl
76 + >=dev-util/cmake-3.16
77 + sys-devel/gnuconfig
78 + kernel_Darwin? (
79 + <sys-libs/libcxx-$(ver_cut 1-3).9999
80 + >=sys-devel/binutils-apple-5.1
81 + )
82 + doc? ( $(python_gen_any_dep '
83 + dev-python/recommonmark[${PYTHON_USEDEP}]
84 + dev-python/sphinx[${PYTHON_USEDEP}]
85 + ') )
86 + libffi? ( virtual/pkgconfig )
87 + ${PYTHON_DEPS}"
88 +# There are no file collisions between these versions but having :0
89 +# installed means llvm-config there will take precedence.
90 +RDEPEND="${RDEPEND}
91 + !sys-devel/llvm:0"
92 +PDEPEND="sys-devel/llvm-common
93 + binutils-plugin? ( >=sys-devel/llvmgold-${SLOT} )"
94 +
95 +LLVM_COMPONENTS=( llvm )
96 +LLVM_MANPAGES=build
97 +LLVM_PATCHSET=${PV/_/-}
98 +LLVM_USE_TARGETS=provide
99 +llvm.org_set_globals
100 +
101 +python_check_deps() {
102 + use doc || return 0
103 +
104 + has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
105 + has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
106 +}
107 +
108 +check_live_ebuild() {
109 + local prod_targets=(
110 + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
111 + | tail -n +2 | head -n -1)
112 + )
113 + local all_targets=(
114 + lib/Target/*/
115 + )
116 + all_targets=( "${all_targets[@]#lib/Target/}" )
117 + all_targets=( "${all_targets[@]%/}" )
118 +
119 + local exp_targets=() i
120 + for i in "${all_targets[@]}"; do
121 + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
122 + done
123 +
124 + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
125 + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
126 + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
127 + eqawarn "Expected: ${exp_targets[*]}"
128 + eqawarn
129 + fi
130 +
131 + if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
132 + eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
133 + eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
134 + eqawarn "Expected: ${prod_targets[*]}"
135 + fi
136 +}
137 +
138 +check_distribution_components() {
139 + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
140 + local all_targets=() my_targets=() l
141 + cd "${BUILD_DIR}" || die
142 +
143 + while read -r l; do
144 + if [[ ${l} == install-*-stripped:* ]]; then
145 + l=${l#install-}
146 + l=${l%%-stripped*}
147 +
148 + case ${l} in
149 + # shared libs
150 + LLVM|LLVMgold)
151 + ;;
152 + # TableGen lib + deps
153 + LLVMDemangle|LLVMSupport|LLVMTableGen)
154 + ;;
155 + # static libs
156 + LLVM*)
157 + continue
158 + ;;
159 + # meta-targets
160 + distribution|llvm-libraries)
161 + continue
162 + ;;
163 + # used only w/ USE=doc
164 + docs-llvm-html)
165 + use doc || continue
166 + ;;
167 + esac
168 +
169 + all_targets+=( "${l}" )
170 + fi
171 + done < <(ninja -t targets all)
172 +
173 + while read -r l; do
174 + my_targets+=( "${l}" )
175 + done < <(get_distribution_components $"\n")
176 +
177 + local add=() remove=()
178 + for l in "${all_targets[@]}"; do
179 + if ! has "${l}" "${my_targets[@]}"; then
180 + add+=( "${l}" )
181 + fi
182 + done
183 + for l in "${my_targets[@]}"; do
184 + if ! has "${l}" "${all_targets[@]}"; then
185 + remove+=( "${l}" )
186 + fi
187 + done
188 +
189 + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
190 + eqawarn "get_distribution_components() is outdated!"
191 + eqawarn " Add: ${add[*]}"
192 + eqawarn "Remove: ${remove[*]}"
193 + fi
194 + cd - >/dev/null || die
195 + fi
196 +}
197 +
198 +src_prepare() {
199 + # disable use of SDK on OSX, bug #568758
200 + sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
201 +
202 + # Update config.guess to support more systems
203 + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
204 +
205 + # Verify that the live ebuild is up-to-date
206 + check_live_ebuild
207 +
208 + llvm.org_src_prepare
209 +}
210 +
211 +# Is LLVM being linked against libc++?
212 +is_libcxx_linked() {
213 + local code='#include <ciso646>
214 +#if defined(_LIBCPP_VERSION)
215 + HAVE_LIBCXX
216 +#endif
217 +'
218 + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
219 +
220 + [[ ${out} == *HAVE_LIBCXX* ]]
221 +}
222 +
223 +get_distribution_components() {
224 + local sep=${1-;}
225 +
226 + local out=(
227 + # shared libs
228 + LLVM
229 + LTO
230 + Remarks
231 +
232 + # tools
233 + llvm-config
234 +
235 + # common stuff
236 + cmake-exports
237 + llvm-headers
238 +
239 + # libraries needed for clang-tblgen
240 + LLVMDemangle
241 + LLVMSupport
242 + LLVMTableGen
243 + )
244 +
245 + if multilib_is_native_abi; then
246 + out+=(
247 + # utilities
248 + llvm-tblgen
249 + FileCheck
250 + llvm-PerfectShuffle
251 + count
252 + not
253 + yaml-bench
254 +
255 + # tools
256 + bugpoint
257 + dsymutil
258 + llc
259 + lli
260 + lli-child-target
261 + llvm-addr2line
262 + llvm-ar
263 + llvm-as
264 + llvm-bcanalyzer
265 + llvm-bitcode-strip
266 + llvm-c-test
267 + llvm-cat
268 + llvm-cfi-verify
269 + llvm-config
270 + llvm-cov
271 + llvm-cvtres
272 + llvm-cxxdump
273 + llvm-cxxfilt
274 + llvm-cxxmap
275 + llvm-diff
276 + llvm-dis
277 + llvm-dlltool
278 + llvm-dwarfdump
279 + llvm-dwp
280 + llvm-exegesis
281 + llvm-extract
282 + llvm-gsymutil
283 + llvm-ifs
284 + llvm-install-name-tool
285 + llvm-jitlink
286 + llvm-jitlink-executor
287 + llvm-lib
288 + llvm-libtool-darwin
289 + llvm-link
290 + llvm-lipo
291 + llvm-lto
292 + llvm-lto2
293 + llvm-mc
294 + llvm-mca
295 + llvm-ml
296 + llvm-modextract
297 + llvm-mt
298 + llvm-nm
299 + llvm-objcopy
300 + llvm-objdump
301 + llvm-opt-report
302 + llvm-otool
303 + llvm-pdbutil
304 + llvm-profdata
305 + llvm-profgen
306 + llvm-ranlib
307 + llvm-rc
308 + llvm-readelf
309 + llvm-readobj
310 + llvm-reduce
311 + llvm-rtdyld
312 + llvm-sim
313 + llvm-size
314 + llvm-split
315 + llvm-stress
316 + llvm-strings
317 + llvm-strip
318 + llvm-symbolizer
319 + llvm-tapi-diff
320 + llvm-undname
321 + llvm-windres
322 + llvm-xray
323 + obj2yaml
324 + opt
325 + sancov
326 + sanstats
327 + split-file
328 + verify-uselistorder
329 + yaml2obj
330 +
331 + # python modules
332 + opt-viewer
333 + )
334 +
335 + if llvm_are_manpages_built; then
336 + out+=(
337 + # manpages
338 + docs-dsymutil-man
339 + docs-llvm-dwarfdump-man
340 + docs-llvm-man
341 + )
342 + fi
343 + use doc && out+=(
344 + docs-llvm-html
345 + )
346 +
347 + use binutils-plugin && out+=(
348 + LLVMgold
349 + )
350 + fi
351 +
352 + printf "%s${sep}" "${out[@]}"
353 +}
354 +
355 +multilib_src_configure() {
356 + local ffi_cflags ffi_ldflags
357 + if use libffi; then
358 + ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
359 + ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
360 + fi
361 +
362 + local libdir=$(get_libdir)
363 + local mycmakeargs=(
364 + # disable appending VCS revision to the version to improve
365 + # direct cache hit ratio
366 + -DLLVM_APPEND_VC_REV=OFF
367 + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
368 + -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
369 +
370 + -DBUILD_SHARED_LIBS=OFF
371 + -DLLVM_BUILD_LLVM_DYLIB=ON
372 + -DLLVM_LINK_LLVM_DYLIB=ON
373 + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
374 +
375 + # cheap hack: LLVM combines both anyway, and the only difference
376 + # is that the former list is explicitly verified at cmake time
377 + -DLLVM_TARGETS_TO_BUILD=""
378 + -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
379 + -DLLVM_BUILD_TESTS=$(usex test)
380 +
381 + -DLLVM_ENABLE_FFI=$(usex libffi)
382 + -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
383 + -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
384 + -DLLVM_ENABLE_LIBXML2=$(usex xml)
385 + -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
386 + -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
387 + -DLLVM_ENABLE_EH=ON
388 + -DLLVM_ENABLE_RTTI=ON
389 + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
390 +
391 + -DLLVM_HOST_TRIPLE="${CHOST}"
392 +
393 + -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
394 + -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
395 + # used only for llvm-objdump tool
396 + -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
397 +
398 + -DPython3_EXECUTABLE="${PYTHON}"
399 +
400 + # disable OCaml bindings (now in dev-ml/llvm-ocaml)
401 + -DOCAMLFIND=NO
402 + )
403 +
404 + if is_libcxx_linked; then
405 + # Smart hack: alter version suffix -> SOVERSION when linking
406 + # against libc++. This way we won't end up mixing LLVM libc++
407 + # libraries with libstdc++ clang, and the other way around.
408 + mycmakeargs+=(
409 + -DLLVM_VERSION_SUFFIX="libcxx"
410 + -DLLVM_ENABLE_LIBCXX=ON
411 + )
412 + fi
413 +
414 +# Note: go bindings have no CMake rules at the moment
415 +# but let's kill the check in case they are introduced
416 +# if ! multilib_is_native_abi || ! use go; then
417 + mycmakeargs+=(
418 + -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
419 + )
420 +# fi
421 +
422 + use test && mycmakeargs+=(
423 + -DLLVM_LIT_ARGS="$(get_lit_flags)"
424 + )
425 +
426 + if multilib_is_native_abi; then
427 + local build_docs=OFF
428 + if llvm_are_manpages_built; then
429 + build_docs=ON
430 + mycmakeargs+=(
431 + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
432 + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
433 + -DSPHINX_WARNINGS_AS_ERRORS=OFF
434 + )
435 + fi
436 +
437 + mycmakeargs+=(
438 + -DLLVM_BUILD_DOCS=${build_docs}
439 + -DLLVM_ENABLE_OCAMLDOC=OFF
440 + -DLLVM_ENABLE_SPHINX=${build_docs}
441 + -DLLVM_ENABLE_DOXYGEN=OFF
442 + -DLLVM_INSTALL_UTILS=ON
443 + )
444 + use binutils-plugin && mycmakeargs+=(
445 + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
446 + )
447 + fi
448 +
449 + if tc-is-cross-compiler; then
450 + local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
451 + [[ -x "${tblgen}" ]] \
452 + || die "${tblgen} not found or usable"
453 + mycmakeargs+=(
454 + -DCMAKE_CROSSCOMPILING=ON
455 + -DLLVM_TABLEGEN="${tblgen}"
456 + )
457 + fi
458 +
459 + # workaround BMI bug in gcc-7 (fixed in 7.4)
460 + # https://bugs.gentoo.org/649880
461 + # apply only to x86, https://bugs.gentoo.org/650506
462 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
463 + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
464 + then
465 + local CFLAGS="${CFLAGS} -mno-bmi"
466 + local CXXFLAGS="${CXXFLAGS} -mno-bmi"
467 + fi
468 +
469 + # LLVM can have very high memory consumption while linking,
470 + # exhausting the limit on 32-bit linker executable
471 + use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
472 +
473 + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
474 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
475 + cmake_src_configure
476 +
477 + multilib_is_native_abi && check_distribution_components
478 +}
479 +
480 +multilib_src_compile() {
481 + cmake_build distribution
482 +
483 + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
484 + pax-mark m "${BUILD_DIR}"/bin/lli
485 + pax-mark m "${BUILD_DIR}"/bin/lli-child-target
486 +
487 + if use test; then
488 + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
489 + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
490 + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
491 + fi
492 +}
493 +
494 +multilib_src_test() {
495 + # respect TMPDIR!
496 + local -x LIT_PRESERVES_TMP=1
497 + cmake_build check
498 +}
499 +
500 +src_install() {
501 + local MULTILIB_CHOST_TOOLS=(
502 + /usr/lib/llvm/${SLOT}/bin/llvm-config
503 + )
504 +
505 + local MULTILIB_WRAPPED_HEADERS=(
506 + /usr/include/llvm/Config/llvm-config.h
507 + )
508 +
509 + local LLVM_LDPATHS=()
510 + multilib-minimal_src_install
511 +
512 + # move wrapped headers back
513 + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
514 +}
515 +
516 +multilib_src_install() {
517 + DESTDIR=${D} cmake_build install-distribution
518 +
519 + # move headers to /usr/include for wrapping
520 + rm -rf "${ED}"/usr/include || die
521 + mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
522 +
523 + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
524 +}
525 +
526 +multilib_src_install_all() {
527 + local revord=$(( 9999 - ${SLOT} ))
528 + newenvd - "60llvm-${revord}" <<-_EOF_
529 + PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
530 + # we need to duplicate it in ROOTPATH for Portage to respect...
531 + ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
532 + MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
533 + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
534 + _EOF_
535 +
536 + docompress "/usr/lib/llvm/${SLOT}/share/man"
537 + llvm_install_manpages
538 +}
539 +
540 +pkg_postinst() {
541 + elog "You can find additional opt-viewer utility scripts in:"
542 + elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
543 + elog "To use these scripts, you will need Python along with the following"
544 + elog "packages:"
545 + elog " dev-python/pygments (for opt-viewer)"
546 + elog " dev-python/pyyaml (for all of them)"
547 +}