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: Thu, 03 Feb 2022 15:45:59
Message-Id: 1643903049.98341a019c32a615c7d42adb95ae7ee810021140.mgorny@gentoo
1 commit: 98341a019c32a615c7d42adb95ae7ee810021140
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Thu Feb 3 15:39:23 2022 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Thu Feb 3 15:44:09 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98341a01
7
8 sys-devel/clang: Remove 13.0.1.9999
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/clang/clang-13.0.1.9999.ebuild | 422 -------------------------------
13 1 file changed, 422 deletions(-)
14
15 diff --git a/sys-devel/clang/clang-13.0.1.9999.ebuild b/sys-devel/clang/clang-13.0.1.9999.ebuild
16 deleted file mode 100644
17 index c9cdf6cd226b..000000000000
18 --- a/sys-devel/clang/clang-13.0.1.9999.ebuild
19 +++ /dev/null
20 @@ -1,422 +0,0 @@
21 -# Copyright 1999-2022 Gentoo Authors
22 -# Distributed under the terms of the GNU General Public License v2
23 -
24 -EAPI=7
25 -
26 -PYTHON_COMPAT=( python3_{8..10} )
27 -inherit cmake llvm llvm.org multilib multilib-minimal \
28 - prefix python-single-r1 toolchain-funcs
29 -
30 -DESCRIPTION="C language family frontend for LLVM"
31 -HOMEPAGE="https://llvm.org/"
32 -
33 -# MSVCSetupApi.h: MIT
34 -# sorttable.js: MIT
35 -
36 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
37 -SLOT="$(ver_cut 1)"
38 -KEYWORDS=""
39 -IUSE="debug default-compiler-rt default-libcxx default-lld
40 - doc llvm-libunwind +static-analyzer test xml"
41 -REQUIRED_USE="${PYTHON_REQUIRED_USE}"
42 -RESTRICT="!test? ( test )"
43 -
44 -RDEPEND="
45 - ~sys-devel/llvm-${PV}:${SLOT}=[debug=,${MULTILIB_USEDEP}]
46 - static-analyzer? ( dev-lang/perl:* )
47 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
48 - ${PYTHON_DEPS}"
49 -
50 -DEPEND="${RDEPEND}"
51 -BDEPEND="
52 - >=dev-util/cmake-3.16
53 - doc? ( dev-python/sphinx )
54 - xml? ( virtual/pkgconfig )
55 - ${PYTHON_DEPS}"
56 -PDEPEND="
57 - sys-devel/clang-common
58 - ~sys-devel/clang-runtime-${PV}
59 - default-compiler-rt? (
60 - =sys-libs/compiler-rt-${PV%_*}*
61 - llvm-libunwind? ( sys-libs/llvm-libunwind )
62 - !llvm-libunwind? ( sys-libs/libunwind )
63 - )
64 - default-libcxx? ( >=sys-libs/libcxx-${PV} )
65 - default-lld? ( sys-devel/lld )"
66 -
67 -LLVM_COMPONENTS=( clang clang-tools-extra )
68 -LLVM_MANPAGES=build
69 -LLVM_TEST_COMPONENTS=(
70 - llvm/lib/Testing/Support
71 - llvm/utils/{lit,llvm-lit,unittest}
72 - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py}
73 -)
74 -LLVM_PATCHSET=9999-2
75 -LLVM_USE_TARGETS=llvm
76 -llvm.org_set_globals
77 -
78 -# Multilib notes:
79 -# 1. ABI_* flags control ABIs libclang* is built for only.
80 -# 2. clang is always capable of compiling code for all ABIs for enabled
81 -# target. However, you will need appropriate crt* files (installed
82 -# e.g. by sys-devel/gcc and sys-libs/glibc).
83 -# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
84 -# in the current profile (i.e. alike supported by sys-devel/gcc).
85 -#
86 -# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
87 -# multilib clang* libraries (not runtime, not wrappers).
88 -
89 -pkg_setup() {
90 - LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
91 - python-single-r1_pkg_setup
92 -}
93 -
94 -src_prepare() {
95 - # create extra parent dir for relative CLANG_RESOURCE_DIR access
96 - mkdir -p x/y || die
97 - BUILD_DIR=${WORKDIR}/x/y/clang
98 -
99 - llvm.org_src_prepare
100 -
101 - # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
102 - eprefixify \
103 - lib/Frontend/InitHeaderSearch.cpp \
104 - lib/Driver/ToolChains/Darwin.cpp || die
105 -}
106 -
107 -check_distribution_components() {
108 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
109 - local all_targets=() my_targets=() l
110 - cd "${BUILD_DIR}" || die
111 -
112 - while read -r l; do
113 - if [[ ${l} == install-*-stripped:* ]]; then
114 - l=${l#install-}
115 - l=${l%%-stripped*}
116 -
117 - case ${l} in
118 - # meta-targets
119 - clang-libraries|distribution)
120 - continue
121 - ;;
122 - # headers for clang-tidy static library
123 - clang-tidy-headers)
124 - continue
125 - ;;
126 - # tools
127 - clang|clangd|clang-*)
128 - ;;
129 - # static libraries
130 - clang*|findAllSymbols)
131 - continue
132 - ;;
133 - # conditional to USE=doc
134 - docs-clang-html|docs-clang-tools-html)
135 - use doc || continue
136 - ;;
137 - esac
138 -
139 - all_targets+=( "${l}" )
140 - fi
141 - done < <(ninja -t targets all)
142 -
143 - while read -r l; do
144 - my_targets+=( "${l}" )
145 - done < <(get_distribution_components $"\n")
146 -
147 - local add=() remove=()
148 - for l in "${all_targets[@]}"; do
149 - if ! has "${l}" "${my_targets[@]}"; then
150 - add+=( "${l}" )
151 - fi
152 - done
153 - for l in "${my_targets[@]}"; do
154 - if ! has "${l}" "${all_targets[@]}"; then
155 - remove+=( "${l}" )
156 - fi
157 - done
158 -
159 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
160 - eqawarn "get_distribution_components() is outdated!"
161 - eqawarn " Add: ${add[*]}"
162 - eqawarn "Remove: ${remove[*]}"
163 - fi
164 - cd - >/dev/null || die
165 - fi
166 -}
167 -
168 -get_distribution_components() {
169 - local sep=${1-;}
170 -
171 - local out=(
172 - # common stuff
173 - clang-cmake-exports
174 - clang-headers
175 - clang-resource-headers
176 - libclang-headers
177 -
178 - # libs
179 - clang-cpp
180 - libclang
181 - )
182 -
183 - if multilib_is_native_abi; then
184 - out+=(
185 - # common stuff
186 - bash-autocomplete
187 - libclang-python-bindings
188 -
189 - # tools
190 - c-index-test
191 - clang
192 - clang-format
193 - clang-offload-bundler
194 - clang-offload-wrapper
195 - clang-refactor
196 - clang-repl
197 - clang-rename
198 - clang-scan-deps
199 - diagtool
200 - hmaptool
201 -
202 - # extra tools
203 - clang-apply-replacements
204 - clang-change-namespace
205 - clang-doc
206 - clang-include-fixer
207 - clang-move
208 - clang-query
209 - clang-reorder-fields
210 - clang-tidy
211 - clangd
212 - find-all-symbols
213 - modularize
214 - pp-trace
215 - )
216 -
217 - if llvm_are_manpages_built; then
218 - out+=(
219 - # manpages
220 - docs-clang-man
221 - docs-clang-tools-man
222 - )
223 - fi
224 -
225 - use doc && out+=(
226 - docs-clang-html
227 - docs-clang-tools-html
228 - )
229 -
230 - use static-analyzer && out+=(
231 - clang-check
232 - clang-extdef-mapping
233 - scan-build
234 - scan-build-py
235 - scan-view
236 - )
237 - fi
238 -
239 - printf "%s${sep}" "${out[@]}"
240 -}
241 -
242 -multilib_src_configure() {
243 - local llvm_version=$(llvm-config --version) || die
244 - local clang_version=$(ver_cut 1-3 "${llvm_version}")
245 -
246 - local mycmakeargs=(
247 - -DLLVM_CMAKE_PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)/cmake/llvm"
248 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}"
249 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man"
250 - # relative to bindir
251 - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${clang_version}"
252 -
253 - -DBUILD_SHARED_LIBS=OFF
254 - -DCLANG_LINK_CLANG_DYLIB=ON
255 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
256 -
257 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
258 - -DLLVM_BUILD_TESTS=$(usex test)
259 -
260 - # these are not propagated reliably, so redefine them
261 - -DLLVM_ENABLE_EH=ON
262 - -DLLVM_ENABLE_RTTI=ON
263 -
264 - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
265 - # libgomp support fails to find headers without explicit -I
266 - # furthermore, it provides only syntax checking
267 - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
268 -
269 - # disable using CUDA to autodetect GPU, just build for all
270 - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
271 -
272 - # override default stdlib and rtlib
273 - -DCLANG_DEFAULT_CXX_STDLIB=$(usex default-libcxx libc++ "")
274 - -DCLANG_DEFAULT_RTLIB=$(usex default-compiler-rt compiler-rt "")
275 - -DCLANG_DEFAULT_LINKER=$(usex default-lld lld "")
276 - -DCLANG_DEFAULT_UNWINDLIB=$(usex default-compiler-rt libunwind "")
277 -
278 - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
279 - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
280 -
281 - -DPython3_EXECUTABLE="${PYTHON}"
282 - )
283 - use test && mycmakeargs+=(
284 - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
285 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
286 - )
287 -
288 - if multilib_is_native_abi; then
289 - local build_docs=OFF
290 - if llvm_are_manpages_built; then
291 - build_docs=ON
292 - mycmakeargs+=(
293 - -DLLVM_BUILD_DOCS=ON
294 - -DLLVM_ENABLE_SPHINX=ON
295 - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
296 - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
297 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
298 - )
299 - fi
300 - mycmakeargs+=(
301 - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
302 - -DCLANG_INCLUDE_DOCS=${build_docs}
303 - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
304 - )
305 - else
306 - mycmakeargs+=(
307 - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
308 - )
309 - fi
310 -
311 - if [[ -n ${EPREFIX} ]]; then
312 - mycmakeargs+=(
313 - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
314 - )
315 - fi
316 -
317 - if tc-is-cross-compiler; then
318 - [[ -x "/usr/bin/clang-tblgen" ]] \
319 - || die "/usr/bin/clang-tblgen not found or usable"
320 - mycmakeargs+=(
321 - -DCMAKE_CROSSCOMPILING=ON
322 - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
323 - )
324 - fi
325 -
326 - # LLVM can have very high memory consumption while linking,
327 - # exhausting the limit on 32-bit linker executable
328 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
329 -
330 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
331 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
332 - cmake_src_configure
333 -
334 - multilib_is_native_abi && check_distribution_components
335 -}
336 -
337 -multilib_src_compile() {
338 - cmake_build distribution
339 -
340 - # provide a symlink for tests
341 - if [[ ! -L ${WORKDIR}/lib/clang ]]; then
342 - mkdir -p "${WORKDIR}"/lib || die
343 - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
344 - fi
345 -}
346 -
347 -multilib_src_test() {
348 - # respect TMPDIR!
349 - local -x LIT_PRESERVES_TMP=1
350 - cmake_build check-clang
351 - multilib_is_native_abi &&
352 - cmake_build check-clang-tools check-clangd
353 -}
354 -
355 -src_install() {
356 - MULTILIB_WRAPPED_HEADERS=(
357 - /usr/include/clang/Config/config.h
358 - )
359 -
360 - multilib-minimal_src_install
361 -
362 - # Move runtime headers to /usr/lib/clang, where they belong
363 - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
364 - # move (remaining) wrapped headers back
365 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die
366 -
367 - # Apply CHOST and version suffix to clang tools
368 - # note: we use two version components here (vs 3 in runtime path)
369 - local llvm_version=$(llvm-config --version) || die
370 - local clang_version=$(ver_cut 1 "${llvm_version}")
371 - local clang_full_version=$(ver_cut 1-3 "${llvm_version}")
372 - local clang_tools=( clang clang++ clang-cl clang-cpp )
373 - local abi i
374 -
375 - # cmake gives us:
376 - # - clang-X
377 - # - clang -> clang-X
378 - # - clang++, clang-cl, clang-cpp -> clang
379 - # we want to have:
380 - # - clang-X
381 - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
382 - # - clang, clang++, clang-cl, clang-cpp -> clang*-X
383 - # also in CHOST variant
384 - for i in "${clang_tools[@]:1}"; do
385 - rm "${ED}/usr/lib/llvm/${SLOT}/bin/${i}" || die
386 - dosym "clang-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}-${clang_version}"
387 - dosym "${i}-${clang_version}" "/usr/lib/llvm/${SLOT}/bin/${i}"
388 - done
389 -
390 - # now create target symlinks for all supported ABIs
391 - for abi in $(get_all_abis); do
392 - local abi_chost=$(get_abi_CHOST "${abi}")
393 - for i in "${clang_tools[@]}"; do
394 - dosym "${i}-${clang_version}" \
395 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}-${clang_version}"
396 - dosym "${abi_chost}-${i}-${clang_version}" \
397 - "/usr/lib/llvm/${SLOT}/bin/${abi_chost}-${i}"
398 - done
399 - done
400 -}
401 -
402 -multilib_src_install() {
403 - DESTDIR=${D} cmake_build install-distribution
404 -
405 - # move headers to /usr/include for wrapping & ABI mismatch checks
406 - # (also drop the version suffix from runtime headers)
407 - rm -rf "${ED}"/usr/include || die
408 - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die
409 - mv "${ED}"/usr/lib/llvm/${SLOT}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
410 -}
411 -
412 -multilib_src_install_all() {
413 - python_fix_shebang "${ED}"
414 - if use static-analyzer; then
415 - python_optimize "${ED}"/usr/lib/llvm/${SLOT}/share/scan-view
416 - fi
417 -
418 - docompress "/usr/lib/llvm/${SLOT}/share/man"
419 - llvm_install_manpages
420 - # match 'html' non-compression
421 - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
422 - # +x for some reason; TODO: investigate
423 - use static-analyzer && fperms a-x "/usr/lib/llvm/${SLOT}/share/man/man1/scan-build.1"
424 -}
425 -
426 -pkg_postinst() {
427 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
428 - eselect compiler-shadow update all
429 - fi
430 -
431 - elog "You can find additional utility scripts in:"
432 - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/clang"
433 - elog "Some of them are vim integration scripts (with instructions inside)."
434 - elog "The run-clang-tidy.py script requires the following additional package:"
435 - elog " dev-python/pyyaml"
436 -}
437 -
438 -pkg_postrm() {
439 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
440 - eselect compiler-shadow clean all
441 - fi
442 -}