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, 13 Mar 2019 08:22:36
Message-Id: 1552463409.4d73c5fe228d54ed3b90d2a15bb8c9ff932d1ed7.mgorny@gentoo
1 commit: 4d73c5fe228d54ed3b90d2a15bb8c9ff932d1ed7
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 13 07:50:09 2019 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 13 07:50:09 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d73c5fe
7
8 sys-devel/llvm: Remove 8.0.0rc[23]
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/llvm/Manifest | 2 -
13 sys-devel/llvm/llvm-8.0.0_rc2.ebuild | 292 -----------------------------------
14 sys-devel/llvm/llvm-8.0.0_rc3.ebuild | 292 -----------------------------------
15 3 files changed, 586 deletions(-)
16
17 diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
18 index 79d09db50a3..900a57f0b30 100644
19 --- a/sys-devel/llvm/Manifest
20 +++ b/sys-devel/llvm/Manifest
21 @@ -6,7 +6,5 @@ DIST llvm-6.0.1-manpages.tar.bz2 102656 BLAKE2B 9088ca0bdda69f63354e61b7495df545
22 DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9
23 DIST llvm-7.0.1-manpages.tar.bz2 121157 BLAKE2B d209e292dde0b528bca6e6438eac83d3a762e83fb333fa075f973806ec802a19e24ec6f0212fffe4757257f2840a5f00960d121024db2d8ab8b99d95bb42b1da SHA512 56dce233d17c4c3c1e4860f31d30e227364c99f04527e8e8372f308e30d09a297ca21a37b4eb2eddab69bee88ef5867446affd1ccd5d7cb1c12d9c9002a1101c
24 DIST llvm-7.0.1.src.tar.xz 28311056 BLAKE2B 737aa6144a415e41a4ff2c8bd5a727d6f14d7b1810c62cbefa5a25fe642c98cddf8a28e35c7e9783373aa3b96f5c0943229e229ad1b43e56e9ed6db0f27ab128 SHA512 ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df
25 -DIST llvm-8.0.0rc2.src.tar.xz 30492444 BLAKE2B e7afd3b66e3eb204e07348f0bc77f0ae03d8e9581de4c94cba7c0b43b53f36ecd891c1272ce43ea6c78999fd404a7db105266a2eaca22975133571e1152961af SHA512 9d93197848e9472cc2fef2477897e4f4d74a79b17a164fd43446b0ffb327e7f484cf64f0c294d9a99707c0b46282eb0d16e6ceb5d2d568f25e4235f70ae3c5e7
26 -DIST llvm-8.0.0rc3.src.tar.xz 30507604 BLAKE2B c9baaca537d292af9f12368df86090750508113eb7db393fe44c1ba7579df947f0a7092e6ddd4403bda9f9ed75fe8c049f3baf6d8671faa0c91e3267c584893a SHA512 82199841c2084cffe4e86b4f2d5ebe404059196f1f6d000ee69cfddba05d78c4500ad7499615fa67e9774ead6cba5a23db484dd85f752c8d08e8067f7d7b98ca
27 DIST llvm-8.0.0rc5.src.tar.xz 30507432 BLAKE2B 3f20c3dc270439a32fe23e403ca5190e624f329a10d424d15475d32d89725b021f12af19845928da41be4b83afd254df1f6d27f235b0d2ab81ff76d9e588250f SHA512 b015bab2f0b0644d9fab295dee5d3b2a4d4d7c9d5870a06d7829f43d61e92aeb31b28d4c074f6a20ad803dde06399ef3298c951f1580b010f4b756f75bb4453b
28 DIST llvm-manpages-4.0.1.tar.bz2 87981 BLAKE2B 79ffd254ee5c6e09159c954913ef820f74107d4fcea5e3ed82592dc36af8fdfbf1e850547ba8bfc20aa9a5ecdd26c50329e6a6d558ae3aa5475a930789ce3e01 SHA512 d5b3213567c25db58ef364d272314a79c311a80fc21d98c09a5540af45a8190a38f489228663fe9a9b63bf0f2b952c460c4196a8fc8d6f221619f6e7ed2fc415
29
30 diff --git a/sys-devel/llvm/llvm-8.0.0_rc2.ebuild b/sys-devel/llvm/llvm-8.0.0_rc2.ebuild
31 deleted file mode 100644
32 index 167c83db857..00000000000
33 --- a/sys-devel/llvm/llvm-8.0.0_rc2.ebuild
34 +++ /dev/null
35 @@ -1,292 +0,0 @@
36 -# Copyright 1999-2019 Gentoo Authors
37 -# Distributed under the terms of the GNU General Public License v2
38 -
39 -EAPI=6
40 -
41 -: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
42 -# (needed due to CMAKE_BUILD_TYPE != Gentoo)
43 -CMAKE_MIN_VERSION=3.7.0-r1
44 -PYTHON_COMPAT=( python2_7 )
45 -
46 -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \
47 - multiprocessing pax-utils python-any-r1 toolchain-funcs
48 -
49 -DESCRIPTION="Low Level Virtual Machine"
50 -HOMEPAGE="https://llvm.org/"
51 -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
52 -# !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )"
53 -
54 -# Keep in sync with CMakeLists.txt
55 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
56 - NVPTX PowerPC Sparc SystemZ X86 XCore )
57 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
58 -
59 -# Additional licenses:
60 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
61 -# 2. ARM backend: LLVM Software Grant by ARM.
62 -# 3. MD5 code: public-domain.
63 -# 4. Tests (not installed):
64 -# a. gtest: BSD.
65 -# b. YAML tests: MIT.
66 -
67 -LICENSE="UoI-NCSA rc BSD public-domain
68 - llvm_targets_ARM? ( LLVM-Grant )"
69 -SLOT="$(ver_cut 1)"
70 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
71 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml
72 - kernel_Darwin ${ALL_LLVM_TARGETS[*]}"
73 -RESTRICT="!test? ( test )"
74 -
75 -RDEPEND="
76 - sys-libs/zlib:0=
77 - exegesis? ( dev-libs/libpfm:= )
78 - gold? ( >=sys-devel/binutils-2.22:*[cxx] )
79 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
80 - libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
81 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
82 - xar? ( app-arch/xar )
83 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )"
84 -# configparser-3.2 breaks the build (3.3 or none at all are fine)
85 -DEPEND="${RDEPEND}
86 - dev-lang/perl
87 - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
88 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
89 - )
90 - kernel_Darwin? (
91 - <sys-libs/libcxx-$(ver_cut 1-3).9999
92 - >=sys-devel/binutils-apple-5.1
93 - )
94 - doc? ( $(python_gen_any_dep '
95 - dev-python/recommonmark[${PYTHON_USEDEP}]
96 - dev-python/sphinx[${PYTHON_USEDEP}]
97 - ') )
98 - !doc? ( ${PYTHON_DEPS} )
99 - gold? ( sys-libs/binutils-libs )
100 - libffi? ( virtual/pkgconfig )
101 - !!<dev-python/configparser-3.3.0.2
102 - ${PYTHON_DEPS}"
103 -# There are no file collisions between these versions but having :0
104 -# installed means llvm-config there will take precedence.
105 -RDEPEND="${RDEPEND}
106 - !sys-devel/llvm:0"
107 -PDEPEND="sys-devel/llvm-common
108 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
109 -
110 -REQUIRED_USE="${PYTHON_REQUIRED_USE}
111 - || ( ${ALL_LLVM_TARGETS[*]} )"
112 -
113 -S=${WORKDIR}/${P/_/}.src
114 -
115 -# least intrusive of all
116 -CMAKE_BUILD_TYPE=RelWithDebInfo
117 -
118 -python_check_deps() {
119 - use doc || return 0
120 -
121 - has_version "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
122 - has_version "dev-python/sphinx[${PYTHON_USEDEP}]"
123 -}
124 -
125 -src_prepare() {
126 - # Fix llvm-config for shared linking and sane flags
127 - # https://bugs.gentoo.org/show_bug.cgi?id=565358
128 - eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
129 -
130 - # disable use of SDK on OSX, bug #568758
131 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
132 -
133 - # User patches + QA
134 - cmake-utils_src_prepare
135 -}
136 -
137 -# Is LLVM being linked against libc++?
138 -is_libcxx_linked() {
139 - local code='#include <ciso646>
140 -#if defined(_LIBCPP_VERSION)
141 - HAVE_LIBCXX
142 -#endif
143 -'
144 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
145 -
146 - [[ ${out} == *HAVE_LIBCXX* ]]
147 -}
148 -
149 -multilib_src_configure() {
150 - local ffi_cflags ffi_ldflags
151 - if use libffi; then
152 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
153 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
154 - fi
155 -
156 - local libdir=$(get_libdir)
157 - local mycmakeargs=(
158 - # disable appending VCS revision to the version to improve
159 - # direct cache hit ratio
160 - -DLLVM_APPEND_VC_REV=OFF
161 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
162 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
163 -
164 - -DBUILD_SHARED_LIBS=ON
165 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
166 - -DLLVM_BUILD_TESTS=$(usex test)
167 -
168 - -DLLVM_ENABLE_FFI=$(usex libffi)
169 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
170 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
171 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
172 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
173 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
174 - -DLLVM_ENABLE_EH=ON
175 - -DLLVM_ENABLE_RTTI=ON
176 -
177 - -DWITH_POLLY=OFF # TODO
178 -
179 - -DLLVM_HOST_TRIPLE="${CHOST}"
180 -
181 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
182 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
183 - # used only for llvm-objdump tool
184 - -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0)
185 -
186 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
187 - -DOCAMLFIND=NO
188 - )
189 -
190 - if is_libcxx_linked; then
191 - # Smart hack: alter version suffix -> SOVERSION when linking
192 - # against libc++. This way we won't end up mixing LLVM libc++
193 - # libraries with libstdc++ clang, and the other way around.
194 - mycmakeargs+=(
195 - -DLLVM_VERSION_SUFFIX="libcxx"
196 - )
197 - fi
198 -
199 -# Note: go bindings have no CMake rules at the moment
200 -# but let's kill the check in case they are introduced
201 -# if ! multilib_is_native_abi || ! use go; then
202 - mycmakeargs+=(
203 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
204 - )
205 -# fi
206 -
207 - use test && mycmakeargs+=(
208 - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
209 - )
210 -
211 - if multilib_is_native_abi; then
212 - mycmakeargs+=(
213 - -DLLVM_BUILD_DOCS=$(usex doc)
214 - -DLLVM_ENABLE_OCAMLDOC=OFF
215 - -DLLVM_ENABLE_SPHINX=$(usex doc)
216 - -DLLVM_ENABLE_DOXYGEN=OFF
217 - -DLLVM_INSTALL_UTILS=ON
218 - )
219 - use doc && mycmakeargs+=(
220 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
221 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
222 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
223 - )
224 - use gold && mycmakeargs+=(
225 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
226 - )
227 - fi
228 -
229 - if tc-is-cross-compiler; then
230 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
231 - [[ -x "${tblgen}" ]] \
232 - || die "${tblgen} not found or usable"
233 - mycmakeargs+=(
234 - -DCMAKE_CROSSCOMPILING=ON
235 - -DLLVM_TABLEGEN="${tblgen}"
236 - )
237 - fi
238 -
239 - # workaround BMI bug in gcc-7 (fixed in 7.4)
240 - # https://bugs.gentoo.org/649880
241 - # apply only to x86, https://bugs.gentoo.org/650506
242 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
243 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
244 - then
245 - local CFLAGS="${CFLAGS} -mno-bmi"
246 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
247 - fi
248 -
249 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
250 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
251 - cmake-utils_src_configure
252 -}
253 -
254 -multilib_src_compile() {
255 - cmake-utils_src_compile
256 -
257 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
258 - pax-mark m "${BUILD_DIR}"/bin/lli
259 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
260 -
261 - if use test; then
262 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
263 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
264 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
265 - fi
266 -}
267 -
268 -multilib_src_test() {
269 - # respect TMPDIR!
270 - local -x LIT_PRESERVES_TMP=1
271 - cmake-utils_src_make check
272 -}
273 -
274 -src_install() {
275 - local MULTILIB_CHOST_TOOLS=(
276 - /usr/lib/llvm/${SLOT}/bin/llvm-config
277 - )
278 -
279 - local MULTILIB_WRAPPED_HEADERS=(
280 - /usr/include/llvm/Config/llvm-config.h
281 - )
282 -
283 - local LLVM_LDPATHS=()
284 - multilib-minimal_src_install
285 -
286 - # move wrapped headers back
287 - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die
288 -}
289 -
290 -multilib_src_install() {
291 - cmake-utils_src_install
292 -
293 - # move headers to /usr/include for wrapping
294 - rm -rf "${ED%/}"/usr/include || die
295 - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die
296 -
297 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
298 -}
299 -
300 -multilib_src_install_all() {
301 - local revord=$(( 9999 - ${SLOT} ))
302 - newenvd - "10llvm-${revord}" <<-_EOF_
303 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
304 - # we need to duplicate it in ROOTPATH for Portage to respect...
305 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
306 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
307 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
308 - _EOF_
309 -
310 - # install pre-generated manpages
311 -# if ! use doc; then
312 -# # (doman does not support custom paths)
313 -# insinto "/usr/lib/llvm/${SLOT}/share/man/man1"
314 -# doins "${WORKDIR}/${P}-manpages/llvm"/*.1
315 -# fi
316 -
317 - docompress "/usr/lib/llvm/${SLOT}/share/man"
318 -}
319 -
320 -pkg_postinst() {
321 - elog "You can find additional opt-viewer utility scripts in:"
322 - elog " ${EROOT%/}/usr/lib/llvm/${SLOT}/share/opt-viewer"
323 - elog "To use these scripts, you will need Python 2.7 along with the following"
324 - elog "packages:"
325 - elog " dev-python/pygments (for opt-viewer)"
326 - elog " dev-python/pyyaml (for all of them)"
327 -}
328
329 diff --git a/sys-devel/llvm/llvm-8.0.0_rc3.ebuild b/sys-devel/llvm/llvm-8.0.0_rc3.ebuild
330 deleted file mode 100644
331 index 167c83db857..00000000000
332 --- a/sys-devel/llvm/llvm-8.0.0_rc3.ebuild
333 +++ /dev/null
334 @@ -1,292 +0,0 @@
335 -# Copyright 1999-2019 Gentoo Authors
336 -# Distributed under the terms of the GNU General Public License v2
337 -
338 -EAPI=6
339 -
340 -: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
341 -# (needed due to CMAKE_BUILD_TYPE != Gentoo)
342 -CMAKE_MIN_VERSION=3.7.0-r1
343 -PYTHON_COMPAT=( python2_7 )
344 -
345 -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \
346 - multiprocessing pax-utils python-any-r1 toolchain-funcs
347 -
348 -DESCRIPTION="Low Level Virtual Machine"
349 -HOMEPAGE="https://llvm.org/"
350 -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
351 -# !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )"
352 -
353 -# Keep in sync with CMakeLists.txt
354 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
355 - NVPTX PowerPC Sparc SystemZ X86 XCore )
356 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
357 -
358 -# Additional licenses:
359 -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
360 -# 2. ARM backend: LLVM Software Grant by ARM.
361 -# 3. MD5 code: public-domain.
362 -# 4. Tests (not installed):
363 -# a. gtest: BSD.
364 -# b. YAML tests: MIT.
365 -
366 -LICENSE="UoI-NCSA rc BSD public-domain
367 - llvm_targets_ARM? ( LLVM-Grant )"
368 -SLOT="$(ver_cut 1)"
369 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
370 -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml
371 - kernel_Darwin ${ALL_LLVM_TARGETS[*]}"
372 -RESTRICT="!test? ( test )"
373 -
374 -RDEPEND="
375 - sys-libs/zlib:0=
376 - exegesis? ( dev-libs/libpfm:= )
377 - gold? ( >=sys-devel/binutils-2.22:*[cxx] )
378 - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
379 - libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
380 - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
381 - xar? ( app-arch/xar )
382 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )"
383 -# configparser-3.2 breaks the build (3.3 or none at all are fine)
384 -DEPEND="${RDEPEND}
385 - dev-lang/perl
386 - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
387 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
388 - )
389 - kernel_Darwin? (
390 - <sys-libs/libcxx-$(ver_cut 1-3).9999
391 - >=sys-devel/binutils-apple-5.1
392 - )
393 - doc? ( $(python_gen_any_dep '
394 - dev-python/recommonmark[${PYTHON_USEDEP}]
395 - dev-python/sphinx[${PYTHON_USEDEP}]
396 - ') )
397 - !doc? ( ${PYTHON_DEPS} )
398 - gold? ( sys-libs/binutils-libs )
399 - libffi? ( virtual/pkgconfig )
400 - !!<dev-python/configparser-3.3.0.2
401 - ${PYTHON_DEPS}"
402 -# There are no file collisions between these versions but having :0
403 -# installed means llvm-config there will take precedence.
404 -RDEPEND="${RDEPEND}
405 - !sys-devel/llvm:0"
406 -PDEPEND="sys-devel/llvm-common
407 - gold? ( >=sys-devel/llvmgold-${SLOT} )"
408 -
409 -REQUIRED_USE="${PYTHON_REQUIRED_USE}
410 - || ( ${ALL_LLVM_TARGETS[*]} )"
411 -
412 -S=${WORKDIR}/${P/_/}.src
413 -
414 -# least intrusive of all
415 -CMAKE_BUILD_TYPE=RelWithDebInfo
416 -
417 -python_check_deps() {
418 - use doc || return 0
419 -
420 - has_version "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
421 - has_version "dev-python/sphinx[${PYTHON_USEDEP}]"
422 -}
423 -
424 -src_prepare() {
425 - # Fix llvm-config for shared linking and sane flags
426 - # https://bugs.gentoo.org/show_bug.cgi?id=565358
427 - eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
428 -
429 - # disable use of SDK on OSX, bug #568758
430 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
431 -
432 - # User patches + QA
433 - cmake-utils_src_prepare
434 -}
435 -
436 -# Is LLVM being linked against libc++?
437 -is_libcxx_linked() {
438 - local code='#include <ciso646>
439 -#if defined(_LIBCPP_VERSION)
440 - HAVE_LIBCXX
441 -#endif
442 -'
443 - local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
444 -
445 - [[ ${out} == *HAVE_LIBCXX* ]]
446 -}
447 -
448 -multilib_src_configure() {
449 - local ffi_cflags ffi_ldflags
450 - if use libffi; then
451 - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
452 - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
453 - fi
454 -
455 - local libdir=$(get_libdir)
456 - local mycmakeargs=(
457 - # disable appending VCS revision to the version to improve
458 - # direct cache hit ratio
459 - -DLLVM_APPEND_VC_REV=OFF
460 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
461 - -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
462 -
463 - -DBUILD_SHARED_LIBS=ON
464 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
465 - -DLLVM_BUILD_TESTS=$(usex test)
466 -
467 - -DLLVM_ENABLE_FFI=$(usex libffi)
468 - -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
469 - -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
470 - -DLLVM_ENABLE_LIBXML2=$(usex xml)
471 - -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
472 - -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
473 - -DLLVM_ENABLE_EH=ON
474 - -DLLVM_ENABLE_RTTI=ON
475 -
476 - -DWITH_POLLY=OFF # TODO
477 -
478 - -DLLVM_HOST_TRIPLE="${CHOST}"
479 -
480 - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
481 - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
482 - # used only for llvm-objdump tool
483 - -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0)
484 -
485 - # disable OCaml bindings (now in dev-ml/llvm-ocaml)
486 - -DOCAMLFIND=NO
487 - )
488 -
489 - if is_libcxx_linked; then
490 - # Smart hack: alter version suffix -> SOVERSION when linking
491 - # against libc++. This way we won't end up mixing LLVM libc++
492 - # libraries with libstdc++ clang, and the other way around.
493 - mycmakeargs+=(
494 - -DLLVM_VERSION_SUFFIX="libcxx"
495 - )
496 - fi
497 -
498 -# Note: go bindings have no CMake rules at the moment
499 -# but let's kill the check in case they are introduced
500 -# if ! multilib_is_native_abi || ! use go; then
501 - mycmakeargs+=(
502 - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
503 - )
504 -# fi
505 -
506 - use test && mycmakeargs+=(
507 - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
508 - )
509 -
510 - if multilib_is_native_abi; then
511 - mycmakeargs+=(
512 - -DLLVM_BUILD_DOCS=$(usex doc)
513 - -DLLVM_ENABLE_OCAMLDOC=OFF
514 - -DLLVM_ENABLE_SPHINX=$(usex doc)
515 - -DLLVM_ENABLE_DOXYGEN=OFF
516 - -DLLVM_INSTALL_UTILS=ON
517 - )
518 - use doc && mycmakeargs+=(
519 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
520 - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
521 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
522 - )
523 - use gold && mycmakeargs+=(
524 - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
525 - )
526 - fi
527 -
528 - if tc-is-cross-compiler; then
529 - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen"
530 - [[ -x "${tblgen}" ]] \
531 - || die "${tblgen} not found or usable"
532 - mycmakeargs+=(
533 - -DCMAKE_CROSSCOMPILING=ON
534 - -DLLVM_TABLEGEN="${tblgen}"
535 - )
536 - fi
537 -
538 - # workaround BMI bug in gcc-7 (fixed in 7.4)
539 - # https://bugs.gentoo.org/649880
540 - # apply only to x86, https://bugs.gentoo.org/650506
541 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
542 - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
543 - then
544 - local CFLAGS="${CFLAGS} -mno-bmi"
545 - local CXXFLAGS="${CXXFLAGS} -mno-bmi"
546 - fi
547 -
548 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
549 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
550 - cmake-utils_src_configure
551 -}
552 -
553 -multilib_src_compile() {
554 - cmake-utils_src_compile
555 -
556 - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
557 - pax-mark m "${BUILD_DIR}"/bin/lli
558 - pax-mark m "${BUILD_DIR}"/bin/lli-child-target
559 -
560 - if use test; then
561 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
562 - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
563 - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
564 - fi
565 -}
566 -
567 -multilib_src_test() {
568 - # respect TMPDIR!
569 - local -x LIT_PRESERVES_TMP=1
570 - cmake-utils_src_make check
571 -}
572 -
573 -src_install() {
574 - local MULTILIB_CHOST_TOOLS=(
575 - /usr/lib/llvm/${SLOT}/bin/llvm-config
576 - )
577 -
578 - local MULTILIB_WRAPPED_HEADERS=(
579 - /usr/include/llvm/Config/llvm-config.h
580 - )
581 -
582 - local LLVM_LDPATHS=()
583 - multilib-minimal_src_install
584 -
585 - # move wrapped headers back
586 - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die
587 -}
588 -
589 -multilib_src_install() {
590 - cmake-utils_src_install
591 -
592 - # move headers to /usr/include for wrapping
593 - rm -rf "${ED%/}"/usr/include || die
594 - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die
595 -
596 - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" )
597 -}
598 -
599 -multilib_src_install_all() {
600 - local revord=$(( 9999 - ${SLOT} ))
601 - newenvd - "10llvm-${revord}" <<-_EOF_
602 - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
603 - # we need to duplicate it in ROOTPATH for Portage to respect...
604 - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin"
605 - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
606 - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
607 - _EOF_
608 -
609 - # install pre-generated manpages
610 -# if ! use doc; then
611 -# # (doman does not support custom paths)
612 -# insinto "/usr/lib/llvm/${SLOT}/share/man/man1"
613 -# doins "${WORKDIR}/${P}-manpages/llvm"/*.1
614 -# fi
615 -
616 - docompress "/usr/lib/llvm/${SLOT}/share/man"
617 -}
618 -
619 -pkg_postinst() {
620 - elog "You can find additional opt-viewer utility scripts in:"
621 - elog " ${EROOT%/}/usr/lib/llvm/${SLOT}/share/opt-viewer"
622 - elog "To use these scripts, you will need Python 2.7 along with the following"
623 - elog "packages:"
624 - elog " dev-python/pygments (for opt-viewer)"
625 - elog " dev-python/pyyaml (for all of them)"
626 -}