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/clang/
Date: Fri, 01 Oct 2021 13:27:32
Message-Id: 1633094831.73d4b1d1122e005177061e07f3d063c62ec5f868.mgorny@gentoo
1 commit: 73d4b1d1122e005177061e07f3d063c62ec5f868
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 1 12:37:26 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 1 13:27:11 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73d4b1d1
7
8 sys-devel/clang: Remove 13.0.0 RCs
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/clang/Manifest | 6 -
13 sys-devel/clang/clang-13.0.0_rc2.ebuild | 426 --------------------------------
14 sys-devel/clang/clang-13.0.0_rc3.ebuild | 426 --------------------------------
15 sys-devel/clang/clang-13.0.0_rc4.ebuild | 426 --------------------------------
16 4 files changed, 1284 deletions(-)
17
18 diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest
19 index 2a899f599e1..2a2c1373153 100644
20 --- a/sys-devel/clang/Manifest
21 +++ b/sys-devel/clang/Manifest
22 @@ -5,15 +5,9 @@ DIST llvm-13.0.0-manpages.tar.bz2 202595 BLAKE2B 1a3a389e8c544675f7ba2692f92bb82
23 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
24 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
25 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
26 -DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
27 -DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
28 -DIST llvm-gentoo-patchset-13.0.0-rc4.tar.xz 5016 BLAKE2B 021ba4e67904e4cf4dfdf1ecfc1cd1cc860c2f43db97e04c40ca7d95567f6235a27a2a919083c58b89b269eefa2d751cb9c324bda6518c22e9fc01007936a520 SHA512 dce61179dffafc5992fb0e18314bba2d5fbf2f0470a491bc1ffc036274b65d0a1de741b23e2de32e873250c856a53707e06f8c560bd29f8a54a6ae0c74267f43
29 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
30 DIST llvm-gentoo-patchset-9999-2.tar.xz 4064 BLAKE2B 4b29234f10ea4ab2609e83c71bcd5f968cd93abd275c13366146ca899bbc576d55a3364432cc7db353739f5da5762529436689b848857e839e230425d551265b SHA512 c0d40a81bd11dc6018d7b3789e4ca7e1cd784992d44fab8d750b8b5281db39ad9092d320d125cae93164d2dddc42177a173b6d5e4158e4b62d7507db877acb9e
31 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
32 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
33 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
34 -DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
35 -DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46
36 -DIST llvmorg-13.0.0-rc4.tar.gz 147286367 BLAKE2B a43c54b8bb379b0374f99ae07066d7ba4ae2a83dfdb61390101c736f91dc44aa07a88778551aaaf903033562b2a0a863ea6b27392b700c9cddc74e2c7899cad1 SHA512 8ccaaea21ec4fe3c4b4446d3a7cae36a47ed196f407d341da45824bcefefffd3c412c0c5c27670ceaba1458bc53107273f9d3aec2de261b6b82c6d209b45b14d
37 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
38
39 diff --git a/sys-devel/clang/clang-13.0.0_rc2.ebuild b/sys-devel/clang/clang-13.0.0_rc2.ebuild
40 deleted file mode 100644
41 index 5003b7995d1..00000000000
42 --- a/sys-devel/clang/clang-13.0.0_rc2.ebuild
43 +++ /dev/null
44 @@ -1,426 +0,0 @@
45 -# Copyright 1999-2021 Gentoo Authors
46 -# Distributed under the terms of the GNU General Public License v2
47 -
48 -EAPI=7
49 -
50 -PYTHON_COMPAT=( python3_{8..10} )
51 -inherit cmake llvm llvm.org multilib multilib-minimal \
52 - prefix python-single-r1 toolchain-funcs
53 -
54 -DESCRIPTION="C language family frontend for LLVM"
55 -HOMEPAGE="https://llvm.org/"
56 -
57 -# MSVCSetupApi.h: MIT
58 -# sorttable.js: MIT
59 -
60 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
61 -SLOT="$(ver_cut 1)"
62 -KEYWORDS=""
63 -IUSE="debug default-compiler-rt default-libcxx default-lld
64 - doc llvm-libunwind +static-analyzer test xml kernel_FreeBSD"
65 -REQUIRED_USE="${PYTHON_REQUIRED_USE}"
66 -RESTRICT="!test? ( test )"
67 -
68 -RDEPEND="
69 - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${MULTILIB_USEDEP}]
70 - static-analyzer? ( dev-lang/perl:* )
71 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
72 - ${PYTHON_DEPS}"
73 -
74 -DEPEND="${RDEPEND}"
75 -BDEPEND="
76 - >=dev-util/cmake-3.16
77 - doc? ( dev-python/sphinx )
78 - xml? ( virtual/pkgconfig )
79 - ${PYTHON_DEPS}"
80 -PDEPEND="
81 - sys-devel/clang-common
82 - ~sys-devel/clang-runtime-${PV}
83 - default-compiler-rt? (
84 - =sys-libs/compiler-rt-${PV%_*}*
85 - llvm-libunwind? ( sys-libs/llvm-libunwind )
86 - !llvm-libunwind? ( sys-libs/libunwind )
87 - )
88 - default-libcxx? ( >=sys-libs/libcxx-${PV} )
89 - default-lld? ( sys-devel/lld )"
90 -
91 -LLVM_COMPONENTS=( clang clang-tools-extra )
92 -LLVM_MANPAGES=build
93 -LLVM_TEST_COMPONENTS=(
94 - llvm/lib/Testing/Support
95 - llvm/utils/{lit,llvm-lit,unittest}
96 - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py}
97 -)
98 -LLVM_PATCHSET=13.0.0-rc2
99 -LLVM_USE_TARGETS=llvm
100 -llvm.org_set_globals
101 -
102 -# Multilib notes:
103 -# 1. ABI_* flags control ABIs libclang* is built for only.
104 -# 2. clang is always capable of compiling code for all ABIs for enabled
105 -# target. However, you will need appropriate crt* files (installed
106 -# e.g. by sys-devel/gcc and sys-libs/glibc).
107 -# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
108 -# in the current profile (i.e. alike supported by sys-devel/gcc).
109 -#
110 -# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
111 -# multilib clang* libraries (not runtime, not wrappers).
112 -
113 -pkg_setup() {
114 - LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
115 - python-single-r1_pkg_setup
116 -}
117 -
118 -src_prepare() {
119 - # create extra parent dir for relative CLANG_RESOURCE_DIR access
120 - mkdir -p x/y || die
121 - BUILD_DIR=${WORKDIR}/x/y/clang
122 -
123 - llvm.org_src_prepare
124 -
125 - # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
126 - eprefixify \
127 - lib/Frontend/InitHeaderSearch.cpp \
128 - lib/Driver/ToolChains/Darwin.cpp || die
129 -}
130 -
131 -check_distribution_components() {
132 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
133 - local all_targets=() my_targets=() l
134 - cd "${BUILD_DIR}" || die
135 -
136 - while read -r l; do
137 - if [[ ${l} == install-*-stripped:* ]]; then
138 - l=${l#install-}
139 - l=${l%%-stripped*}
140 -
141 - case ${l} in
142 - # meta-targets
143 - clang-libraries|distribution)
144 - continue
145 - ;;
146 - # headers for clang-tidy static library
147 - clang-tidy-headers)
148 - continue
149 - ;;
150 - # tools
151 - clang|clangd|clang-*)
152 - ;;
153 - # static libraries
154 - clang*|findAllSymbols)
155 - continue
156 - ;;
157 - # conditional to USE=doc
158 - docs-clang-html|docs-clang-tools-html)
159 - use doc || continue
160 - ;;
161 - esac
162 -
163 - all_targets+=( "${l}" )
164 - fi
165 - done < <(ninja -t targets all)
166 -
167 - while read -r l; do
168 - my_targets+=( "${l}" )
169 - done < <(get_distribution_components $"\n")
170 -
171 - local add=() remove=()
172 - for l in "${all_targets[@]}"; do
173 - if ! has "${l}" "${my_targets[@]}"; then
174 - add+=( "${l}" )
175 - fi
176 - done
177 - for l in "${my_targets[@]}"; do
178 - if ! has "${l}" "${all_targets[@]}"; then
179 - remove+=( "${l}" )
180 - fi
181 - done
182 -
183 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
184 - eqawarn "get_distribution_components() is outdated!"
185 - eqawarn " Add: ${add[*]}"
186 - eqawarn "Remove: ${remove[*]}"
187 - fi
188 - cd - >/dev/null || die
189 - fi
190 -}
191 -
192 -get_distribution_components() {
193 - local sep=${1-;}
194 -
195 - local out=(
196 - # common stuff
197 - clang-cmake-exports
198 - clang-headers
199 - clang-resource-headers
200 - libclang-headers
201 -
202 - # libs
203 - clang-cpp
204 - libclang
205 - )
206 -
207 - if multilib_is_native_abi; then
208 - out+=(
209 - # common stuff
210 - bash-autocomplete
211 - libclang-python-bindings
212 -
213 - # tools
214 - c-index-test
215 - clang
216 - clang-format
217 - clang-offload-bundler
218 - clang-offload-wrapper
219 - clang-refactor
220 - clang-rename
221 - clang-scan-deps
222 - diagtool
223 - hmaptool
224 -
225 - # extra tools
226 - clang-apply-replacements
227 - clang-change-namespace
228 - clang-doc
229 - clang-include-fixer
230 - clang-move
231 - clang-query
232 - clang-reorder-fields
233 - clang-tidy
234 - clangd
235 - find-all-symbols
236 - modularize
237 - pp-trace
238 - )
239 -
240 - if llvm_are_manpages_built; then
241 - out+=(
242 - # manpages
243 - docs-clang-man
244 - docs-clang-tools-man
245 - )
246 - fi
247 -
248 - use doc && out+=(
249 - docs-clang-html
250 - docs-clang-tools-html
251 - )
252 -
253 - use static-analyzer && out+=(
254 - clang-check
255 - clang-extdef-mapping
256 - scan-build
257 - scan-build-py
258 - scan-view
259 - )
260 - fi
261 -
262 - printf "%s${sep}" "${out[@]}"
263 -}
264 -
265 -multilib_src_configure() {
266 - local llvm_version=$(llvm-config --version) || die
267 - local clang_version=$(ver_cut 1-3 "${llvm_version}")
268 -
269 - local mycmakeargs=(
270 - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm"
271 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
272 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
273 - # relative to bindir
274 - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}"
275 -
276 - -DBUILD_SHARED_LIBS=OFF
277 - -DCLANG_LINK_CLANG_DYLIB=ON
278 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
279 -
280 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
281 - -DLLVM_BUILD_TESTS=$(usex test)
282 -
283 - # these are not propagated reliably, so redefine them
284 - -DLLVM_ENABLE_EH=ON
285 - -DLLVM_ENABLE_RTTI=ON
286 -
287 - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
288 - # libgomp support fails to find headers without explicit -I
289 - # furthermore, it provides only syntax checking
290 - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
291 -
292 - # disable using CUDA to autodetect GPU, just build for all
293 - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
294 -
295 - # override default stdlib and rtlib
296 - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "")
297 - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "")
298 - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "")
299 - -DCLANG_DEFAULT_UNWINDLIB=$(usex default-compiler-rt libunwind "")
300 -
301 - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
302 - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
303 -
304 - -DPython3_EXECUTABLE="${PYTHON}"
305 - )
306 - use test && mycmakeargs+=(
307 - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
308 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
309 - )
310 -
311 - if multilib_is_native_abi; then
312 - local build_docs=OFF
313 - if llvm_are_manpages_built; then
314 - build_docs=ON
315 - mycmakeargs+=(
316 - -DLLVM_BUILD_DOCS=ON
317 - -DLLVM_ENABLE_SPHINX=ON
318 - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
319 - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
320 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
321 - )
322 - fi
323 - mycmakeargs+=(
324 - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
325 - -DCLANG_INCLUDE_DOCS=${build_docs}
326 - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
327 - )
328 - else
329 - mycmakeargs+=(
330 - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
331 - )
332 - fi
333 -
334 - if [[ -n ${EPREFIX} ]]; then
335 - mycmakeargs+=(
336 - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
337 - )
338 - fi
339 -
340 - if tc-is-cross-compiler; then
341 - [[ -x "/usr/bin/clang-tblgen" ]] \
342 - || die "/usr/bin/clang-tblgen not found or usable"
343 - mycmakeargs+=(
344 - -DCMAKE_CROSSCOMPILING=ON
345 - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
346 - )
347 - fi
348 -
349 - # LLVM can have very high memory consumption while linking,
350 - # exhausting the limit on 32-bit linker executable
351 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
352 -
353 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
354 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
355 - cmake_src_configure
356 -
357 - multilib_is_native_abi && check_distribution_components
358 -}
359 -
360 -multilib_src_compile() {
361 - cmake_build distribution
362 -
363 - # provide a symlink for tests
364 - if [[ ! -L ${WORKDIR}/lib/clang ]]; then
365 - mkdir -p "${WORKDIR}"/lib || die
366 - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
367 - fi
368 -}
369 -
370 -multilib_src_test() {
371 - # respect TMPDIR!
372 - local -x LIT_PRESERVES_TMP=1
373 - cmake_build check-clang
374 - multilib_is_native_abi &&
375 - cmake_build check-clang-tools check-clangd
376 -}
377 -
378 -src_install() {
379 - MULTILIB_WRAPPED_HEADERS=(
380 - /usr/include/clang/Config/config.h
381 - )
382 -
383 - multilib-minimal_src_install
384 -
385 - # Move runtime headers to /usr/lib/clang, where they belong
386 - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
387 - # move (remaining) wrapped headers back
388 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
389 -
390 - # Apply CHOST and version suffix to clang tools
391 - # note: we use two version components here (vs 3 in runtime path)
392 - local llvm_version=$(llvm-config --version) || die
393 - local clang_version=$(ver_cut 1 "${llvm_version}")
394 - local clang_full_version=$(ver_cut 1-3 "${llvm_version}")
395 - local clang_tools=( clang clang++ clang-cl clang-cpp )
396 - local abi i
397 -
398 - # cmake gives us:
399 - # - clang-X
400 - # - clang -> clang-X
401 - # - clang++, clang-cl, clang-cpp -> clang
402 - # we want to have:
403 - # - clang-X
404 - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
405 - # - clang, clang++, clang-cl, clang-cpp -> clang*-X
406 - # also in CHOST variant
407 - for i in "${clang_tools[@]:1}"; do
408 - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die
409 - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}"
410 - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}"
411 - done
412 -
413 - # now create target symlinks for all supported ABIs
414 - for abi in $(get_all_abis); do
415 - local abi_chost=$(get_abi_CHOST "${abi}")
416 - for i in "${clang_tools[@]}"; do
417 - dosym "${i}-${clang_version}" \
418 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}"
419 - dosym "${abi_chost}-${i}-${clang_version}" \
420 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}"
421 - done
422 - done
423 -
424 - # Remove unnecessary headers on FreeBSD, bug #417171
425 - if use kernel_FreeBSD; then
426 - rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die
427 - fi
428 -}
429 -
430 -multilib_src_install() {
431 - DESTDIR=${D} cmake_build install-distribution
432 -
433 - # move headers to /usr/include for wrapping & ABI mismatch checks
434 - # (also drop the version suffix from runtime headers)
435 - rm -rf "${ED}"/usr/include || die
436 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
437 - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
438 -}
439 -
440 -multilib_src_install_all() {
441 - python_fix_shebang "${ED}"
442 - if use static-analyzer; then
443 - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view
444 - fi
445 -
446 - docompress "/usr/lib/llvm/${SLOT}/share/man"
447 - llvm_install_manpages
448 - # match 'html' non-compression
449 - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
450 - # +x for some reason; TODO: investigate
451 - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
452 -}
453 -
454 -pkg_postinst() {
455 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
456 - eselect compiler-shadow update all
457 - fi
458 -
459 - elog "You can find additional utility scripts in:"
460 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang"
461 - elog "Some of them are vim integration scripts (with instructions inside)."
462 - elog "The run-clang-tidy.py script requires the following additional package:"
463 - elog " dev-python/pyyaml"
464 -}
465 -
466 -pkg_postrm() {
467 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
468 - eselect compiler-shadow clean all
469 - fi
470 -}
471
472 diff --git a/sys-devel/clang/clang-13.0.0_rc3.ebuild b/sys-devel/clang/clang-13.0.0_rc3.ebuild
473 deleted file mode 100644
474 index 6ed4a618f02..00000000000
475 --- a/sys-devel/clang/clang-13.0.0_rc3.ebuild
476 +++ /dev/null
477 @@ -1,426 +0,0 @@
478 -# Copyright 1999-2021 Gentoo Authors
479 -# Distributed under the terms of the GNU General Public License v2
480 -
481 -EAPI=7
482 -
483 -PYTHON_COMPAT=( python3_{8..10} )
484 -inherit cmake llvm llvm.org multilib multilib-minimal \
485 - prefix python-single-r1 toolchain-funcs
486 -
487 -DESCRIPTION="C language family frontend for LLVM"
488 -HOMEPAGE="https://llvm.org/"
489 -
490 -# MSVCSetupApi.h: MIT
491 -# sorttable.js: MIT
492 -
493 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
494 -SLOT="$(ver_cut 1)"
495 -KEYWORDS=""
496 -IUSE="debug default-compiler-rt default-libcxx default-lld
497 - doc llvm-libunwind +static-analyzer test xml kernel_FreeBSD"
498 -REQUIRED_USE="${PYTHON_REQUIRED_USE}"
499 -RESTRICT="!test? ( test )"
500 -
501 -RDEPEND="
502 - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${MULTILIB_USEDEP}]
503 - static-analyzer? ( dev-lang/perl:* )
504 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
505 - ${PYTHON_DEPS}"
506 -
507 -DEPEND="${RDEPEND}"
508 -BDEPEND="
509 - >=dev-util/cmake-3.16
510 - doc? ( dev-python/sphinx )
511 - xml? ( virtual/pkgconfig )
512 - ${PYTHON_DEPS}"
513 -PDEPEND="
514 - sys-devel/clang-common
515 - ~sys-devel/clang-runtime-${PV}
516 - default-compiler-rt? (
517 - =sys-libs/compiler-rt-${PV%_*}*
518 - llvm-libunwind? ( sys-libs/llvm-libunwind )
519 - !llvm-libunwind? ( sys-libs/libunwind )
520 - )
521 - default-libcxx? ( >=sys-libs/libcxx-${PV} )
522 - default-lld? ( sys-devel/lld )"
523 -
524 -LLVM_COMPONENTS=( clang clang-tools-extra )
525 -LLVM_MANPAGES=build
526 -LLVM_TEST_COMPONENTS=(
527 - llvm/lib/Testing/Support
528 - llvm/utils/{lit,llvm-lit,unittest}
529 - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py}
530 -)
531 -LLVM_PATCHSET=13.0.0-rc3
532 -LLVM_USE_TARGETS=llvm
533 -llvm.org_set_globals
534 -
535 -# Multilib notes:
536 -# 1. ABI_* flags control ABIs libclang* is built for only.
537 -# 2. clang is always capable of compiling code for all ABIs for enabled
538 -# target. However, you will need appropriate crt* files (installed
539 -# e.g. by sys-devel/gcc and sys-libs/glibc).
540 -# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
541 -# in the current profile (i.e. alike supported by sys-devel/gcc).
542 -#
543 -# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
544 -# multilib clang* libraries (not runtime, not wrappers).
545 -
546 -pkg_setup() {
547 - LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
548 - python-single-r1_pkg_setup
549 -}
550 -
551 -src_prepare() {
552 - # create extra parent dir for relative CLANG_RESOURCE_DIR access
553 - mkdir -p x/y || die
554 - BUILD_DIR=${WORKDIR}/x/y/clang
555 -
556 - llvm.org_src_prepare
557 -
558 - # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
559 - eprefixify \
560 - lib/Frontend/InitHeaderSearch.cpp \
561 - lib/Driver/ToolChains/Darwin.cpp || die
562 -}
563 -
564 -check_distribution_components() {
565 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
566 - local all_targets=() my_targets=() l
567 - cd "${BUILD_DIR}" || die
568 -
569 - while read -r l; do
570 - if [[ ${l} == install-*-stripped:* ]]; then
571 - l=${l#install-}
572 - l=${l%%-stripped*}
573 -
574 - case ${l} in
575 - # meta-targets
576 - clang-libraries|distribution)
577 - continue
578 - ;;
579 - # headers for clang-tidy static library
580 - clang-tidy-headers)
581 - continue
582 - ;;
583 - # tools
584 - clang|clangd|clang-*)
585 - ;;
586 - # static libraries
587 - clang*|findAllSymbols)
588 - continue
589 - ;;
590 - # conditional to USE=doc
591 - docs-clang-html|docs-clang-tools-html)
592 - use doc || continue
593 - ;;
594 - esac
595 -
596 - all_targets+=( "${l}" )
597 - fi
598 - done < <(ninja -t targets all)
599 -
600 - while read -r l; do
601 - my_targets+=( "${l}" )
602 - done < <(get_distribution_components $"\n")
603 -
604 - local add=() remove=()
605 - for l in "${all_targets[@]}"; do
606 - if ! has "${l}" "${my_targets[@]}"; then
607 - add+=( "${l}" )
608 - fi
609 - done
610 - for l in "${my_targets[@]}"; do
611 - if ! has "${l}" "${all_targets[@]}"; then
612 - remove+=( "${l}" )
613 - fi
614 - done
615 -
616 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
617 - eqawarn "get_distribution_components() is outdated!"
618 - eqawarn " Add: ${add[*]}"
619 - eqawarn "Remove: ${remove[*]}"
620 - fi
621 - cd - >/dev/null || die
622 - fi
623 -}
624 -
625 -get_distribution_components() {
626 - local sep=${1-;}
627 -
628 - local out=(
629 - # common stuff
630 - clang-cmake-exports
631 - clang-headers
632 - clang-resource-headers
633 - libclang-headers
634 -
635 - # libs
636 - clang-cpp
637 - libclang
638 - )
639 -
640 - if multilib_is_native_abi; then
641 - out+=(
642 - # common stuff
643 - bash-autocomplete
644 - libclang-python-bindings
645 -
646 - # tools
647 - c-index-test
648 - clang
649 - clang-format
650 - clang-offload-bundler
651 - clang-offload-wrapper
652 - clang-refactor
653 - clang-rename
654 - clang-scan-deps
655 - diagtool
656 - hmaptool
657 -
658 - # extra tools
659 - clang-apply-replacements
660 - clang-change-namespace
661 - clang-doc
662 - clang-include-fixer
663 - clang-move
664 - clang-query
665 - clang-reorder-fields
666 - clang-tidy
667 - clangd
668 - find-all-symbols
669 - modularize
670 - pp-trace
671 - )
672 -
673 - if llvm_are_manpages_built; then
674 - out+=(
675 - # manpages
676 - docs-clang-man
677 - docs-clang-tools-man
678 - )
679 - fi
680 -
681 - use doc && out+=(
682 - docs-clang-html
683 - docs-clang-tools-html
684 - )
685 -
686 - use static-analyzer && out+=(
687 - clang-check
688 - clang-extdef-mapping
689 - scan-build
690 - scan-build-py
691 - scan-view
692 - )
693 - fi
694 -
695 - printf "%s${sep}" "${out[@]}"
696 -}
697 -
698 -multilib_src_configure() {
699 - local llvm_version=$(llvm-config --version) || die
700 - local clang_version=$(ver_cut 1-3 "${llvm_version}")
701 -
702 - local mycmakeargs=(
703 - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm"
704 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
705 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
706 - # relative to bindir
707 - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}"
708 -
709 - -DBUILD_SHARED_LIBS=OFF
710 - -DCLANG_LINK_CLANG_DYLIB=ON
711 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
712 -
713 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
714 - -DLLVM_BUILD_TESTS=$(usex test)
715 -
716 - # these are not propagated reliably, so redefine them
717 - -DLLVM_ENABLE_EH=ON
718 - -DLLVM_ENABLE_RTTI=ON
719 -
720 - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
721 - # libgomp support fails to find headers without explicit -I
722 - # furthermore, it provides only syntax checking
723 - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
724 -
725 - # disable using CUDA to autodetect GPU, just build for all
726 - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
727 -
728 - # override default stdlib and rtlib
729 - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "")
730 - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "")
731 - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "")
732 - -DCLANG_DEFAULT_UNWINDLIB=$(usex default-compiler-rt libunwind "")
733 -
734 - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
735 - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
736 -
737 - -DPython3_EXECUTABLE="${PYTHON}"
738 - )
739 - use test && mycmakeargs+=(
740 - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
741 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
742 - )
743 -
744 - if multilib_is_native_abi; then
745 - local build_docs=OFF
746 - if llvm_are_manpages_built; then
747 - build_docs=ON
748 - mycmakeargs+=(
749 - -DLLVM_BUILD_DOCS=ON
750 - -DLLVM_ENABLE_SPHINX=ON
751 - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
752 - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
753 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
754 - )
755 - fi
756 - mycmakeargs+=(
757 - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
758 - -DCLANG_INCLUDE_DOCS=${build_docs}
759 - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
760 - )
761 - else
762 - mycmakeargs+=(
763 - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
764 - )
765 - fi
766 -
767 - if [[ -n ${EPREFIX} ]]; then
768 - mycmakeargs+=(
769 - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
770 - )
771 - fi
772 -
773 - if tc-is-cross-compiler; then
774 - [[ -x "/usr/bin/clang-tblgen" ]] \
775 - || die "/usr/bin/clang-tblgen not found or usable"
776 - mycmakeargs+=(
777 - -DCMAKE_CROSSCOMPILING=ON
778 - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
779 - )
780 - fi
781 -
782 - # LLVM can have very high memory consumption while linking,
783 - # exhausting the limit on 32-bit linker executable
784 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
785 -
786 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
787 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
788 - cmake_src_configure
789 -
790 - multilib_is_native_abi && check_distribution_components
791 -}
792 -
793 -multilib_src_compile() {
794 - cmake_build distribution
795 -
796 - # provide a symlink for tests
797 - if [[ ! -L ${WORKDIR}/lib/clang ]]; then
798 - mkdir -p "${WORKDIR}"/lib || die
799 - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
800 - fi
801 -}
802 -
803 -multilib_src_test() {
804 - # respect TMPDIR!
805 - local -x LIT_PRESERVES_TMP=1
806 - cmake_build check-clang
807 - multilib_is_native_abi &&
808 - cmake_build check-clang-tools check-clangd
809 -}
810 -
811 -src_install() {
812 - MULTILIB_WRAPPED_HEADERS=(
813 - /usr/include/clang/Config/config.h
814 - )
815 -
816 - multilib-minimal_src_install
817 -
818 - # Move runtime headers to /usr/lib/clang, where they belong
819 - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
820 - # move (remaining) wrapped headers back
821 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
822 -
823 - # Apply CHOST and version suffix to clang tools
824 - # note: we use two version components here (vs 3 in runtime path)
825 - local llvm_version=$(llvm-config --version) || die
826 - local clang_version=$(ver_cut 1 "${llvm_version}")
827 - local clang_full_version=$(ver_cut 1-3 "${llvm_version}")
828 - local clang_tools=( clang clang++ clang-cl clang-cpp )
829 - local abi i
830 -
831 - # cmake gives us:
832 - # - clang-X
833 - # - clang -> clang-X
834 - # - clang++, clang-cl, clang-cpp -> clang
835 - # we want to have:
836 - # - clang-X
837 - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
838 - # - clang, clang++, clang-cl, clang-cpp -> clang*-X
839 - # also in CHOST variant
840 - for i in "${clang_tools[@]:1}"; do
841 - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die
842 - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}"
843 - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}"
844 - done
845 -
846 - # now create target symlinks for all supported ABIs
847 - for abi in $(get_all_abis); do
848 - local abi_chost=$(get_abi_CHOST "${abi}")
849 - for i in "${clang_tools[@]}"; do
850 - dosym "${i}-${clang_version}" \
851 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}"
852 - dosym "${abi_chost}-${i}-${clang_version}" \
853 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}"
854 - done
855 - done
856 -
857 - # Remove unnecessary headers on FreeBSD, bug #417171
858 - if use kernel_FreeBSD; then
859 - rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die
860 - fi
861 -}
862 -
863 -multilib_src_install() {
864 - DESTDIR=${D} cmake_build install-distribution
865 -
866 - # move headers to /usr/include for wrapping & ABI mismatch checks
867 - # (also drop the version suffix from runtime headers)
868 - rm -rf "${ED}"/usr/include || die
869 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
870 - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
871 -}
872 -
873 -multilib_src_install_all() {
874 - python_fix_shebang "${ED}"
875 - if use static-analyzer; then
876 - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view
877 - fi
878 -
879 - docompress "/usr/lib/llvm/${SLOT}/share/man"
880 - llvm_install_manpages
881 - # match 'html' non-compression
882 - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
883 - # +x for some reason; TODO: investigate
884 - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
885 -}
886 -
887 -pkg_postinst() {
888 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
889 - eselect compiler-shadow update all
890 - fi
891 -
892 - elog "You can find additional utility scripts in:"
893 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang"
894 - elog "Some of them are vim integration scripts (with instructions inside)."
895 - elog "The run-clang-tidy.py script requires the following additional package:"
896 - elog " dev-python/pyyaml"
897 -}
898 -
899 -pkg_postrm() {
900 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
901 - eselect compiler-shadow clean all
902 - fi
903 -}
904
905 diff --git a/sys-devel/clang/clang-13.0.0_rc4.ebuild b/sys-devel/clang/clang-13.0.0_rc4.ebuild
906 deleted file mode 100644
907 index 6fb09213aac..00000000000
908 --- a/sys-devel/clang/clang-13.0.0_rc4.ebuild
909 +++ /dev/null
910 @@ -1,426 +0,0 @@
911 -# Copyright 1999-2021 Gentoo Authors
912 -# Distributed under the terms of the GNU General Public License v2
913 -
914 -EAPI=7
915 -
916 -PYTHON_COMPAT=( python3_{8..10} )
917 -inherit cmake llvm llvm.org multilib multilib-minimal \
918 - prefix python-single-r1 toolchain-funcs
919 -
920 -DESCRIPTION="C language family frontend for LLVM"
921 -HOMEPAGE="https://llvm.org/"
922 -
923 -# MSVCSetupApi.h: MIT
924 -# sorttable.js: MIT
925 -
926 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
927 -SLOT="$(ver_cut 1)"
928 -KEYWORDS=""
929 -IUSE="debug default-compiler-rt default-libcxx default-lld
930 - doc llvm-libunwind +static-analyzer test xml kernel_FreeBSD"
931 -REQUIRED_USE="${PYTHON_REQUIRED_USE}"
932 -RESTRICT="!test? ( test )"
933 -
934 -RDEPEND="
935 - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${MULTILIB_USEDEP}]
936 - static-analyzer? ( dev-lang/perl:* )
937 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
938 - ${PYTHON_DEPS}"
939 -
940 -DEPEND="${RDEPEND}"
941 -BDEPEND="
942 - >=dev-util/cmake-3.16
943 - doc? ( dev-python/sphinx )
944 - xml? ( virtual/pkgconfig )
945 - ${PYTHON_DEPS}"
946 -PDEPEND="
947 - sys-devel/clang-common
948 - ~sys-devel/clang-runtime-${PV}
949 - default-compiler-rt? (
950 - =sys-libs/compiler-rt-${PV%_*}*
951 - llvm-libunwind? ( sys-libs/llvm-libunwind )
952 - !llvm-libunwind? ( sys-libs/libunwind )
953 - )
954 - default-libcxx? ( >=sys-libs/libcxx-${PV} )
955 - default-lld? ( sys-devel/lld )"
956 -
957 -LLVM_COMPONENTS=( clang clang-tools-extra )
958 -LLVM_MANPAGES=build
959 -LLVM_TEST_COMPONENTS=(
960 - llvm/lib/Testing/Support
961 - llvm/utils/{lit,llvm-lit,unittest}
962 - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py}
963 -)
964 -LLVM_PATCHSET=${PV/_/-}
965 -LLVM_USE_TARGETS=llvm
966 -llvm.org_set_globals
967 -
968 -# Multilib notes:
969 -# 1. ABI_* flags control ABIs libclang* is built for only.
970 -# 2. clang is always capable of compiling code for all ABIs for enabled
971 -# target. However, you will need appropriate crt* files (installed
972 -# e.g. by sys-devel/gcc and sys-libs/glibc).
973 -# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
974 -# in the current profile (i.e. alike supported by sys-devel/gcc).
975 -#
976 -# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
977 -# multilib clang* libraries (not runtime, not wrappers).
978 -
979 -pkg_setup() {
980 - LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
981 - python-single-r1_pkg_setup
982 -}
983 -
984 -src_prepare() {
985 - # create extra parent dir for relative CLANG_RESOURCE_DIR access
986 - mkdir -p x/y || die
987 - BUILD_DIR=${WORKDIR}/x/y/clang
988 -
989 - llvm.org_src_prepare
990 -
991 - # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
992 - eprefixify \
993 - lib/Frontend/InitHeaderSearch.cpp \
994 - lib/Driver/ToolChains/Darwin.cpp || die
995 -}
996 -
997 -check_distribution_components() {
998 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
999 - local all_targets=() my_targets=() l
1000 - cd "${BUILD_DIR}" || die
1001 -
1002 - while read -r l; do
1003 - if [[ ${l} == install-*-stripped:* ]]; then
1004 - l=${l#install-}
1005 - l=${l%%-stripped*}
1006 -
1007 - case ${l} in
1008 - # meta-targets
1009 - clang-libraries|distribution)
1010 - continue
1011 - ;;
1012 - # headers for clang-tidy static library
1013 - clang-tidy-headers)
1014 - continue
1015 - ;;
1016 - # tools
1017 - clang|clangd|clang-*)
1018 - ;;
1019 - # static libraries
1020 - clang*|findAllSymbols)
1021 - continue
1022 - ;;
1023 - # conditional to USE=doc
1024 - docs-clang-html|docs-clang-tools-html)
1025 - use doc || continue
1026 - ;;
1027 - esac
1028 -
1029 - all_targets+=( "${l}" )
1030 - fi
1031 - done < <(ninja -t targets all)
1032 -
1033 - while read -r l; do
1034 - my_targets+=( "${l}" )
1035 - done < <(get_distribution_components $"\n")
1036 -
1037 - local add=() remove=()
1038 - for l in "${all_targets[@]}"; do
1039 - if ! has "${l}" "${my_targets[@]}"; then
1040 - add+=( "${l}" )
1041 - fi
1042 - done
1043 - for l in "${my_targets[@]}"; do
1044 - if ! has "${l}" "${all_targets[@]}"; then
1045 - remove+=( "${l}" )
1046 - fi
1047 - done
1048 -
1049 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
1050 - eqawarn "get_distribution_components() is outdated!"
1051 - eqawarn " Add: ${add[*]}"
1052 - eqawarn "Remove: ${remove[*]}"
1053 - fi
1054 - cd - >/dev/null || die
1055 - fi
1056 -}
1057 -
1058 -get_distribution_components() {
1059 - local sep=${1-;}
1060 -
1061 - local out=(
1062 - # common stuff
1063 - clang-cmake-exports
1064 - clang-headers
1065 - clang-resource-headers
1066 - libclang-headers
1067 -
1068 - # libs
1069 - clang-cpp
1070 - libclang
1071 - )
1072 -
1073 - if multilib_is_native_abi; then
1074 - out+=(
1075 - # common stuff
1076 - bash-autocomplete
1077 - libclang-python-bindings
1078 -
1079 - # tools
1080 - c-index-test
1081 - clang
1082 - clang-format
1083 - clang-offload-bundler
1084 - clang-offload-wrapper
1085 - clang-refactor
1086 - clang-rename
1087 - clang-scan-deps
1088 - diagtool
1089 - hmaptool
1090 -
1091 - # extra tools
1092 - clang-apply-replacements
1093 - clang-change-namespace
1094 - clang-doc
1095 - clang-include-fixer
1096 - clang-move
1097 - clang-query
1098 - clang-reorder-fields
1099 - clang-tidy
1100 - clangd
1101 - find-all-symbols
1102 - modularize
1103 - pp-trace
1104 - )
1105 -
1106 - if llvm_are_manpages_built; then
1107 - out+=(
1108 - # manpages
1109 - docs-clang-man
1110 - docs-clang-tools-man
1111 - )
1112 - fi
1113 -
1114 - use doc && out+=(
1115 - docs-clang-html
1116 - docs-clang-tools-html
1117 - )
1118 -
1119 - use static-analyzer && out+=(
1120 - clang-check
1121 - clang-extdef-mapping
1122 - scan-build
1123 - scan-build-py
1124 - scan-view
1125 - )
1126 - fi
1127 -
1128 - printf "%s${sep}" "${out[@]}"
1129 -}
1130 -
1131 -multilib_src_configure() {
1132 - local llvm_version=$(llvm-config --version) || die
1133 - local clang_version=$(ver_cut 1-3 "${llvm_version}")
1134 -
1135 - local mycmakeargs=(
1136 - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm"
1137 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
1138 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
1139 - # relative to bindir
1140 - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}"
1141 -
1142 - -DBUILD_SHARED_LIBS=OFF
1143 - -DCLANG_LINK_CLANG_DYLIB=ON
1144 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
1145 -
1146 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
1147 - -DLLVM_BUILD_TESTS=$(usex test)
1148 -
1149 - # these are not propagated reliably, so redefine them
1150 - -DLLVM_ENABLE_EH=ON
1151 - -DLLVM_ENABLE_RTTI=ON
1152 -
1153 - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
1154 - # libgomp support fails to find headers without explicit -I
1155 - # furthermore, it provides only syntax checking
1156 - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
1157 -
1158 - # disable using CUDA to autodetect GPU, just build for all
1159 - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
1160 -
1161 - # override default stdlib and rtlib
1162 - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "")
1163 - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "")
1164 - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "")
1165 - -DCLANG_DEFAULT_UNWINDLIB=$(usex default-compiler-rt libunwind "")
1166 -
1167 - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
1168 - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
1169 -
1170 - -DPython3_EXECUTABLE="${PYTHON}"
1171 - )
1172 - use test && mycmakeargs+=(
1173 - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
1174 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
1175 - )
1176 -
1177 - if multilib_is_native_abi; then
1178 - local build_docs=OFF
1179 - if llvm_are_manpages_built; then
1180 - build_docs=ON
1181 - mycmakeargs+=(
1182 - -DLLVM_BUILD_DOCS=ON
1183 - -DLLVM_ENABLE_SPHINX=ON
1184 - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
1185 - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
1186 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
1187 - )
1188 - fi
1189 - mycmakeargs+=(
1190 - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
1191 - -DCLANG_INCLUDE_DOCS=${build_docs}
1192 - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
1193 - )
1194 - else
1195 - mycmakeargs+=(
1196 - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
1197 - )
1198 - fi
1199 -
1200 - if [[ -n ${EPREFIX} ]]; then
1201 - mycmakeargs+=(
1202 - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
1203 - )
1204 - fi
1205 -
1206 - if tc-is-cross-compiler; then
1207 - [[ -x "/usr/bin/clang-tblgen" ]] \
1208 - || die "/usr/bin/clang-tblgen not found or usable"
1209 - mycmakeargs+=(
1210 - -DCMAKE_CROSSCOMPILING=ON
1211 - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
1212 - )
1213 - fi
1214 -
1215 - # LLVM can have very high memory consumption while linking,
1216 - # exhausting the limit on 32-bit linker executable
1217 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
1218 -
1219 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
1220 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
1221 - cmake_src_configure
1222 -
1223 - multilib_is_native_abi && check_distribution_components
1224 -}
1225 -
1226 -multilib_src_compile() {
1227 - cmake_build distribution
1228 -
1229 - # provide a symlink for tests
1230 - if [[ ! -L ${WORKDIR}/lib/clang ]]; then
1231 - mkdir -p "${WORKDIR}"/lib || die
1232 - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
1233 - fi
1234 -}
1235 -
1236 -multilib_src_test() {
1237 - # respect TMPDIR!
1238 - local -x LIT_PRESERVES_TMP=1
1239 - cmake_build check-clang
1240 - multilib_is_native_abi &&
1241 - cmake_build check-clang-tools check-clangd
1242 -}
1243 -
1244 -src_install() {
1245 - MULTILIB_WRAPPED_HEADERS=(
1246 - /usr/include/clang/Config/config.h
1247 - )
1248 -
1249 - multilib-minimal_src_install
1250 -
1251 - # Move runtime headers to /usr/lib/clang, where they belong
1252 - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
1253 - # move (remaining) wrapped headers back
1254 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
1255 -
1256 - # Apply CHOST and version suffix to clang tools
1257 - # note: we use two version components here (vs 3 in runtime path)
1258 - local llvm_version=$(llvm-config --version) || die
1259 - local clang_version=$(ver_cut 1 "${llvm_version}")
1260 - local clang_full_version=$(ver_cut 1-3 "${llvm_version}")
1261 - local clang_tools=( clang clang++ clang-cl clang-cpp )
1262 - local abi i
1263 -
1264 - # cmake gives us:
1265 - # - clang-X
1266 - # - clang -> clang-X
1267 - # - clang++, clang-cl, clang-cpp -> clang
1268 - # we want to have:
1269 - # - clang-X
1270 - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
1271 - # - clang, clang++, clang-cl, clang-cpp -> clang*-X
1272 - # also in CHOST variant
1273 - for i in "${clang_tools[@]:1}"; do
1274 - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die
1275 - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}"
1276 - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}"
1277 - done
1278 -
1279 - # now create target symlinks for all supported ABIs
1280 - for abi in $(get_all_abis); do
1281 - local abi_chost=$(get_abi_CHOST "${abi}")
1282 - for i in "${clang_tools[@]}"; do
1283 - dosym "${i}-${clang_version}" \
1284 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}"
1285 - dosym "${abi_chost}-${i}-${clang_version}" \
1286 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}"
1287 - done
1288 - done
1289 -
1290 - # Remove unnecessary headers on FreeBSD, bug #417171
1291 - if use kernel_FreeBSD; then
1292 - rm "${ED}"/usr/lib/clang/${clang_full_version}/include/{std,float,iso,limits,tgmath,varargs}*.h || die
1293 - fi
1294 -}
1295 -
1296 -multilib_src_install() {
1297 - DESTDIR=${D} cmake_build install-distribution
1298 -
1299 - # move headers to /usr/include for wrapping & ABI mismatch checks
1300 - # (also drop the version suffix from runtime headers)
1301 - rm -rf "${ED}"/usr/include || die
1302 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
1303 - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
1304 -}
1305 -
1306 -multilib_src_install_all() {
1307 - python_fix_shebang "${ED}"
1308 - if use static-analyzer; then
1309 - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view
1310 - fi
1311 -
1312 - docompress "/usr/lib/llvm/${SLOT}/share/man"
1313 - llvm_install_manpages
1314 - # match 'html' non-compression
1315 - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
1316 - # +x for some reason; TODO: investigate
1317 - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
1318 -}
1319 -
1320 -pkg_postinst() {
1321 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
1322 - eselect compiler-shadow update all
1323 - fi
1324 -
1325 - elog "You can find additional utility scripts in:"
1326 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang"
1327 - elog "Some of them are vim integration scripts (with instructions inside)."
1328 - elog "The run-clang-tidy.py script requires the following additional package:"
1329 - elog " dev-python/pyyaml"
1330 -}
1331 -
1332 -pkg_postrm() {
1333 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
1334 - eselect compiler-shadow clean all
1335 - fi
1336 -}