From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1685792-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 50023158042
	for <garchives@archives.gentoo.org>; Sat,  2 Nov 2024 07:23:06 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id D456CE08CA;
	Sat,  2 Nov 2024 07:23:03 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 91737E08CA
	for <gentoo-commits@lists.gentoo.org>; Sat,  2 Nov 2024 07:23:03 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id AF6233430DF
	for <gentoo-commits@lists.gentoo.org>; Sat,  2 Nov 2024 07:23:01 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 18C0D2145
	for <gentoo-commits@lists.gentoo.org>; Sat,  2 Nov 2024 07:22:59 +0000 (UTC)
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" <mgorny@gentoo.org>
Message-ID: <1730531977.831a00351a9598d34082610f58b6867c07c417b1.mgorny@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/clang/
X-VCS-Repository: repo/gentoo
X-VCS-Files: sys-devel/clang/Manifest sys-devel/clang/clang-19.1.2.ebuild sys-devel/clang/clang-20.0.0_pre20241015.ebuild sys-devel/clang/clang-20.0.0_pre20241023.ebuild
X-VCS-Directories: sys-devel/clang/
X-VCS-Committer: mgorny
X-VCS-Committer-Name: Michał Górny
X-VCS-Revision: 831a00351a9598d34082610f58b6867c07c417b1
X-VCS-Branch: master
Date: Sat,  2 Nov 2024 07:22:59 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 645d2c8d-17c8-4211-b4c9-58656b50a9cc
X-Archives-Hash: 0f2434791f63e11b32e6bd648af041ee

commit:     831a00351a9598d34082610f58b6867c07c417b1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  2 07:19:37 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov  2 07:19:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=831a0035

sys-devel/clang: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-devel/clang/Manifest                        |   4 -
 sys-devel/clang/clang-19.1.2.ebuild             | 465 ------------------------
 sys-devel/clang/clang-20.0.0_pre20241015.ebuild | 463 -----------------------
 sys-devel/clang/clang-20.0.0_pre20241023.ebuild | 463 -----------------------
 4 files changed, 1395 deletions(-)

diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest
index 949186fb06a9..49a9196e312f 100644
--- a/sys-devel/clang/Manifest
+++ b/sys-devel/clang/Manifest
@@ -7,7 +7,6 @@ DIST llvm-gentoo-patchset-15.0.7-r3.tar.xz 24268 BLAKE2B 6531ae385ecea87bc26dba8
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
 DIST llvm-gentoo-patchset-17.0.6-r1.tar.xz 2792 BLAKE2B b4e9014179edd96add0c932b16d3a95a5d7a905298052164ff668590108c83cd4f938d42b6d801efedae28a959b03b2bc3c7cd2a4cad20ef2b3c7aa9a3d0c15d SHA512 73a46aa9f6f2ac6334a073733aa082a12f97fb6a2750d5930af4eb1639cd192f3a17ea87c2f17947f04c68a5f60e37d9bc27ede8bab75531599edfb4c3aa8ffe
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
-DIST llvm-project-0cb80c4f00689ca00a85e1f38bc6ae9dd0bf980e.tar.gz 220327440 BLAKE2B b58d9fe8527d5849266c56400d451faff3b9138ee7d71f24d904c146dfcf05a1734e1234bab1b4035b55a9588633f05264ebf87886aab27a2a2f18a945869041 SHA512 d0d443bc4b21c9b32bd079d0538702737bb4cb4218edfdfd24164e9b14ee25d5809e7aa840f6c1bb0e3d73cd1fe59053aff041df93274fdbcf436ae57cef99ae
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -16,9 +15,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
-DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
 DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
 DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
-DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba

diff --git a/sys-devel/clang/clang-19.1.2.ebuild b/sys-devel/clang/clang-19.1.2.ebuild
deleted file mode 100644
index 2d7aae85f170..000000000000
--- a/sys-devel/clang/clang-19.1.2.ebuild
+++ /dev/null
@@ -1,465 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit cmake llvm.org llvm-utils multilib multilib-minimal
-inherit prefix python-single-r1 toolchain-funcs
-
-DESCRIPTION="C language family frontend for LLVM"
-HOMEPAGE="https://llvm.org/"
-
-# MSVCSetupApi.h: MIT
-# sorttable.js: MIT
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~x64-macos"
-IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
-	static-analyzer? ( dev-lang/perl:* )
-	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
-"
-
-RDEPEND="
-	${PYTHON_DEPS}
-	${DEPEND}
-	>=sys-devel/clang-common-${PV}
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? ( ~sys-devel/lld-${PV} )
-	xml? ( virtual/pkgconfig )
-"
-PDEPEND="
-	~sys-devel/clang-runtime-${PV}
-	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=(
-	clang clang-tools-extra cmake
-)
-LLVM_MANPAGES=1
-LLVM_TEST_COMPONENTS=(
-	llvm/utils
-)
-LLVM_USE_TARGETS=llvm
-llvm.org_set_globals
-
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
-BDEPEND+="
-	$(python_gen_cond_dep '
-		dev-python/myst-parser[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	')
-"
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
-
-# Multilib notes:
-# 1. ABI_* flags control ABIs libclang* is built for only.
-# 2. clang is always capable of compiling code for all ABIs for enabled
-#    target. However, you will need appropriate crt* files (installed
-#    e.g. by sys-devel/gcc and sys-libs/glibc).
-# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
-#    in the current profile (i.e. alike supported by sys-devel/gcc).
-#
-# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
-# multilib clang* libraries (not runtime, not wrappers).
-
-src_prepare() {
-	# create extra parent dir for relative CLANG_RESOURCE_DIR access
-	mkdir -p x/y || die
-	BUILD_DIR=${WORKDIR}/x/y/clang
-
-	llvm.org_src_prepare
-
-	# add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
-	eprefixify \
-		lib/Lex/InitHeaderSearch.cpp \
-		lib/Driver/ToolChains/Darwin.cpp || die
-
-	if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
-		sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
-	fi
-}
-
-check_distribution_components() {
-	if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
-		local all_targets=() my_targets=() l
-		cd "${BUILD_DIR}" || die
-
-		while read -r l; do
-			if [[ ${l} == install-*-stripped:* ]]; then
-				l=${l#install-}
-				l=${l%%-stripped*}
-
-				case ${l} in
-					# meta-targets
-					clang-libraries|distribution)
-						continue
-						;;
-					# tools
-					clang|clangd|clang-*)
-						;;
-					# static libraries
-					clang*|findAllSymbols)
-						continue
-						;;
-					# conditional to USE=doc
-					docs-clang-html|docs-clang-tools-html)
-						use doc || continue
-						;;
-				esac
-
-				all_targets+=( "${l}" )
-			fi
-		done < <(${NINJA} -t targets all)
-
-		while read -r l; do
-			my_targets+=( "${l}" )
-		done < <(get_distribution_components $"\n")
-
-		local add=() remove=()
-		for l in "${all_targets[@]}"; do
-			if ! has "${l}" "${my_targets[@]}"; then
-				add+=( "${l}" )
-			fi
-		done
-		for l in "${my_targets[@]}"; do
-			if ! has "${l}" "${all_targets[@]}"; then
-				remove+=( "${l}" )
-			fi
-		done
-
-		if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
-			eqawarn "get_distribution_components() is outdated!"
-			eqawarn "   Add: ${add[*]}"
-			eqawarn "Remove: ${remove[*]}"
-		fi
-		cd - >/dev/null || die
-	fi
-}
-
-get_distribution_components() {
-	local sep=${1-;}
-
-	local out=(
-		# common stuff
-		clang-cmake-exports
-		clang-headers
-		clang-resource-headers
-		libclang-headers
-
-		aarch64-resource-headers
-		arm-common-resource-headers
-		arm-resource-headers
-		core-resource-headers
-		cuda-resource-headers
-		hexagon-resource-headers
-		hip-resource-headers
-		hlsl-resource-headers
-		mips-resource-headers
-		opencl-resource-headers
-		openmp-resource-headers
-		ppc-htm-resource-headers
-		ppc-resource-headers
-		riscv-resource-headers
-		systemz-resource-headers
-		utility-resource-headers
-		ve-resource-headers
-		webassembly-resource-headers
-		windows-resource-headers
-		x86-resource-headers
-
-		# libs
-		clang-cpp
-		libclang
-	)
-
-	if multilib_is_native_abi; then
-		out+=(
-			# common stuff
-			bash-autocomplete
-			libclang-python-bindings
-
-			# tools
-			amdgpu-arch
-			c-index-test
-			clang
-			clang-format
-			clang-installapi
-			clang-linker-wrapper
-			clang-nvlink-wrapper
-			clang-offload-bundler
-			clang-offload-packager
-			clang-refactor
-			clang-repl
-			clang-rename
-			clang-scan-deps
-			diagtool
-			hmaptool
-			nvptx-arch
-
-			# needed for cross-compiling Clang
-			clang-tblgen
-		)
-
-		if use extra; then
-			out+=(
-				# extra tools
-				clang-apply-replacements
-				clang-change-namespace
-				clang-doc
-				clang-include-cleaner
-				clang-include-fixer
-				clang-move
-				clang-pseudo
-				clang-query
-				clang-reorder-fields
-				clang-tidy
-				clang-tidy-headers
-				clangd
-				find-all-symbols
-				modularize
-				pp-trace
-			)
-		fi
-
-		if llvm_are_manpages_built; then
-			out+=( docs-clang-man )
-			use extra && out+=( docs-clang-tools-man )
-		fi
-
-		if use doc; then
-			out+=( docs-clang-html )
-			use extra && out+=( docs-clang-tools-html )
-		fi
-
-		use static-analyzer && out+=(
-			clang-check
-			clang-extdef-mapping
-			scan-build
-			scan-build-py
-			scan-view
-		)
-	fi
-
-	printf "%s${sep}" "${out[@]}"
-}
-
-multilib_src_configure() {
-	llvm_prepend_path "${LLVM_MAJOR}"
-
-	local mycmakeargs=(
-		-DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-		-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang"
-		# relative to bindir
-		-DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
-
-		-DBUILD_SHARED_LIBS=OFF
-		-DCLANG_LINK_CLANG_DYLIB=ON
-		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
-		-DCLANG_INCLUDE_TESTS=$(usex test)
-
-		-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-
-		# these are not propagated reliably, so redefine them
-		-DLLVM_ENABLE_EH=ON
-		-DLLVM_ENABLE_RTTI=ON
-
-		# libgomp support fails to find headers without explicit -I
-		# furthermore, it provides only syntax checking
-		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-
-		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
-
-		-DCLANG_ENABLE_LIBXML2=$(usex xml)
-		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
-		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
-		# TODO: CLANG_ENABLE_HLSL?
-
-		-DPython3_EXECUTABLE="${PYTHON}"
-	)
-
-	if ! use elibc_musl; then
-		mycmakeargs+=(
-			-DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
-		)
-	fi
-
-	use test && mycmakeargs+=(
-		-DLLVM_BUILD_TESTS=ON
-		-DLLVM_LIT_ARGS="$(get_lit_flags)"
-	)
-
-	if multilib_is_native_abi; then
-		local build_docs=OFF
-		if llvm_are_manpages_built; then
-			build_docs=ON
-			mycmakeargs+=(
-				-DLLVM_BUILD_DOCS=ON
-				-DLLVM_ENABLE_SPHINX=ON
-				-DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
-				-DSPHINX_WARNINGS_AS_ERRORS=OFF
-			)
-			if use extra; then
-				mycmakeargs+=(
-					-DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
-				)
-			fi
-		fi
-		mycmakeargs+=(
-			-DCLANG_INCLUDE_DOCS=${build_docs}
-		)
-	fi
-	if multilib_native_use extra; then
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
-			-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
-		)
-	else
-		mycmakeargs+=(
-			-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
-		)
-	fi
-
-	if tc-is-cross-compiler; then
-		has_version -b sys-devel/clang:${LLVM_MAJOR} ||
-			die "sys-devel/clang:${LLVM_MAJOR} is required on the build host."
-		local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
-		mycmakeargs+=(
-			-DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
-			-DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
-		)
-	fi
-
-	# LLVM can have very high memory consumption while linking,
-	# exhausting the limit on 32-bit linker executable
-	use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
-
-	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
-	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
-	cmake_src_configure
-
-	multilib_is_native_abi && check_distribution_components
-}
-
-multilib_src_compile() {
-	cmake_build distribution
-}
-
-multilib_src_test() {
-	# respect TMPDIR!
-	local -x LIT_PRESERVES_TMP=1
-	local test_targets=( check-clang )
-	if multilib_native_use extra; then
-		test_targets+=(
-			check-clang-tools
-			check-clangd
-		)
-	fi
-	cmake_build "${test_targets[@]}"
-}
-
-src_install() {
-	MULTILIB_WRAPPED_HEADERS=(
-		/usr/include/clang/Config/config.h
-	)
-
-	multilib-minimal_src_install
-
-	# Move runtime headers to /usr/lib/clang, where they belong
-	mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
-	# move (remaining) wrapped headers back
-	if use extra; then
-		mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
-	fi
-	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
-
-	# Apply CHOST and version suffix to clang tools
-	local clang_tools=( clang clang++ clang-cl clang-cpp )
-	local abi i
-
-	# cmake gives us:
-	# - clang-X
-	# - clang -> clang-X
-	# - clang++, clang-cl, clang-cpp -> clang
-	# we want to have:
-	# - clang-X
-	# - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
-	# - clang, clang++, clang-cl, clang-cpp -> clang*-X
-	# also in CHOST variant
-	for i in "${clang_tools[@]:1}"; do
-		rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
-		dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
-		dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
-	done
-
-	# now create target symlinks for all supported ABIs
-	for abi in $(get_all_abis); do
-		local abi_chost=$(get_abi_CHOST "${abi}")
-		for i in "${clang_tools[@]}"; do
-			dosym "${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
-			dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
-		done
-	done
-}
-
-multilib_src_install() {
-	DESTDIR=${D} cmake_build install-distribution
-
-	# move headers to /usr/include for wrapping & ABI mismatch checks
-	# (also drop the version suffix from runtime headers)
-	rm -rf "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
-	if multilib_native_use extra; then
-		# don't wrap clang-tidy headers, the list is too long
-		# (they're fine for non-native ABI but enabling the targets is problematic)
-		mv "${ED}"/usr/include/clang-tidy "${T}/" || die
-	fi
-}
-
-multilib_src_install_all() {
-	python_fix_shebang "${ED}"
-	if use static-analyzer; then
-		python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
-	fi
-
-	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-	llvm_install_manpages
-	# match 'html' non-compression
-	use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
-	# +x for some reason; TODO: investigate
-	use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
-}
-
-pkg_postinst() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow update all
-	fi
-
-	elog "You can find additional utility scripts in:"
-	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
-	if use extra; then
-		elog "Some of them are vim integration scripts (with instructions inside)."
-		elog "The run-clang-tidy.py script requires the following additional package:"
-		elog "  dev-python/pyyaml"
-	fi
-}
-
-pkg_postrm() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow clean all
-	fi
-}

diff --git a/sys-devel/clang/clang-20.0.0_pre20241015.ebuild b/sys-devel/clang/clang-20.0.0_pre20241015.ebuild
deleted file mode 100644
index cad701817a80..000000000000
--- a/sys-devel/clang/clang-20.0.0_pre20241015.ebuild
+++ /dev/null
@@ -1,463 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit cmake llvm.org llvm-utils multilib multilib-minimal
-inherit prefix python-single-r1 toolchain-funcs
-
-DESCRIPTION="C language family frontend for LLVM"
-HOMEPAGE="https://llvm.org/"
-
-# MSVCSetupApi.h: MIT
-# sorttable.js: MIT
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
-	static-analyzer? ( dev-lang/perl:* )
-	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
-"
-
-RDEPEND="
-	${PYTHON_DEPS}
-	${DEPEND}
-	>=sys-devel/clang-common-${PV}
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? ( ~sys-devel/lld-${PV} )
-	xml? ( virtual/pkgconfig )
-"
-PDEPEND="
-	~sys-devel/clang-runtime-${PV}
-	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=(
-	clang clang-tools-extra cmake
-)
-LLVM_MANPAGES=1
-LLVM_TEST_COMPONENTS=(
-	llvm/utils
-)
-LLVM_USE_TARGETS=llvm
-llvm.org_set_globals
-
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
-BDEPEND+="
-	$(python_gen_cond_dep '
-		dev-python/myst-parser[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	')
-"
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
-
-# Multilib notes:
-# 1. ABI_* flags control ABIs libclang* is built for only.
-# 2. clang is always capable of compiling code for all ABIs for enabled
-#    target. However, you will need appropriate crt* files (installed
-#    e.g. by sys-devel/gcc and sys-libs/glibc).
-# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
-#    in the current profile (i.e. alike supported by sys-devel/gcc).
-#
-# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
-# multilib clang* libraries (not runtime, not wrappers).
-
-src_prepare() {
-	# create extra parent dir for relative CLANG_RESOURCE_DIR access
-	mkdir -p x/y || die
-	BUILD_DIR=${WORKDIR}/x/y/clang
-
-	llvm.org_src_prepare
-
-	# add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
-	eprefixify \
-		lib/Lex/InitHeaderSearch.cpp \
-		lib/Driver/ToolChains/Darwin.cpp || die
-
-	if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
-		sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
-	fi
-}
-
-check_distribution_components() {
-	if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
-		local all_targets=() my_targets=() l
-		cd "${BUILD_DIR}" || die
-
-		while read -r l; do
-			if [[ ${l} == install-*-stripped:* ]]; then
-				l=${l#install-}
-				l=${l%%-stripped*}
-
-				case ${l} in
-					# meta-targets
-					clang-libraries|distribution)
-						continue
-						;;
-					# tools
-					clang|clangd|clang-*)
-						;;
-					# static libraries
-					clang*|findAllSymbols)
-						continue
-						;;
-					# conditional to USE=doc
-					docs-clang-html|docs-clang-tools-html)
-						use doc || continue
-						;;
-				esac
-
-				all_targets+=( "${l}" )
-			fi
-		done < <(${NINJA} -t targets all)
-
-		while read -r l; do
-			my_targets+=( "${l}" )
-		done < <(get_distribution_components $"\n")
-
-		local add=() remove=()
-		for l in "${all_targets[@]}"; do
-			if ! has "${l}" "${my_targets[@]}"; then
-				add+=( "${l}" )
-			fi
-		done
-		for l in "${my_targets[@]}"; do
-			if ! has "${l}" "${all_targets[@]}"; then
-				remove+=( "${l}" )
-			fi
-		done
-
-		if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
-			eerror "get_distribution_components() is outdated!"
-			eerror "   Add: ${add[*]}"
-			eerror "Remove: ${remove[*]}"
-			die "Update get_distribution_components()!"
-		fi
-		cd - >/dev/null || die
-	fi
-}
-
-get_distribution_components() {
-	local sep=${1-;}
-
-	local out=(
-		# common stuff
-		clang-cmake-exports
-		clang-headers
-		clang-resource-headers
-		libclang-headers
-
-		aarch64-resource-headers
-		arm-common-resource-headers
-		arm-resource-headers
-		core-resource-headers
-		cuda-resource-headers
-		hexagon-resource-headers
-		hip-resource-headers
-		hlsl-resource-headers
-		mips-resource-headers
-		opencl-resource-headers
-		openmp-resource-headers
-		ppc-htm-resource-headers
-		ppc-resource-headers
-		riscv-resource-headers
-		systemz-resource-headers
-		utility-resource-headers
-		ve-resource-headers
-		webassembly-resource-headers
-		windows-resource-headers
-		x86-resource-headers
-
-		# libs
-		clang-cpp
-		libclang
-	)
-
-	if multilib_is_native_abi; then
-		out+=(
-			# common stuff
-			bash-autocomplete
-			libclang-python-bindings
-
-			# tools
-			amdgpu-arch
-			c-index-test
-			clang
-			clang-format
-			clang-installapi
-			clang-linker-wrapper
-			clang-nvlink-wrapper
-			clang-offload-bundler
-			clang-offload-packager
-			clang-refactor
-			clang-repl
-			clang-scan-deps
-			diagtool
-			hmaptool
-			nvptx-arch
-
-			# needed for cross-compiling Clang
-			clang-tblgen
-		)
-
-		if use extra; then
-			out+=(
-				# extra tools
-				clang-apply-replacements
-				clang-change-namespace
-				clang-doc
-				clang-include-cleaner
-				clang-include-fixer
-				clang-move
-				clang-query
-				clang-reorder-fields
-				clang-tidy
-				clang-tidy-headers
-				clangd
-				find-all-symbols
-				modularize
-				pp-trace
-			)
-		fi
-
-		if llvm_are_manpages_built; then
-			out+=( docs-clang-man )
-			use extra && out+=( docs-clang-tools-man )
-		fi
-
-		if use doc; then
-			out+=( docs-clang-html )
-			use extra && out+=( docs-clang-tools-html )
-		fi
-
-		use static-analyzer && out+=(
-			clang-check
-			clang-extdef-mapping
-			scan-build
-			scan-build-py
-			scan-view
-		)
-	fi
-
-	printf "%s${sep}" "${out[@]}"
-}
-
-multilib_src_configure() {
-	llvm_prepend_path "${LLVM_MAJOR}"
-
-	local mycmakeargs=(
-		-DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-		-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang"
-		# relative to bindir
-		-DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
-
-		-DBUILD_SHARED_LIBS=OFF
-		-DCLANG_LINK_CLANG_DYLIB=ON
-		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
-		-DCLANG_INCLUDE_TESTS=$(usex test)
-
-		-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-
-		# these are not propagated reliably, so redefine them
-		-DLLVM_ENABLE_EH=ON
-		-DLLVM_ENABLE_RTTI=ON
-
-		# libgomp support fails to find headers without explicit -I
-		# furthermore, it provides only syntax checking
-		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-
-		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
-
-		-DCLANG_ENABLE_LIBXML2=$(usex xml)
-		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
-		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
-		# TODO: CLANG_ENABLE_HLSL?
-
-		-DPython3_EXECUTABLE="${PYTHON}"
-	)
-
-	if ! use elibc_musl; then
-		mycmakeargs+=(
-			-DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
-		)
-	fi
-
-	use test && mycmakeargs+=(
-		-DLLVM_BUILD_TESTS=ON
-		-DLLVM_LIT_ARGS="$(get_lit_flags)"
-	)
-
-	if multilib_is_native_abi; then
-		local build_docs=OFF
-		if llvm_are_manpages_built; then
-			build_docs=ON
-			mycmakeargs+=(
-				-DLLVM_BUILD_DOCS=ON
-				-DLLVM_ENABLE_SPHINX=ON
-				-DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
-				-DSPHINX_WARNINGS_AS_ERRORS=OFF
-			)
-			if use extra; then
-				mycmakeargs+=(
-					-DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
-				)
-			fi
-		fi
-		mycmakeargs+=(
-			-DCLANG_INCLUDE_DOCS=${build_docs}
-		)
-	fi
-	if multilib_native_use extra; then
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
-			-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
-		)
-	else
-		mycmakeargs+=(
-			-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
-		)
-	fi
-
-	if tc-is-cross-compiler; then
-		has_version -b sys-devel/clang:${LLVM_MAJOR} ||
-			die "sys-devel/clang:${LLVM_MAJOR} is required on the build host."
-		local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
-		mycmakeargs+=(
-			-DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
-			-DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
-		)
-	fi
-
-	# LLVM can have very high memory consumption while linking,
-	# exhausting the limit on 32-bit linker executable
-	use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
-
-	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
-	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
-	cmake_src_configure
-
-	multilib_is_native_abi && check_distribution_components
-}
-
-multilib_src_compile() {
-	cmake_build distribution
-}
-
-multilib_src_test() {
-	# respect TMPDIR!
-	local -x LIT_PRESERVES_TMP=1
-	local test_targets=( check-clang )
-	if multilib_native_use extra; then
-		test_targets+=(
-			check-clang-tools
-			check-clangd
-		)
-	fi
-	cmake_build "${test_targets[@]}"
-}
-
-src_install() {
-	MULTILIB_WRAPPED_HEADERS=(
-		/usr/include/clang/Config/config.h
-	)
-
-	multilib-minimal_src_install
-
-	# Move runtime headers to /usr/lib/clang, where they belong
-	mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
-	# move (remaining) wrapped headers back
-	if use extra; then
-		mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
-	fi
-	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
-
-	# Apply CHOST and version suffix to clang tools
-	local clang_tools=( clang clang++ clang-cl clang-cpp )
-	local abi i
-
-	# cmake gives us:
-	# - clang-X
-	# - clang -> clang-X
-	# - clang++, clang-cl, clang-cpp -> clang
-	# we want to have:
-	# - clang-X
-	# - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
-	# - clang, clang++, clang-cl, clang-cpp -> clang*-X
-	# also in CHOST variant
-	for i in "${clang_tools[@]:1}"; do
-		rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
-		dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
-		dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
-	done
-
-	# now create target symlinks for all supported ABIs
-	for abi in $(get_all_abis); do
-		local abi_chost=$(get_abi_CHOST "${abi}")
-		for i in "${clang_tools[@]}"; do
-			dosym "${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
-			dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
-		done
-	done
-}
-
-multilib_src_install() {
-	DESTDIR=${D} cmake_build install-distribution
-
-	# move headers to /usr/include for wrapping & ABI mismatch checks
-	# (also drop the version suffix from runtime headers)
-	rm -rf "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
-	if multilib_native_use extra; then
-		# don't wrap clang-tidy headers, the list is too long
-		# (they're fine for non-native ABI but enabling the targets is problematic)
-		mv "${ED}"/usr/include/clang-tidy "${T}/" || die
-	fi
-}
-
-multilib_src_install_all() {
-	python_fix_shebang "${ED}"
-	if use static-analyzer; then
-		python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
-	fi
-
-	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-	llvm_install_manpages
-	# match 'html' non-compression
-	use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
-	# +x for some reason; TODO: investigate
-	use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
-}
-
-pkg_postinst() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow update all
-	fi
-
-	elog "You can find additional utility scripts in:"
-	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
-	if use extra; then
-		elog "Some of them are vim integration scripts (with instructions inside)."
-		elog "The run-clang-tidy.py script requires the following additional package:"
-		elog "  dev-python/pyyaml"
-	fi
-}
-
-pkg_postrm() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow clean all
-	fi
-}

diff --git a/sys-devel/clang/clang-20.0.0_pre20241023.ebuild b/sys-devel/clang/clang-20.0.0_pre20241023.ebuild
deleted file mode 100644
index cad701817a80..000000000000
--- a/sys-devel/clang/clang-20.0.0_pre20241023.ebuild
+++ /dev/null
@@ -1,463 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit cmake llvm.org llvm-utils multilib multilib-minimal
-inherit prefix python-single-r1 toolchain-funcs
-
-DESCRIPTION="C language family frontend for LLVM"
-HOMEPAGE="https://llvm.org/"
-
-# MSVCSetupApi.h: MIT
-# sorttable.js: MIT
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
-	static-analyzer? ( dev-lang/perl:* )
-	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
-"
-
-RDEPEND="
-	${PYTHON_DEPS}
-	${DEPEND}
-	>=sys-devel/clang-common-${PV}
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? ( ~sys-devel/lld-${PV} )
-	xml? ( virtual/pkgconfig )
-"
-PDEPEND="
-	~sys-devel/clang-runtime-${PV}
-	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=(
-	clang clang-tools-extra cmake
-)
-LLVM_MANPAGES=1
-LLVM_TEST_COMPONENTS=(
-	llvm/utils
-)
-LLVM_USE_TARGETS=llvm
-llvm.org_set_globals
-
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
-BDEPEND+="
-	$(python_gen_cond_dep '
-		dev-python/myst-parser[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	')
-"
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
-
-# Multilib notes:
-# 1. ABI_* flags control ABIs libclang* is built for only.
-# 2. clang is always capable of compiling code for all ABIs for enabled
-#    target. However, you will need appropriate crt* files (installed
-#    e.g. by sys-devel/gcc and sys-libs/glibc).
-# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
-#    in the current profile (i.e. alike supported by sys-devel/gcc).
-#
-# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
-# multilib clang* libraries (not runtime, not wrappers).
-
-src_prepare() {
-	# create extra parent dir for relative CLANG_RESOURCE_DIR access
-	mkdir -p x/y || die
-	BUILD_DIR=${WORKDIR}/x/y/clang
-
-	llvm.org_src_prepare
-
-	# add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
-	eprefixify \
-		lib/Lex/InitHeaderSearch.cpp \
-		lib/Driver/ToolChains/Darwin.cpp || die
-
-	if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
-		sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
-	fi
-}
-
-check_distribution_components() {
-	if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
-		local all_targets=() my_targets=() l
-		cd "${BUILD_DIR}" || die
-
-		while read -r l; do
-			if [[ ${l} == install-*-stripped:* ]]; then
-				l=${l#install-}
-				l=${l%%-stripped*}
-
-				case ${l} in
-					# meta-targets
-					clang-libraries|distribution)
-						continue
-						;;
-					# tools
-					clang|clangd|clang-*)
-						;;
-					# static libraries
-					clang*|findAllSymbols)
-						continue
-						;;
-					# conditional to USE=doc
-					docs-clang-html|docs-clang-tools-html)
-						use doc || continue
-						;;
-				esac
-
-				all_targets+=( "${l}" )
-			fi
-		done < <(${NINJA} -t targets all)
-
-		while read -r l; do
-			my_targets+=( "${l}" )
-		done < <(get_distribution_components $"\n")
-
-		local add=() remove=()
-		for l in "${all_targets[@]}"; do
-			if ! has "${l}" "${my_targets[@]}"; then
-				add+=( "${l}" )
-			fi
-		done
-		for l in "${my_targets[@]}"; do
-			if ! has "${l}" "${all_targets[@]}"; then
-				remove+=( "${l}" )
-			fi
-		done
-
-		if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
-			eerror "get_distribution_components() is outdated!"
-			eerror "   Add: ${add[*]}"
-			eerror "Remove: ${remove[*]}"
-			die "Update get_distribution_components()!"
-		fi
-		cd - >/dev/null || die
-	fi
-}
-
-get_distribution_components() {
-	local sep=${1-;}
-
-	local out=(
-		# common stuff
-		clang-cmake-exports
-		clang-headers
-		clang-resource-headers
-		libclang-headers
-
-		aarch64-resource-headers
-		arm-common-resource-headers
-		arm-resource-headers
-		core-resource-headers
-		cuda-resource-headers
-		hexagon-resource-headers
-		hip-resource-headers
-		hlsl-resource-headers
-		mips-resource-headers
-		opencl-resource-headers
-		openmp-resource-headers
-		ppc-htm-resource-headers
-		ppc-resource-headers
-		riscv-resource-headers
-		systemz-resource-headers
-		utility-resource-headers
-		ve-resource-headers
-		webassembly-resource-headers
-		windows-resource-headers
-		x86-resource-headers
-
-		# libs
-		clang-cpp
-		libclang
-	)
-
-	if multilib_is_native_abi; then
-		out+=(
-			# common stuff
-			bash-autocomplete
-			libclang-python-bindings
-
-			# tools
-			amdgpu-arch
-			c-index-test
-			clang
-			clang-format
-			clang-installapi
-			clang-linker-wrapper
-			clang-nvlink-wrapper
-			clang-offload-bundler
-			clang-offload-packager
-			clang-refactor
-			clang-repl
-			clang-scan-deps
-			diagtool
-			hmaptool
-			nvptx-arch
-
-			# needed for cross-compiling Clang
-			clang-tblgen
-		)
-
-		if use extra; then
-			out+=(
-				# extra tools
-				clang-apply-replacements
-				clang-change-namespace
-				clang-doc
-				clang-include-cleaner
-				clang-include-fixer
-				clang-move
-				clang-query
-				clang-reorder-fields
-				clang-tidy
-				clang-tidy-headers
-				clangd
-				find-all-symbols
-				modularize
-				pp-trace
-			)
-		fi
-
-		if llvm_are_manpages_built; then
-			out+=( docs-clang-man )
-			use extra && out+=( docs-clang-tools-man )
-		fi
-
-		if use doc; then
-			out+=( docs-clang-html )
-			use extra && out+=( docs-clang-tools-html )
-		fi
-
-		use static-analyzer && out+=(
-			clang-check
-			clang-extdef-mapping
-			scan-build
-			scan-build-py
-			scan-view
-		)
-	fi
-
-	printf "%s${sep}" "${out[@]}"
-}
-
-multilib_src_configure() {
-	llvm_prepend_path "${LLVM_MAJOR}"
-
-	local mycmakeargs=(
-		-DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-		-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang"
-		# relative to bindir
-		-DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
-
-		-DBUILD_SHARED_LIBS=OFF
-		-DCLANG_LINK_CLANG_DYLIB=ON
-		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
-		-DCLANG_INCLUDE_TESTS=$(usex test)
-
-		-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-
-		# these are not propagated reliably, so redefine them
-		-DLLVM_ENABLE_EH=ON
-		-DLLVM_ENABLE_RTTI=ON
-
-		# libgomp support fails to find headers without explicit -I
-		# furthermore, it provides only syntax checking
-		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-
-		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
-
-		-DCLANG_ENABLE_LIBXML2=$(usex xml)
-		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
-		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
-		# TODO: CLANG_ENABLE_HLSL?
-
-		-DPython3_EXECUTABLE="${PYTHON}"
-	)
-
-	if ! use elibc_musl; then
-		mycmakeargs+=(
-			-DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
-		)
-	fi
-
-	use test && mycmakeargs+=(
-		-DLLVM_BUILD_TESTS=ON
-		-DLLVM_LIT_ARGS="$(get_lit_flags)"
-	)
-
-	if multilib_is_native_abi; then
-		local build_docs=OFF
-		if llvm_are_manpages_built; then
-			build_docs=ON
-			mycmakeargs+=(
-				-DLLVM_BUILD_DOCS=ON
-				-DLLVM_ENABLE_SPHINX=ON
-				-DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
-				-DSPHINX_WARNINGS_AS_ERRORS=OFF
-			)
-			if use extra; then
-				mycmakeargs+=(
-					-DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
-				)
-			fi
-		fi
-		mycmakeargs+=(
-			-DCLANG_INCLUDE_DOCS=${build_docs}
-		)
-	fi
-	if multilib_native_use extra; then
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
-			-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
-		)
-	else
-		mycmakeargs+=(
-			-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
-		)
-	fi
-
-	if tc-is-cross-compiler; then
-		has_version -b sys-devel/clang:${LLVM_MAJOR} ||
-			die "sys-devel/clang:${LLVM_MAJOR} is required on the build host."
-		local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
-		mycmakeargs+=(
-			-DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
-			-DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
-		)
-	fi
-
-	# LLVM can have very high memory consumption while linking,
-	# exhausting the limit on 32-bit linker executable
-	use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
-
-	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
-	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
-	cmake_src_configure
-
-	multilib_is_native_abi && check_distribution_components
-}
-
-multilib_src_compile() {
-	cmake_build distribution
-}
-
-multilib_src_test() {
-	# respect TMPDIR!
-	local -x LIT_PRESERVES_TMP=1
-	local test_targets=( check-clang )
-	if multilib_native_use extra; then
-		test_targets+=(
-			check-clang-tools
-			check-clangd
-		)
-	fi
-	cmake_build "${test_targets[@]}"
-}
-
-src_install() {
-	MULTILIB_WRAPPED_HEADERS=(
-		/usr/include/clang/Config/config.h
-	)
-
-	multilib-minimal_src_install
-
-	# Move runtime headers to /usr/lib/clang, where they belong
-	mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
-	# move (remaining) wrapped headers back
-	if use extra; then
-		mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
-	fi
-	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
-
-	# Apply CHOST and version suffix to clang tools
-	local clang_tools=( clang clang++ clang-cl clang-cpp )
-	local abi i
-
-	# cmake gives us:
-	# - clang-X
-	# - clang -> clang-X
-	# - clang++, clang-cl, clang-cpp -> clang
-	# we want to have:
-	# - clang-X
-	# - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
-	# - clang, clang++, clang-cl, clang-cpp -> clang*-X
-	# also in CHOST variant
-	for i in "${clang_tools[@]:1}"; do
-		rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
-		dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
-		dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
-	done
-
-	# now create target symlinks for all supported ABIs
-	for abi in $(get_all_abis); do
-		local abi_chost=$(get_abi_CHOST "${abi}")
-		for i in "${clang_tools[@]}"; do
-			dosym "${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
-			dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
-				"/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
-		done
-	done
-}
-
-multilib_src_install() {
-	DESTDIR=${D} cmake_build install-distribution
-
-	# move headers to /usr/include for wrapping & ABI mismatch checks
-	# (also drop the version suffix from runtime headers)
-	rm -rf "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
-	if multilib_native_use extra; then
-		# don't wrap clang-tidy headers, the list is too long
-		# (they're fine for non-native ABI but enabling the targets is problematic)
-		mv "${ED}"/usr/include/clang-tidy "${T}/" || die
-	fi
-}
-
-multilib_src_install_all() {
-	python_fix_shebang "${ED}"
-	if use static-analyzer; then
-		python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
-	fi
-
-	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-	llvm_install_manpages
-	# match 'html' non-compression
-	use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
-	# +x for some reason; TODO: investigate
-	use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
-}
-
-pkg_postinst() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow update all
-	fi
-
-	elog "You can find additional utility scripts in:"
-	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
-	if use extra; then
-		elog "Some of them are vim integration scripts (with instructions inside)."
-		elog "The run-clang-tidy.py script requires the following additional package:"
-		elog "  dev-python/pyyaml"
-	fi
-}
-
-pkg_postrm() {
-	if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
-		eselect compiler-shadow clean all
-	fi
-}