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: Wed, 04 Mar 2020 18:39:19
Message-Id: 1583347137.1a3c164830c624ef5362b89d43d7d6632728dd92.mgorny@gentoo
1 commit: 1a3c164830c624ef5362b89d43d7d6632728dd92
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 4 18:12:46 2020 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 4 18:38:57 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a3c1648
7
8 sys-devel/llvm: Remove 10.0.0rc[12]
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/llvm/Manifest | 2 -
13 sys-devel/llvm/llvm-10.0.0_rc1.ebuild | 503 ----------------------------------
14 sys-devel/llvm/llvm-10.0.0_rc2.ebuild | 463 -------------------------------
15 3 files changed, 968 deletions(-)
16
17 diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
18 index 6bbd3e7cf7e..0f50709a6e1 100644
19 --- a/sys-devel/llvm/Manifest
20 +++ b/sys-devel/llvm/Manifest
21 @@ -3,7 +3,5 @@ DIST llvm-7.1.0.src.tar.xz 28313784 BLAKE2B b78d9a7fc5ef6e352e77d339e5c4eef5cced
22 DIST llvm-8.0.1-manpages.tar.bz2 140915 BLAKE2B 13ac9e172728d643dac1d12ac06909b6db3dd9a1a380a92a07867e3cb835f94b265da5d75c4712b5409405a65795d2cb6b32da4098e38cbb95d7023b56bcbbc1 SHA512 23994a2374659fbbf8d9b5160f4d77e9be7c4c9fc14963e8186bbede78b0ee9257f6b6a9c484bc75d72443d65bb24e598841e64af500336283de0f454d6a2073
23 DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16
24 DIST llvm-9.0.0-manpages.tar.bz2 158546 BLAKE2B eed6235698a0b5993affe305f7fd22cd4cf444adf931275a1685f2049a5f17cf2933907577d9ce142348a3c579769b0436aa2b5a9a953958504125a8c3e83b7d SHA512 64c8d18061eb2870b379a1df485be0b61eac07cb10b3f97347b54b2ee326faa63437ca04466776be282e120dd3f6147e14fffdd38ca370db85748fe5eb54d764
25 -DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02
26 -DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae
27 DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
28 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59
29
30 diff --git a/sys-devel/llvm/llvm-10.0.0_rc1.ebuild b/sys-devel/llvm/llvm-10.0.0_rc1.ebuild
31 deleted file mode 100644
32 index 14183742d8b..00000000000
33 --- a/sys-devel/llvm/llvm-10.0.0_rc1.ebuild
34 +++ /dev/null
35 @@ -1,503 +0,0 @@
36 -# Copyright 1999-2020 Gentoo Authors
37 -# Distributed under the terms of the GNU General Public License v2
38 -
39 -EAPI=7
40 -
41 -PYTHON_COMPAT=( python3_{6,7} )
42 -inherit cmake-utils llvm.org multilib-minimal multiprocessing \
43 - pax-utils python-any-r1 toolchain-funcs
44 -
45 -DESCRIPTION="Low Level Virtual Machine"
46 -HOMEPAGE="https://llvm.org/"
47 -LLVM_COMPONENTS=( llvm )
48 -llvm.org_set_globals
49 -
50 -# Those are in lib/Targets, without explicit CMakeLists.txt mention
51 -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC AVR VE )
52 -# Keep in sync with CMakeLists.txt
53 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
54 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore
55 - "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" )
56 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
57 -
58 -# Additional licenses:
59 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
60 -# 2. xxhash: BSD.
61 -# 3. MD5 code: public-domain.
62 -# 4. ConvertUTF.h: TODO.
63 -
64 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
65 -SLOT="$(ver_cut 1)"
66 -KEYWORDS=""
67 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3
68 - kernel_Darwin ${ALL_LLVM_TARGETS[*]}"
69 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )"
70 -RESTRICT="!test? ( test )"
71 -
72 -RDEPEND="
73 - sys-libs/zlib:0=[${MULTILIB_USEDEP}]
74 - exegesis? ( dev-libs/libpfm:= )
75 - gold? (
76 - || (
77 - >=sys-devel/binutils-2.31.1-r4:*[plugins]
78 - <sys-devel/binutils-2.31.1-r4:*[cxx]
79 - )
80 - )
81 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
82 - libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
83 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
84 - xar? ( app-arch/xar )
85 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
86 - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
87 -DEPEND="${RDEPEND}
88 - gold? ( sys-libs/binutils-libs )"
89 -BDEPEND="
90 - dev-lang/perl
91 - sys-devel/gnuconfig
92 - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
93 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
94 - )
95 - kernel_Darwin? (
96 - <sys-libs/libcxx-$(ver_cut 1-3).9999
97 - >=sys-devel/binutils-apple-5.1
98 - )
99 - doc? ( $(python_gen_any_dep '
100 - dev-python/recommonmark[${PYTHON_USEDEP}]
101 - dev-python/sphinx[${PYTHON_USEDEP}]
102 - ') )
103 - libffi? ( virtual/pkgconfig )
104 - ${PYTHON_DEPS}"
105 -# There are no file collisions between these versions but having :0
106 -# installed means llvm-config there will take precedence.
107 -RDEPEND="${RDEPEND}
108 - !sys-devel/llvm:0"
109 -PDEPEND="sys-devel/llvm-common
110 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
111 -
112 -# least intrusive of all
113 -CMAKE_BUILD_TYPE=RelWithDebInfo
114 -
115 -python_check_deps() {
116 - use doc || return 0
117 -
118 - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
119 - has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
120 -}
121 -
122 -check_live_ebuild() {
123 - local prod_targets=(
124 - $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
125 - | tail -n +2 | head -n -1)
126 - )
127 - local all_targets=(
128 - lib/Target/*/
129 - )
130 - all_targets=( "${all_targets[@]#lib/Target/}" )
131 - all_targets=( "${all_targets[@]%/}" )
132 -
133 - local exp_targets=() i
134 - for i in "${all_targets[@]}"; do
135 - has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
136 - done
137 - # reorder
138 - all_targets=( "${prod_targets[@]}" "${exp_targets[@]}" )
139 -
140 - if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
141 - eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
142 - eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
143 - eqawarn "Expected: ${exp_targets[*]}"
144 - eqawarn
145 - fi
146 -
147 - if [[ ${all_targets[*]} != ${ALL_LLVM_TARGETS[*]#llvm_targets_} ]]; then
148 - eqawarn "ALL_LLVM_TARGETS is outdated!"
149 - eqawarn " Have: ${ALL_LLVM_TARGETS[*]#llvm_targets_}"
150 - eqawarn "Expected: ${all_targets[*]}"
151 - fi
152 -}
153 -
154 -check_distribution_components() {
155 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
156 - local all_targets=() my_targets=() l
157 - cd "${BUILD_DIR}" || die
158 -
159 - while read -r l; do
160 - if [[ ${l} == install-*-stripped:* ]]; then
161 - l=${l#install-}
162 - l=${l%%-stripped*}
163 -
164 - case ${l} in
165 - # shared libs
166 - LLVM|LLVMgold)
167 - ;;
168 - # TableGen lib + deps
169 - LLVMDemangle|LLVMSupport|LLVMTableGen)
170 - ;;
171 - # static libs
172 - LLVM*)
173 - continue
174 - ;;
175 - # meta-targets
176 - distribution|llvm-libraries)
177 - continue
178 - ;;
179 - esac
180 -
181 - all_targets+=( "${l}" )
182 - fi
183 - done < <(ninja -t targets all)
184 -
185 - while read -r l; do
186 - my_targets+=( "${l}" )
187 - done < <(get_distribution_components $"\n")
188 -
189 - local add=() remove=()
190 - for l in "${all_targets[@]}"; do
191 - if ! has "${l}" "${my_targets[@]}"; then
192 - add+=( "${l}" )
193 - fi
194 - done
195 - for l in "${my_targets[@]}"; do
196 - if ! has "${l}" "${all_targets[@]}"; then
197 - remove+=( "${l}" )
198 - fi
199 - done
200 -
201 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
202 - eqawarn "get_distribution_components() is outdated!"
203 - eqawarn " Add: ${add[*]}"
204 - eqawarn "Remove: ${remove[*]}"
205 - fi
206 - cd - >/dev/null || die
207 - fi
208 -}
209 -
210 -src_prepare() {
211 - # Fix llvm-config for shared linking and sane flags
212 - # https://bugs.gentoo.org/show_bug.cgi?id=565358
213 - eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
214 -
215 - # disable use of SDK on OSX, bug #568758
216 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
217 -
218 - # Update config.guess to support more systems
219 - cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
220 -
221 - # User patches + QA
222 - cmake-utils_src_prepare
223 -
224 - # Verify that the live ebuild is up-to-date
225 - check_live_ebuild
226 -}
227 -
228 -# Is LLVM being linked against libc++?
229 -is_libcxx_linked() {
230 - local code='#include <ciso646>
231 -#if defined(_LIBCPP_VERSION)
232 - HAVE_LIBCXX
233 -#endif
234 -'
235 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
236 -
237 - [[ ${out} == *HAVE_LIBCXX* ]]
238 -}
239 -
240 -get_distribution_components() {
241 - local sep=${1-;}
242 -
243 - local out=(
244 - # shared libs
245 - LLVM
246 - LTO
247 - Remarks
248 -
249 - # tools
250 - llvm-config
251 -
252 - # common stuff
253 - cmake-exports
254 - llvm-headers
255 -
256 - # libraries needed for clang-tblgen
257 - LLVMDemangle
258 - LLVMSupport
259 - LLVMTableGen
260 - )
261 -
262 - if multilib_is_native_abi; then
263 - out+=(
264 - # utilities
265 - llvm-tblgen
266 - FileCheck
267 - llvm-PerfectShuffle
268 - count
269 - not
270 - yaml-bench
271 -
272 - # tools
273 - bugpoint
274 - dsymutil
275 - llc
276 - lli
277 - lli-child-target
278 - llvm-addr2line
279 - llvm-ar
280 - llvm-as
281 - llvm-bcanalyzer
282 - llvm-c-test
283 - llvm-cat
284 - llvm-cfi-verify
285 - llvm-config
286 - llvm-cov
287 - llvm-cvtres
288 - llvm-cxxdump
289 - llvm-cxxfilt
290 - llvm-cxxmap
291 - llvm-diff
292 - llvm-dis
293 - llvm-dlltool
294 - llvm-dwarfdump
295 - llvm-dwp
296 - llvm-elfabi
297 - llvm-exegesis
298 - llvm-extract
299 - llvm-ifs
300 - llvm-install-name-tool
301 - llvm-jitlink
302 - llvm-lib
303 - llvm-link
304 - llvm-lipo
305 - llvm-lto
306 - llvm-lto2
307 - llvm-mc
308 - llvm-mca
309 - llvm-modextract
310 - llvm-mt
311 - llvm-nm
312 - llvm-objcopy
313 - llvm-objdump
314 - llvm-opt-report
315 - llvm-pdbutil
316 - llvm-profdata
317 - llvm-ranlib
318 - llvm-rc
319 - llvm-readelf
320 - llvm-readobj
321 - llvm-reduce
322 - llvm-rtdyld
323 - llvm-size
324 - llvm-split
325 - llvm-stress
326 - llvm-strings
327 - llvm-strip
328 - llvm-symbolizer
329 - llvm-undname
330 - llvm-xray
331 - obj2yaml
332 - opt
333 - sancov
334 - sanstats
335 - verify-uselistorder
336 - yaml2obj
337 -
338 - # python modules
339 - opt-viewer
340 - )
341 -
342 - use doc && out+=(
343 - docs-dsymutil-man
344 - docs-llvm-dwarfdump-man
345 - docs-llvm-man
346 - docs-llvm-html
347 - )
348 -
349 - use gold && out+=(
350 - LLVMgold
351 - )
352 - fi
353 -
354 - printf "%s${sep}" "${out[@]}"
355 -}
356 -
357 -multilib_src_configure() {
358 - local ffi_cflags ffi_ldflags
359 - if use libffi; then
360 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
361 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
362 - fi
363 -
364 - local libdir=$(get_libdir)
365 - local mycmakeargs=(
366 - # disable appending VCS revision to the version to improve
367 - # direct cache hit ratio
368 - -DLLVM_APPEND_VC_REV=OFF
369 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
370 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
371 -
372 - -DBUILD_SHARED_LIBS=OFF
373 - -DLLVM_BUILD_LLVM_DYLIB=ON
374 - -DLLVM_LINK_LLVM_DYLIB=ON
375 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
376 -
377 - # cheap hack: LLVM combines both anyway, and the only difference
378 - # is that the former list is explicitly verified at cmake time
379 - -DLLVM_TARGETS_TO_BUILD=""
380 - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
381 - -DLLVM_BUILD_TESTS=$(usex test)
382 -
383 - -DLLVM_ENABLE_FFI=$(usex libffi)
384 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
385 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
386 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
387 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
388 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
389 - -DLLVM_ENABLE_EH=ON
390 - -DLLVM_ENABLE_RTTI=ON
391 - -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
392 -
393 - -DWITH_POLLY=OFF # TODO
394 -
395 - -DLLVM_HOST_TRIPLE="${CHOST}"
396 -
397 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
398 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
399 - # used only for llvm-objdump tool
400 - -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0)
401 -
402 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
403 - -DOCAMLFIND=NO
404 - )
405 -
406 - if is_libcxx_linked; then
407 - # Smart hack: alter version suffix -> SOVERSION when linking
408 - # against libc++. This way we won't end up mixing LLVM libc++
409 - # libraries with libstdc++ clang, and the other way around.
410 - mycmakeargs+=(
411 - -DLLVM_VERSION_SUFFIX="libcxx"
412 - )
413 - fi
414 -
415 -# Note: go bindings have no CMake rules at the moment
416 -# but let's kill the check in case they are introduced
417 -# if ! multilib_is_native_abi || ! use go; then
418 - mycmakeargs+=(
419 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
420 - )
421 -# fi
422 -
423 - use test && mycmakeargs+=(
424 - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
425 - )
426 -
427 - if multilib_is_native_abi; then
428 - mycmakeargs+=(
429 - -DLLVM_BUILD_DOCS=$(usex doc)
430 - -DLLVM_ENABLE_OCAMLDOC=OFF
431 - -DLLVM_ENABLE_SPHINX=$(usex doc)
432 - -DLLVM_ENABLE_DOXYGEN=OFF
433 - -DLLVM_INSTALL_UTILS=ON
434 - )
435 - use doc && mycmakeargs+=(
436 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
437 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
438 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
439 - )
440 - use gold && mycmakeargs+=(
441 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
442 - )
443 - fi
444 -
445 - if tc-is-cross-compiler; then
446 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
447 - [[ -x "${tblgen}" ]] \
448 - || die "${tblgen} not found or usable"
449 - mycmakeargs+=(
450 - -DCMAKE_CROSSCOMPILING=ON
451 - -DLLVM_TABLEGEN="${tblgen}"
452 - )
453 - fi
454 -
455 - # workaround BMI bug in gcc-7 (fixed in 7.4)
456 - # https://bugs.gentoo.org/649880
457 - # apply only to x86, https://bugs.gentoo.org/650506
458 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
459 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
460 - then
461 - local CFLAGS="${CFLAGS} -mno-bmi"
462 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
463 - fi
464 -
465 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
466 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
467 - cmake-utils_src_configure
468 -
469 - multilib_is_native_abi && check_distribution_components
470 -}
471 -
472 -multilib_src_compile() {
473 - cmake-utils_src_compile
474 -
475 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
476 - pax-mark m "${BUILD_DIR}"/bin/lli
477 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
478 -
479 - if use test; then
480 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
481 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
482 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
483 - fi
484 -}
485 -
486 -multilib_src_test() {
487 - # respect TMPDIR!
488 - local -x LIT_PRESERVES_TMP=1
489 - cmake-utils_src_make check
490 -}
491 -
492 -src_install() {
493 - local MULTILIB_CHOST_TOOLS=(
494 - /usr/lib/llvm/${SLOT}/bin/llvm-config
495 - )
496 -
497 - local MULTILIB_WRAPPED_HEADERS=(
498 - /usr/include/llvm/Config/llvm-config.h
499 - )
500 -
501 - local LLVM_LDPATHS=()
502 - multilib-minimal_src_install
503 -
504 - # move wrapped headers back
505 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
506 -}
507 -
508 -multilib_src_install() {
509 - DESTDIR=${D} cmake-utils_src_make install-distribution
510 -
511 - # move headers to /usr/include for wrapping
512 - rm -rf "${ED}"/usr/include || die
513 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
514 -
515 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
516 -}
517 -
518 -multilib_src_install_all() {
519 - local revord=$(( 9999 - ${SLOT} ))
520 - newenvd - "60llvm-${revord}" <<-_EOF_
521 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
522 - # we need to duplicate it in ROOTPATH for Portage to respect...
523 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
524 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
525 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
526 - _EOF_
527 -
528 - docompress "/usr/lib/llvm/${SLOT}/share/man"
529 -}
530 -
531 -pkg_postinst() {
532 - elog "You can find additional opt-viewer utility scripts in:"
533 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
534 - elog "To use these scripts, you will need Python along with the following"
535 - elog "packages:"
536 - elog " dev-python/pygments (for opt-viewer)"
537 - elog " dev-python/pyyaml (for all of them)"
538 -}
539
540 diff --git a/sys-devel/llvm/llvm-10.0.0_rc2.ebuild b/sys-devel/llvm/llvm-10.0.0_rc2.ebuild
541 deleted file mode 100644
542 index 59ccce09861..00000000000
543 --- a/sys-devel/llvm/llvm-10.0.0_rc2.ebuild
544 +++ /dev/null
545 @@ -1,463 +0,0 @@
546 -# Copyright 1999-2020 Gentoo Authors
547 -# Distributed under the terms of the GNU General Public License v2
548 -
549 -EAPI=7
550 -
551 -PYTHON_COMPAT=( python3_{6,7,8} )
552 -inherit cmake-utils llvm.org multilib-minimal multiprocessing \
553 - pax-utils python-any-r1 toolchain-funcs
554 -
555 -DESCRIPTION="Low Level Virtual Machine"
556 -HOMEPAGE="https://llvm.org/"
557 -LLVM_COMPONENTS=( llvm )
558 -llvm.org_set_globals
559 -
560 -# Those are in lib/Targets, without explicit CMakeLists.txt mention
561 -ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC AVR )
562 -# Keep in sync with CMakeLists.txt
563 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
564 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore
565 - "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" )
566 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
567 -
568 -# Additional licenses:
569 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
570 -# 2. xxhash: BSD.
571 -# 3. MD5 code: public-domain.
572 -# 4. ConvertUTF.h: TODO.
573 -
574 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
575 -SLOT="$(ver_cut 1)"
576 -KEYWORDS=""
577 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3
578 - kernel_Darwin ${ALL_LLVM_TARGETS[*]}"
579 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )"
580 -RESTRICT="!test? ( test )"
581 -
582 -RDEPEND="
583 - sys-libs/zlib:0=[${MULTILIB_USEDEP}]
584 - exegesis? ( dev-libs/libpfm:= )
585 - gold? (
586 - || (
587 - >=sys-devel/binutils-2.31.1-r4:*[plugins]
588 - <sys-devel/binutils-2.31.1-r4:*[cxx]
589 - )
590 - )
591 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
592 - libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
593 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
594 - xar? ( app-arch/xar )
595 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
596 - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )"
597 -DEPEND="${RDEPEND}
598 - gold? ( sys-libs/binutils-libs )"
599 -BDEPEND="
600 - dev-lang/perl
601 - sys-devel/gnuconfig
602 - kernel_Darwin? (
603 - <sys-libs/libcxx-$(ver_cut 1-3).9999
604 - >=sys-devel/binutils-apple-5.1
605 - )
606 - doc? ( $(python_gen_any_dep '
607 - dev-python/recommonmark[${PYTHON_USEDEP}]
608 - dev-python/sphinx[${PYTHON_USEDEP}]
609 - ') )
610 - libffi? ( virtual/pkgconfig )
611 - ${PYTHON_DEPS}"
612 -# There are no file collisions between these versions but having :0
613 -# installed means llvm-config there will take precedence.
614 -RDEPEND="${RDEPEND}
615 - !sys-devel/llvm:0"
616 -PDEPEND="sys-devel/llvm-common
617 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
618 -
619 -# least intrusive of all
620 -CMAKE_BUILD_TYPE=RelWithDebInfo
621 -
622 -python_check_deps() {
623 - use doc || return 0
624 -
625 - has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
626 - has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
627 -}
628 -
629 -check_distribution_components() {
630 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
631 - local all_targets=() my_targets=() l
632 - cd "${BUILD_DIR}" || die
633 -
634 - while read -r l; do
635 - if [[ ${l} == install-*-stripped:* ]]; then
636 - l=${l#install-}
637 - l=${l%%-stripped*}
638 -
639 - case ${l} in
640 - # shared libs
641 - LLVM|LLVMgold)
642 - ;;
643 - # TableGen lib + deps
644 - LLVMDemangle|LLVMSupport|LLVMTableGen)
645 - ;;
646 - # static libs
647 - LLVM*)
648 - continue
649 - ;;
650 - # meta-targets
651 - distribution|llvm-libraries)
652 - continue
653 - ;;
654 - esac
655 -
656 - all_targets+=( "${l}" )
657 - fi
658 - done < <(ninja -t targets all)
659 -
660 - while read -r l; do
661 - my_targets+=( "${l}" )
662 - done < <(get_distribution_components $"\n")
663 -
664 - local add=() remove=()
665 - for l in "${all_targets[@]}"; do
666 - if ! has "${l}" "${my_targets[@]}"; then
667 - add+=( "${l}" )
668 - fi
669 - done
670 - for l in "${my_targets[@]}"; do
671 - if ! has "${l}" "${all_targets[@]}"; then
672 - remove+=( "${l}" )
673 - fi
674 - done
675 -
676 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
677 - eqawarn "get_distribution_components() is outdated!"
678 - eqawarn " Add: ${add[*]}"
679 - eqawarn "Remove: ${remove[*]}"
680 - fi
681 - cd - >/dev/null || die
682 - fi
683 -}
684 -
685 -src_prepare() {
686 - # Fix llvm-config for shared linking and sane flags
687 - # https://bugs.gentoo.org/show_bug.cgi?id=565358
688 - eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
689 -
690 - # disable use of SDK on OSX, bug #568758
691 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
692 -
693 - # Update config.guess to support more systems
694 - cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
695 -
696 - # User patches + QA
697 - cmake-utils_src_prepare
698 -}
699 -
700 -# Is LLVM being linked against libc++?
701 -is_libcxx_linked() {
702 - local code='#include <ciso646>
703 -#if defined(_LIBCPP_VERSION)
704 - HAVE_LIBCXX
705 -#endif
706 -'
707 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
708 -
709 - [[ ${out} == *HAVE_LIBCXX* ]]
710 -}
711 -
712 -get_distribution_components() {
713 - local sep=${1-;}
714 -
715 - local out=(
716 - # shared libs
717 - LLVM
718 - LTO
719 - Remarks
720 -
721 - # tools
722 - llvm-config
723 -
724 - # common stuff
725 - cmake-exports
726 - llvm-headers
727 -
728 - # libraries needed for clang-tblgen
729 - LLVMDemangle
730 - LLVMSupport
731 - LLVMTableGen
732 - )
733 -
734 - if multilib_is_native_abi; then
735 - out+=(
736 - # utilities
737 - llvm-tblgen
738 - FileCheck
739 - llvm-PerfectShuffle
740 - count
741 - not
742 - yaml-bench
743 -
744 - # tools
745 - bugpoint
746 - dsymutil
747 - llc
748 - lli
749 - lli-child-target
750 - llvm-addr2line
751 - llvm-ar
752 - llvm-as
753 - llvm-bcanalyzer
754 - llvm-c-test
755 - llvm-cat
756 - llvm-cfi-verify
757 - llvm-config
758 - llvm-cov
759 - llvm-cvtres
760 - llvm-cxxdump
761 - llvm-cxxfilt
762 - llvm-cxxmap
763 - llvm-diff
764 - llvm-dis
765 - llvm-dlltool
766 - llvm-dwarfdump
767 - llvm-dwp
768 - llvm-elfabi
769 - llvm-exegesis
770 - llvm-extract
771 - llvm-ifs
772 - llvm-install-name-tool
773 - llvm-jitlink
774 - llvm-lib
775 - llvm-link
776 - llvm-lipo
777 - llvm-lto
778 - llvm-lto2
779 - llvm-mc
780 - llvm-mca
781 - llvm-modextract
782 - llvm-mt
783 - llvm-nm
784 - llvm-objcopy
785 - llvm-objdump
786 - llvm-opt-report
787 - llvm-pdbutil
788 - llvm-profdata
789 - llvm-ranlib
790 - llvm-rc
791 - llvm-readelf
792 - llvm-readobj
793 - llvm-reduce
794 - llvm-rtdyld
795 - llvm-size
796 - llvm-split
797 - llvm-stress
798 - llvm-strings
799 - llvm-strip
800 - llvm-symbolizer
801 - llvm-undname
802 - llvm-xray
803 - obj2yaml
804 - opt
805 - sancov
806 - sanstats
807 - verify-uselistorder
808 - yaml2obj
809 -
810 - # python modules
811 - opt-viewer
812 - )
813 -
814 - use doc && out+=(
815 - docs-dsymutil-man
816 - docs-llvm-dwarfdump-man
817 - docs-llvm-man
818 - docs-llvm-html
819 - )
820 -
821 - use gold && out+=(
822 - LLVMgold
823 - )
824 - fi
825 -
826 - printf "%s${sep}" "${out[@]}"
827 -}
828 -
829 -multilib_src_configure() {
830 - local ffi_cflags ffi_ldflags
831 - if use libffi; then
832 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
833 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
834 - fi
835 -
836 - local libdir=$(get_libdir)
837 - local mycmakeargs=(
838 - # disable appending VCS revision to the version to improve
839 - # direct cache hit ratio
840 - -DLLVM_APPEND_VC_REV=OFF
841 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
842 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
843 -
844 - -DBUILD_SHARED_LIBS=OFF
845 - -DLLVM_BUILD_LLVM_DYLIB=ON
846 - -DLLVM_LINK_LLVM_DYLIB=ON
847 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
848 -
849 - # cheap hack: LLVM combines both anyway, and the only difference
850 - # is that the former list is explicitly verified at cmake time
851 - -DLLVM_TARGETS_TO_BUILD=""
852 - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
853 - -DLLVM_BUILD_TESTS=$(usex test)
854 -
855 - -DLLVM_ENABLE_FFI=$(usex libffi)
856 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
857 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
858 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
859 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
860 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
861 - -DLLVM_ENABLE_EH=ON
862 - -DLLVM_ENABLE_RTTI=ON
863 - -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
864 -
865 - -DLLVM_HOST_TRIPLE="${CHOST}"
866 -
867 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
868 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
869 - # used only for llvm-objdump tool
870 - -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0)
871 -
872 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
873 - -DOCAMLFIND=NO
874 - )
875 -
876 - if is_libcxx_linked; then
877 - # Smart hack: alter version suffix -> SOVERSION when linking
878 - # against libc++. This way we won't end up mixing LLVM libc++
879 - # libraries with libstdc++ clang, and the other way around.
880 - mycmakeargs+=(
881 - -DLLVM_VERSION_SUFFIX="libcxx"
882 - )
883 - fi
884 -
885 -# Note: go bindings have no CMake rules at the moment
886 -# but let's kill the check in case they are introduced
887 -# if ! multilib_is_native_abi || ! use go; then
888 - mycmakeargs+=(
889 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
890 - )
891 -# fi
892 -
893 - use test && mycmakeargs+=(
894 - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
895 - )
896 -
897 - if multilib_is_native_abi; then
898 - mycmakeargs+=(
899 - -DLLVM_BUILD_DOCS=$(usex doc)
900 - -DLLVM_ENABLE_OCAMLDOC=OFF
901 - -DLLVM_ENABLE_SPHINX=$(usex doc)
902 - -DLLVM_ENABLE_DOXYGEN=OFF
903 - -DLLVM_INSTALL_UTILS=ON
904 - )
905 - use doc && mycmakeargs+=(
906 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
907 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
908 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
909 - )
910 - use gold && mycmakeargs+=(
911 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
912 - )
913 - fi
914 -
915 - if tc-is-cross-compiler; then
916 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
917 - [[ -x "${tblgen}" ]] \
918 - || die "${tblgen} not found or usable"
919 - mycmakeargs+=(
920 - -DCMAKE_CROSSCOMPILING=ON
921 - -DLLVM_TABLEGEN="${tblgen}"
922 - )
923 - fi
924 -
925 - # workaround BMI bug in gcc-7 (fixed in 7.4)
926 - # https://bugs.gentoo.org/649880
927 - # apply only to x86, https://bugs.gentoo.org/650506
928 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
929 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
930 - then
931 - local CFLAGS="${CFLAGS} -mno-bmi"
932 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
933 - fi
934 -
935 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
936 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
937 - cmake-utils_src_configure
938 -
939 - multilib_is_native_abi && check_distribution_components
940 -}
941 -
942 -multilib_src_compile() {
943 - cmake-utils_src_compile
944 -
945 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
946 - pax-mark m "${BUILD_DIR}"/bin/lli
947 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
948 -
949 - if use test; then
950 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
951 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
952 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
953 - fi
954 -}
955 -
956 -multilib_src_test() {
957 - # respect TMPDIR!
958 - local -x LIT_PRESERVES_TMP=1
959 - cmake-utils_src_make check
960 -}
961 -
962 -src_install() {
963 - local MULTILIB_CHOST_TOOLS=(
964 - /usr/lib/llvm/${SLOT}/bin/llvm-config
965 - )
966 -
967 - local MULTILIB_WRAPPED_HEADERS=(
968 - /usr/include/llvm/Config/llvm-config.h
969 - )
970 -
971 - local LLVM_LDPATHS=()
972 - multilib-minimal_src_install
973 -
974 - # move wrapped headers back
975 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
976 -}
977 -
978 -multilib_src_install() {
979 - DESTDIR=${D} cmake-utils_src_make install-distribution
980 -
981 - # move headers to /usr/include for wrapping
982 - rm -rf "${ED}"/usr/include || die
983 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
984 -
985 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
986 -}
987 -
988 -multilib_src_install_all() {
989 - local revord=$(( 9999 - ${SLOT} ))
990 - newenvd - "60llvm-${revord}" <<-_EOF_
991 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
992 - # we need to duplicate it in ROOTPATH for Portage to respect...
993 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
994 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
995 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
996 - _EOF_
997 -
998 - docompress "/usr/lib/llvm/${SLOT}/share/man"
999 -}
1000 -
1001 -pkg_postinst() {
1002 - elog "You can find additional opt-viewer utility scripts in:"
1003 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer"
1004 - elog "To use these scripts, you will need Python along with the following"
1005 - elog "packages:"
1006 - elog " dev-python/pygments (for opt-viewer)"
1007 - elog " dev-python/pyyaml (for all of them)"
1008 -}