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 |
-} |