From ebc282ef4dfa408accac685565b8ee5f6faec119 Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@koprulu.sector>
Date: Sun, 12 Feb 2023 09:56:54 +0000
Subject: gentoo auto-resync : 12:02:2023 - 09:56:54

---
 sys-devel/Manifest.gz                              | Bin 10640 -> 10621 bytes
 sys-devel/binutils-hppa64/Manifest                 |   2 +
 .../binutils-hppa64/binutils-hppa64-2.40-r1.ebuild | 503 ++++++++++++++++++++
 sys-devel/binutils/Manifest                        |   2 +
 sys-devel/binutils/binutils-2.40-r1.ebuild         | 492 ++++++++++++++++++++
 sys-devel/clang-common/Manifest                    |   9 +-
 .../clang-common-16.0.0_pre20230107-r2.ebuild      | 169 -------
 .../clang-common-16.0.0_pre20230127-r1.ebuild      | 169 -------
 .../clang-common/clang-common-16.0.0_rc2.ebuild    | 168 +++++++
 .../clang-common-17.0.0_pre20230211.ebuild         | 168 +++++++
 sys-devel/clang-runtime/Manifest                   |   4 +-
 .../clang-runtime-16.0.0_pre20230107.ebuild        |  40 --
 .../clang-runtime-16.0.0_pre20230127.ebuild        |  41 --
 .../clang-runtime/clang-runtime-16.0.0_rc2.ebuild  |  40 ++
 .../clang-runtime-17.0.0_pre20230211.ebuild        |  41 ++
 sys-devel/clang/Manifest                           |   9 +-
 sys-devel/clang/clang-16.0.0_pre20230107.ebuild    | 473 -------------------
 sys-devel/clang/clang-16.0.0_pre20230127.ebuild    | 472 -------------------
 sys-devel/clang/clang-16.0.0_rc2.ebuild            | 472 +++++++++++++++++++
 sys-devel/clang/clang-17.0.0_pre20230211.ebuild    | 472 +++++++++++++++++++
 sys-devel/gcc/Manifest                             |  15 +-
 sys-devel/gcc/gcc-10.4.1_p20230209.ebuild          |  58 +++
 sys-devel/gcc/gcc-11.3.1_p20230210.ebuild          |  52 +++
 sys-devel/gcc/gcc-12.2.1_p20230211.ebuild          |  52 +++
 sys-devel/gcc/gcc-8.5.0-r1.ebuild                  |   7 +-
 sys-devel/gcc/gcc-9.5.0.ebuild                     |   4 +-
 sys-devel/lld/Manifest                             |   9 +-
 sys-devel/lld/lld-16.0.0_pre20230107.ebuild        |  90 ----
 sys-devel/lld/lld-16.0.0_pre20230127.ebuild        |  90 ----
 sys-devel/lld/lld-16.0.0_rc2.ebuild                |  90 ++++
 sys-devel/lld/lld-17.0.0_pre20230211.ebuild        |  90 ++++
 sys-devel/llvm-common/Manifest                     |   9 +-
 .../llvm-common-16.0.0_pre20230107.ebuild          |  28 --
 .../llvm-common-16.0.0_pre20230127.ebuild          |  28 --
 .../llvm-common/llvm-common-16.0.0_rc2.ebuild      |  28 ++
 .../llvm-common-17.0.0_pre20230211.ebuild          |  28 ++
 sys-devel/llvm/Manifest                            |   9 +-
 sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild      | 514 ---------------------
 sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild      | 514 ---------------------
 sys-devel/llvm/llvm-16.0.0_rc2.ebuild              | 514 +++++++++++++++++++++
 sys-devel/llvm/llvm-17.0.0_pre20230211.ebuild      | 514 +++++++++++++++++++++
 sys-devel/reflex/Manifest                          |   4 +
 .../files/reflex-20230206-parallel-build.patch     |  54 +++
 sys-devel/reflex/reflex-20230206.ebuild            |  31 ++
 44 files changed, 3919 insertions(+), 2659 deletions(-)
 create mode 100644 sys-devel/binutils-hppa64/binutils-hppa64-2.40-r1.ebuild
 create mode 100644 sys-devel/binutils/binutils-2.40-r1.ebuild
 delete mode 100644 sys-devel/clang-common/clang-common-16.0.0_pre20230107-r2.ebuild
 delete mode 100644 sys-devel/clang-common/clang-common-16.0.0_pre20230127-r1.ebuild
 create mode 100644 sys-devel/clang-common/clang-common-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/clang-common/clang-common-17.0.0_pre20230211.ebuild
 delete mode 100644 sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild
 delete mode 100644 sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild
 create mode 100644 sys-devel/clang-runtime/clang-runtime-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230211.ebuild
 delete mode 100644 sys-devel/clang/clang-16.0.0_pre20230107.ebuild
 delete mode 100644 sys-devel/clang/clang-16.0.0_pre20230127.ebuild
 create mode 100644 sys-devel/clang/clang-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/clang/clang-17.0.0_pre20230211.ebuild
 create mode 100644 sys-devel/gcc/gcc-10.4.1_p20230209.ebuild
 create mode 100644 sys-devel/gcc/gcc-11.3.1_p20230210.ebuild
 create mode 100644 sys-devel/gcc/gcc-12.2.1_p20230211.ebuild
 delete mode 100644 sys-devel/lld/lld-16.0.0_pre20230107.ebuild
 delete mode 100644 sys-devel/lld/lld-16.0.0_pre20230127.ebuild
 create mode 100644 sys-devel/lld/lld-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/lld/lld-17.0.0_pre20230211.ebuild
 delete mode 100644 sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild
 delete mode 100644 sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild
 create mode 100644 sys-devel/llvm-common/llvm-common-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/llvm-common/llvm-common-17.0.0_pre20230211.ebuild
 delete mode 100644 sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild
 delete mode 100644 sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild
 create mode 100644 sys-devel/llvm/llvm-16.0.0_rc2.ebuild
 create mode 100644 sys-devel/llvm/llvm-17.0.0_pre20230211.ebuild
 create mode 100644 sys-devel/reflex/files/reflex-20230206-parallel-build.patch
 create mode 100644 sys-devel/reflex/reflex-20230206.ebuild

(limited to 'sys-devel')

diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz
index 2c493a289ef3..a9d9b9d0bd2c 100644
Binary files a/sys-devel/Manifest.gz and b/sys-devel/Manifest.gz differ
diff --git a/sys-devel/binutils-hppa64/Manifest b/sys-devel/binutils-hppa64/Manifest
index 39cdd8a9bc9d..5eb57526f516 100644
--- a/sys-devel/binutils-hppa64/Manifest
+++ b/sys-devel/binutils-hppa64/Manifest
@@ -5,9 +5,11 @@ DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc505
 DIST binutils-2.39-patches-5.tar.xz 82924 BLAKE2B 2cf75f661989f22270d6afe5f3c543814eb6a331be4493016fa2871e1f10a84a123c1c51e77a19b35e46680b9fe77390cb1532ca40d470a6041fa768fed3ccd7 SHA512 4b5811b4822b3a06f590fc7d082dc0ddf18a6058ac23887254e2ee9bd63c7f06f1636e446152115c7e0b01a6c5298a0d9df6904bd1582e66504ccde80dd1ecbd
 DIST binutils-2.39.tar.xz 25167756 BLAKE2B ac6a5296c6586d53eaadcbffc5c399a6d79edf72450b9bb8b3525ce525129cef3d2eb90c85ef3bb3270b5a03b0e1ffb8f0b705f028158726f9777ebb8685066f SHA512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
 DIST binutils-2.40-patches-1.tar.xz 12260 BLAKE2B d525502e08012080417634fd41981550362d4d799952e89f388af2a6e5db5b80e88bfdb0b5b1d2a1bcf8ebda529eefbced8fa2ae84c7fe3ddb10184e98d4b369 SHA512 140f80be786511f63651e67bf25c2992de6a21bac00a3252dcf98becc3f9379c8070ef1380d5542bbf2e1908c50dab2c7ebb651d13bb97609594fe9fd9f1f079
+DIST binutils-2.40-patches-2.tar.xz 183760 BLAKE2B 447f1c40ac8212b1e91f6f2137f87958c3f4e2366b11b9979d9d09d52e9fcde9a9d74f0c1871616157e001f505849fceb2097a512f434b9c848885e367a07c35 SHA512 30efbfcbd2d936c74d9480e4f2f4b8dcd30abcd0f1b22d21d20558002fdb8c90bd2fe97e3f27c2905714dcfd1297cac2646ede1e2c3d9fbf159f93c8cf01a290
 DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
 EBUILD binutils-hppa64-2.37_p1-r2.ebuild 13273 BLAKE2B 2dd83c1466b42667496a8a37c40a2df498dd7b1de4ecd78a5583cd77ff27befa2bb22110e24622149b4a85c212f03e2a064aa961c13a966123eb8744caf02aa8 SHA512 e9575a12a0a13047c687c918c16ec4c3b93e10f26cb88add82ae1c2bb8f57c7619bc41a6586e231940412ae3974e327acdae567ce4e0e0523f2b654aadfb607b
 EBUILD binutils-hppa64-2.38-r2.ebuild 13286 BLAKE2B 0ea74ad439d7bc9ba9e4e79b69069f2cd14da3047c6ae4cb98932ce9dadedf5e4992e605d59762034df7aad5b6455d3df4bc994179acc29c53f9bc624a0c6826 SHA512 9bbc89df99cd78d26f5368600524dab466dbdf954b1affa5f5a04f25538b2caa89e8a08a2f514d5381299a0c5a47f200c7024b902e1d1b2c5f24081eb3410954
 EBUILD binutils-hppa64-2.39-r4.ebuild 14291 BLAKE2B 4ed50e5d1d74e26fb4c8764249874835f41cc5428a71e4ace3df5d5f56ba5cb7fbd03a1ca4e10afafa7c7b0ccfa79dce53a3cf84a3cf4bee93d61022d6c5ae2c SHA512 784b89e8d29d328da306670c61d9a3d009b6dc84fedd04edf5dacd9f185264533dcfd440f3156771ca044932fd60cc47d55d63caf355dfeed132d7e79ed10a21
+EBUILD binutils-hppa64-2.40-r1.ebuild 14292 BLAKE2B 19f5f1774de29fc40091a9ac1a9abbbbf59eb14ee24084536e8e2835ece015e3d156a74268d0fe83581ff5d7f478236eefcf465c0d2d9d113f5333c085ee5a38 SHA512 57e2485ea910dd6ea0f4f0d587212a12b6c40c2fa930aaf00744bbbc03423350a89f5e6b44387250a6c9bfb1191ab34178406422b424331da88409f49e93c5a5
 EBUILD binutils-hppa64-2.40.ebuild 14292 BLAKE2B 7591cdf9f4cc1d00b244702e29fa3da3a2338829b04532e37243c851e1bec8d9eaaf8a144a9c276c8e4148199fb35456a2a22a57effec0d6e528fdaa317bdaed SHA512 58366787c99324277030c4a2e309a23b4e4dca67b5695fc8e264de94ceddff31301df143dd458496c090d76a774602155cb9525829e257338fb845a9faedf678
 MISC metadata.xml 1004 BLAKE2B 069a799bb001c8c22afecebe6156098546f39e9e03c2ac194172ef6f0f49de976db90bfef03c634cdb696d9484d38bb5f2abb3fcbf7c6cda7cb14a39e5f4a87f SHA512 faa4cb332dd6eeff2ecd4dbfec67693bffcaafba588fb2ef6f64ea5e978c24646d0a555c39983497e660be1cd0518bf15dbc03f89584533f9271d58afb4a3f56
diff --git a/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r1.ebuild b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r1.ebuild
new file mode 100644
index 000000000000..8e05e6ac617e
--- /dev/null
+++ b/sys-devel/binutils-hppa64/binutils-hppa64-2.40-r1.ebuild
@@ -0,0 +1,503 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+export CTARGET=hppa64-${CHOST#*-}
+
+inherit libtool flag-o-matic gnuconfig multilib strip-linguas toolchain-funcs
+
+DESCRIPTION="Tools necessary to build programs"
+HOMEPAGE="https://sourceware.org/binutils/"
+
+LICENSE="GPL-3+"
+IUSE="cet default-gold doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla"
+REQUIRED_USE="default-gold? ( gold )"
+
+# Variables that can be set here  (ignored for live ebuilds)
+# PATCH_VER          - the patchset version
+#                      Default: empty, no patching
+# PATCH_BINUTILS_VER - the binutils version in the patchset name
+#                    - Default: PV
+# PATCH_DEV          - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
+#                      for the patchsets
+
+PATCH_VER=2
+PATCH_DEV=dilfridge
+
+if [[ ${PV} == 9999* ]]; then
+	inherit git-r3
+	SLOT=${PV}
+else
+	PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
+	PATCH_DEV=${PATCH_DEV:-dilfridge}
+	SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
+	[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
+		https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
+	SLOT=$(ver_cut 1-2)
+	KEYWORDS="-* ~hppa"
+fi
+
+#
+# The cross-compile logic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+	if [[ ${CATEGORY} == cross-* ]] ; then
+		export CTARGET=${CATEGORY#cross-}
+	fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+#
+# The dependencies
+#
+RDEPEND="
+	>=sys-devel/binutils-config-3
+	sys-libs/zlib
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	doc? ( sys-apps/texinfo )
+	test? (
+		dev-util/dejagnu
+		sys-devel/bc
+	)
+	nls? ( sys-devel/gettext )
+	sys-devel/flex
+	app-alternatives/yacc
+"
+
+RESTRICT="!test? ( test )"
+
+MY_BUILDDIR="${WORKDIR}"/build
+S="${WORKDIR}"/${P/-hppa64/}
+
+src_unpack() {
+	if [[ ${PV} == 9999* ]] ; then
+		EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
+		EGIT_CHECKOUT_DIR="${WORKDIR}"/patches-git
+		git-r3_src_unpack
+		mv patches-git/9999 patch || die
+
+		S="${WORKDIR}"/binutils
+		EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
+		EGIT_CHECKOUT_DIR="${S}"
+		git-r3_src_unpack
+	else
+		unpack ${P/-hppa64/}.tar.xz
+
+		cd "${WORKDIR}" || die
+		unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
+
+		# _p patch versions are Gentoo specific tarballs ...
+		local dir=${P%_p?}
+		dir=${dir/-hppa64/}
+
+		S=${WORKDIR}/${dir}
+	fi
+
+	cd "${WORKDIR}" || die
+	mkdir -p "${MY_BUILDDIR}" || die
+}
+
+src_prepare() {
+	local patchsetname
+	if [[ ${PV} == 9999* ]] ; then
+		patchsetname="from git master"
+	else
+		patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
+	fi
+
+	if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
+		if ! use vanilla; then
+			einfo "Applying binutils patchset ${patchsetname}"
+			eapply "${WORKDIR}/patch"
+			einfo "Done."
+		fi
+	fi
+
+	# Make sure our explicit libdir paths don't get clobbered, bug #562460
+	sed -i \
+		-e 's:@bfdlibdir@:@libdir@:g' \
+		-e 's:@bfdincludedir@:@includedir@:g' \
+		{bfd,opcodes}/Makefile.in || die
+
+	# Fix locale issues if possible, bug #122216
+	if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then
+		einfo "Fixing misc issues in configure files"
+		for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do
+			ebegin "  Updating ${f/${S}\/}"
+			patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \
+				|| eerror "Please file a bug about this"
+			eend $?
+		done
+	fi
+
+	# Apply things from PATCHES and user dirs
+	default
+
+	# Run misc portage update scripts
+	gnuconfig_update
+	elibtoolize --portage --no-uclibc
+}
+
+toolchain-binutils_bugurl() {
+	printf "https://bugs.gentoo.org/"
+}
+toolchain-binutils_pkgversion() {
+	printf "Gentoo ${PV}"
+	[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
+}
+
+src_configure() {
+	# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
+	# Avoid really confusing logs from subconfigure spam, makes logs far
+	# more legible.
+	MAKEOPTS="--output-sync=line ${MAKEOPTS}"
+
+	# Setup some paths
+	LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
+	INCPATH=${LIBPATH}/include
+	DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
+	if is_cross ; then
+		TOOLPATH=/usr/${CHOST}/${CTARGET}
+	else
+		TOOLPATH=/usr/${CTARGET}
+	fi
+	BINPATH=${TOOLPATH}/binutils-bin/${PV}
+
+	# Make sure we filter $LINGUAS so that only ones that
+	# actually work make it through, bug #42033
+	strip-linguas -u */po
+
+	# Keep things sane
+	strip-flags
+
+	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+	local x
+	echo
+	for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
+		einfo "$(printf '%10s' ${x}:) ${!x}"
+	done
+	echo
+
+	cd "${MY_BUILDDIR}" || die
+	local myconf=()
+
+	if use plugins ; then
+		myconf+=( --enable-plugins )
+	fi
+	# enable gold (installed as ld.gold) and ld's plugin architecture
+	if use gold ; then
+		myconf+=( --enable-gold )
+		if use default-gold; then
+			myconf+=( --enable-gold=default )
+		fi
+	fi
+
+	if use nls ; then
+		myconf+=( --without-included-gettext )
+	else
+		myconf+=( --disable-nls )
+	fi
+
+	myconf+=( --with-system-zlib )
+
+	# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
+	# logic in toolchain.eclass. bug #446946
+	#
+	# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
+	case $(tc-arch) in
+		ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
+	esac
+
+	use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
+
+	[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
+
+	is_cross && myconf+=(
+		--with-sysroot="${EPREFIX}"/usr/${CTARGET}
+		--enable-poison-system-directories
+	)
+
+	myconf+=( --enable-secureplt )
+
+	# mips can't do hash-style=gnu ...
+	if [[ $(tc-arch) != mips ]] ; then
+		myconf+=( --enable-default-hash-style=gnu )
+	fi
+
+	myconf+=(
+		--prefix="${EPREFIX}"/usr
+		--host=${CHOST}
+		--target=${CTARGET}
+		--datadir="${EPREFIX}"${DATAPATH}
+		--datarootdir="${EPREFIX}"${DATAPATH}
+		--infodir="${EPREFIX}"${DATAPATH}/info
+		--mandir="${EPREFIX}"${DATAPATH}/man
+		--bindir="${EPREFIX}"${BINPATH}
+		--libdir="${EPREFIX}"${LIBPATH}
+		--libexecdir="${EPREFIX}"${LIBPATH}
+		--includedir="${EPREFIX}"${INCPATH}
+		--enable-obsolete
+		--enable-shared
+		--enable-threads
+		# Newer versions (>=2.27) offer a configure flag now.
+		--enable-relro
+		# Newer versions (>=2.24) make this an explicit option, bug #497268
+		--enable-install-libiberty
+		# Available from 2.35 on
+		--enable-textrel-check=warning
+
+		# These hardening options are available from 2.39+ but
+		# they unconditionally enable the behaviour even on arches
+		# where e.g. execstacks can't be avoided.
+		# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
+		#--enable-warn-execstack
+		#--enable-warn-rwx-segments
+		#--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing)
+
+		# Things to think about
+		#--enable-deterministic-archives
+
+		# Works better than vapier's patch, bug #808787
+		--enable-new-dtags
+
+		--disable-jansson
+		--disable-werror
+		--with-bugurl="$(toolchain-binutils_bugurl)"
+		--with-pkgversion="$(toolchain-binutils_pkgversion)"
+		$(use_enable static-libs static)
+		# Disable modules that are in a combined binutils/gdb tree, bug #490566
+		--disable-{gdb,libdecnumber,readline,sim}
+		# Strip out broken static link flags.
+		# https://gcc.gnu.org/PR56750
+		--without-stage1-ldflags
+		# Change SONAME to avoid conflict across
+		# {native,cross}/binutils, binutils-libs. bug #666100
+		--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
+
+		# Avoid automagic dependency on (currently prefix) systems
+		# systems with debuginfod library, bug #754753
+		--without-debuginfod
+
+		# Avoid automagic dev-libs/msgpack dep, bug #865875
+		--without-msgpack
+
+		# Allow user to opt into CET for host libraries.
+		# Ideally we would like automagic-or-disabled here.
+		# But the check does not quite work on i686: bug #760926.
+		$(use_enable cet)
+
+		# We can enable this by default in future, but it's brand new
+		# in 2.39 with several bugs:
+		# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
+		# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
+		# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
+		# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
+		$(use_enable gprofng)
+	)
+
+	if ! is_cross ; then
+		# No LTO for HPPA64 right now as we don't build kgcc64 with LTO support.
+		myconf+=( $(use_enable pgo pgo-build) )
+
+		if use pgo ; then
+			export BUILD_CFLAGS="${CFLAGS}"
+		fi
+	fi
+
+	ECONF_SOURCE="${S}" econf "${myconf[@]}" || die
+
+	# Prevent makeinfo from running if doc is unset.
+	if ! use doc ; then
+		sed -i \
+			-e '/^MAKEINFO/s:=.*:= true:' \
+			Makefile || die
+	fi
+}
+
+src_compile() {
+	cd "${MY_BUILDDIR}" || die
+
+	# see Note [tooldir hack for ldscripts]
+	emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all
+
+	# only build info pages if the user wants them
+	if use doc ; then
+		emake V=1 info
+	fi
+
+	# we nuke the manpages when we're left with junk
+	# (like when we bootstrap, no perl -> no manpages)
+	find . -name '*.1' -a -size 0 -delete
+}
+
+src_test() {
+	cd "${MY_BUILDDIR}" || die
+
+	# bug #637066
+	filter-flags -Wall -Wreturn-type
+
+	emake -k V=1 check
+}
+
+src_install() {
+	local x d
+
+	cd "${MY_BUILDDIR}" || die
+
+	# see Note [tooldir hack for ldscripts]
+	emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
+	rm -rf "${ED}"/${LIBPATH}/bin || die
+	use static-libs || find "${ED}" -name '*.la' -delete
+
+	# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
+	cd "${ED}"/${LIBPATH} || die
+	for d in ../* ; do
+		[[ ${d} == ../${PV} ]] && continue
+		mv ${d}/* . || die
+		rmdir ${d} || die
+	done
+
+	# Now we collect everything intp the proper SLOT-ed dirs
+	# When something is built to cross-compile, it installs into
+	# /usr/$CHOST/ by default ... we have to 'fix' that :)
+	if is_cross ; then
+		cd "${ED}"/${BINPATH} || die
+		for x in * ; do
+			mv ${x} ${x/${CTARGET}-} || die
+		done
+
+		if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
+			# No die for now, dies on hppa?
+			mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
+			mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
+			rm -r "${ED}"/usr/${CHOST}/{include,lib}
+		fi
+	fi
+
+	insinto ${INCPATH}
+	local libiberty_headers=(
+		# Not all the libiberty headers.  See libiberty/Makefile.in:install_to_libdir.
+		demangle.h
+		dyn-string.h
+		fibheap.h
+		hashtab.h
+		libiberty.h
+		objalloc.h
+		splay-tree.h
+	)
+	doins "${libiberty_headers[@]/#/${S}/include/}"
+	if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
+		# TODO: add || die here, fails on hppa?
+		mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
+		rm -r "${ED}"/${LIBPATH}/lib
+	fi
+
+	# Generate an env.d entry for this binutils
+	insinto /etc/env.d/binutils
+	cat <<-EOF > "${T}"/env.d
+		TARGET="${CTARGET}"
+		VER="${PV}"
+		LIBPATH="${EPREFIX}${LIBPATH}"
+	EOF
+	newins "${T}"/env.d ${CTARGET}-${PV}
+
+	# Handle documentation
+	if ! is_cross ; then
+		cd "${S}" || die
+		dodoc README
+
+		docinto bfd
+		dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
+
+		docinto binutils
+		dodoc binutils/ChangeLog binutils/NEWS binutils/README
+
+		docinto gas
+		dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
+
+		docinto gprof
+		dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
+
+		docinto ld
+		dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
+
+		docinto libiberty
+		dodoc libiberty/ChangeLog* libiberty/README
+
+		docinto opcodes
+		dodoc opcodes/ChangeLog*
+	fi
+
+	# Remove shared info pages
+	rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info} || die
+
+	# Trim all empty dirs
+	find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
+
+	# the hppa64 hack; this should go into 9999 as a PN-conditional
+	# tweak the default fake list a little bit
+	cd "${D}"/etc/env.d/binutils
+	sed -i '/FAKE_TARGETS=/s:"$: hppa64-linux":' ${CTARGET}-${PV} || die
+}
+
+pkg_postinst() {
+	# Make sure this ${CTARGET} has a binutils version selected
+	[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
+	binutils-config ${CTARGET}-${PV}
+}
+
+pkg_postrm() {
+	local current_profile=$(binutils-config -c ${CTARGET})
+
+	# If no other versions exist, then uninstall for this
+	# target ... otherwise, switch to the newest version
+	# Note: only do this if this version is unmerged.  We
+	#       rerun binutils-config if this is a remerge, as
+	#       we want the mtimes on the symlinks updated (if
+	#       it is the same as the current selected profile)
+	if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
+		local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
+		choice=${choice//$'\n'/ }
+		choice=${choice/* }
+		if [[ -z ${choice} ]] ; then
+			binutils-config -u ${CTARGET}
+		else
+			binutils-config ${choice}
+		fi
+	elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
+		binutils-config ${CTARGET}-${PV}
+	fi
+}
+
+# Note [slotting support]
+# -----------------------
+# Gentoo's layout for binutils files is non-standard as Gentoo
+# supports slotted installation for binutils. Many tools
+# still expect binutils to reside in known locations.
+# binutils-config package restores symlinks into known locations,
+# like:
+#    /usr/bin/${CTARGET}-<tool>
+#    /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
+#    /usr/include/
+#
+# Note [tooldir hack for ldscripts]
+# ---------------------------------
+# Build system does not allow ./configure to tweak every location
+# we need for slotting binutils hence all the shuffling in
+# src_install(). This note is about SCRIPTDIR define handling.
+#
+# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
+# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
+# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
+# Thus we can't just move files around after compilation finished.
+#
+# Our goal is the following:
+# - at build-time set scriptdir to point to symlinked location:
+#   ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
+# - at install-time set scriptdir to point to slotted location:
+#   ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest
index 7d2f43fb7ae4..651a5cc7b184 100644
--- a/sys-devel/binutils/Manifest
+++ b/sys-devel/binutils/Manifest
@@ -21,6 +21,7 @@ DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc505
 DIST binutils-2.39-patches-5.tar.xz 82924 BLAKE2B 2cf75f661989f22270d6afe5f3c543814eb6a331be4493016fa2871e1f10a84a123c1c51e77a19b35e46680b9fe77390cb1532ca40d470a6041fa768fed3ccd7 SHA512 4b5811b4822b3a06f590fc7d082dc0ddf18a6058ac23887254e2ee9bd63c7f06f1636e446152115c7e0b01a6c5298a0d9df6904bd1582e66504ccde80dd1ecbd
 DIST binutils-2.39.tar.xz 25167756 BLAKE2B ac6a5296c6586d53eaadcbffc5c399a6d79edf72450b9bb8b3525ce525129cef3d2eb90c85ef3bb3270b5a03b0e1ffb8f0b705f028158726f9777ebb8685066f SHA512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
 DIST binutils-2.40-patches-1.tar.xz 12260 BLAKE2B d525502e08012080417634fd41981550362d4d799952e89f388af2a6e5db5b80e88bfdb0b5b1d2a1bcf8ebda529eefbced8fa2ae84c7fe3ddb10184e98d4b369 SHA512 140f80be786511f63651e67bf25c2992de6a21bac00a3252dcf98becc3f9379c8070ef1380d5542bbf2e1908c50dab2c7ebb651d13bb97609594fe9fd9f1f079
+DIST binutils-2.40-patches-2.tar.xz 183760 BLAKE2B 447f1c40ac8212b1e91f6f2137f87958c3f4e2366b11b9979d9d09d52e9fcde9a9d74f0c1871616157e001f505849fceb2097a512f434b9c848885e367a07c35 SHA512 30efbfcbd2d936c74d9480e4f2f4b8dcd30abcd0f1b22d21d20558002fdb8c90bd2fe97e3f27c2905714dcfd1297cac2646ede1e2c3d9fbf159f93c8cf01a290
 DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
 EBUILD binutils-2.32-r2.ebuild 12208 BLAKE2B 0ee98e7c366617db619f650327c4c645c31102ed5232262655e03e396a624741d265129721472e42b0aadaa45383bb357fba08ecd09fa1f8c1e2c14909a64383 SHA512 d8c265716f7fd6ae9bc1bdf4571bb626681ac7073b094cca020f1d795a644943eac244efdec6299c7ab6b26624d10f041dddeb1fc879953f4427c03f5d7e18ac
 EBUILD binutils-2.33.1-r1.ebuild 11944 BLAKE2B bf02f123bd6913fae0666963c373f2167f65fcd495a2d0166f8fd65ba2d7d6679e7ccdb3328760c1ab1d548f1faed0c5356461a2439c1891a70e15464bdf31f4 SHA512 58a9ff178b76437af93ac7e62a7a928311f5ea497f11bfd4a56e0ca19e96880205160f4f3fee4bd020cb029fabb52530dc0e858258c3a1bbc997785af4e06077
@@ -30,6 +31,7 @@ EBUILD binutils-2.36.1-r2.ebuild 12823 BLAKE2B 850624989343ed5c904a595e274576703
 EBUILD binutils-2.37_p1-r2.ebuild 13294 BLAKE2B ec26ea427eb05e6368b046b05eb45ee1818f76e37ccbfccb5b2c47654af7cc2de9a4583a1d1cac19b228d06ea8819a61a1889578159d3624f0a2a53fc63d632d SHA512 81f23fd8da3b6173bab2ccaaf21da02a7c52c3923ada533794fccea35747b25bd5cc0a47a21b72b2610227ef36a9ce9674fd8ae53a4c6af626fb3464ea783f7a
 EBUILD binutils-2.38-r2.ebuild 13672 BLAKE2B 84e1567892739e624554005600f8dbe123bcd524728bd1c06797fdfae2c91f39ddff5b6aac420c9571508f6f88b79a567c9144e5670f48c8fa4b7822e5ca5b02 SHA512 e7b6822f6482c3bbbab21292d19a267a711541e8757c7d1ea0c8b09cdfc71ba3beee98e53a56ab7d0789122bebca801e45d13d255b0051647dc1f89fa7a17680
 EBUILD binutils-2.39-r4.ebuild 14198 BLAKE2B cbf86f3a11d9d2ea415feb730fb755f681306bcd18113517b5e3d89171b4ae494cfa10487025aa36800465d83c52f2c618aab611aecf512f9c70f17b85e4ba7f SHA512 a196dde125398f81bde1d635c97f17cc067324f19a428c6c582e47f803d36255bee0558054111f7dcbd253e00a6f107e7d1fc402d8b6a9f5cd29e932cada712e
+EBUILD binutils-2.40-r1.ebuild 14034 BLAKE2B 16f1e5edf60ce522dba98ce72a594c5f31636802e96cbd2ed0034c576e54504cf61242e8ffe96dad27f67da4846fe46c1ee0bbc6badf8ddc9dcf1b023fdea47a SHA512 caddd972c75561f5f2a91b827982c7cb1f34da083c96ebd51b5d16ae664b238f3e873784a1248dfa4b582ac7fac91b15676b3724bfc8ddeca8ad2bc28e3476e4
 EBUILD binutils-2.40.ebuild 14034 BLAKE2B 93e014232fdf4ec415fc92c5f5c79351eb58e61825ca8d66184aa65068e0d1b185425ed087afa277dddd62a64109a90eec33db6e0e4a9443fe17deb6c8231c61 SHA512 f1945437280317700e8dd3a9e3f5f3175cd0968c10e08a3b2a1c11c2216c58eef3cf9b5335b3f34948c45ac1913480188e77e39d86dd5c8c69b4481b5c536ba6
 EBUILD binutils-9999.ebuild 14290 BLAKE2B ffb5c408b33a5b0b117b21131680c6e6e2dee6a219f244c55b0902ea94087b2e99ee50d46a08d6f04bad2ad2e63c8a621ccabe0608fb5b06fb475c344d607f2e SHA512 db7cd340224fe32cde9074a4a5ad0f37e1be3ab20e83b2214260336390f4e8c65253716ed04fe03ef9a09b82926aec14f8b978709f5d79adb7d6c01461e4dbc1
 MISC metadata.xml 889 BLAKE2B 9a627ab3db90639c30e19df93a064f9129d684ffe1176159d526ba7ba2e68c4c2cded8437382ceb97a5e2578fe79583042f6914a2b7650bb777ec1ce6bebd425 SHA512 b691e0335c2b059596557a3943047b0b8e718cc84c4fd885d44fe9887d3d170fce1317ba9949c3921a6e242434a24041777967e67beba911edf6932fe9f3d3cd
diff --git a/sys-devel/binutils/binutils-2.40-r1.ebuild b/sys-devel/binutils/binutils-2.40-r1.ebuild
new file mode 100644
index 000000000000..b90f780f4705
--- /dev/null
+++ b/sys-devel/binutils/binutils-2.40-r1.ebuild
@@ -0,0 +1,492 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
+
+DESCRIPTION="Tools necessary to build programs"
+HOMEPAGE="https://sourceware.org/binutils/"
+
+LICENSE="GPL-3+"
+IUSE="cet doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla zstd"
+
+# Variables that can be set here  (ignored for live ebuilds)
+# PATCH_VER          - the patchset version
+#                      Default: empty, no patching
+# PATCH_BINUTILS_VER - the binutils version in the patchset name
+#                    - Default: PV
+# PATCH_DEV          - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
+#                      for the patchsets
+
+PATCH_VER=2
+PATCH_DEV=dilfridge
+
+if [[ ${PV} == 9999* ]]; then
+	inherit git-r3
+	SLOT=${PV}
+else
+	PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
+	PATCH_DEV=${PATCH_DEV:-dilfridge}
+	SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
+	[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
+		https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
+	SLOT=$(ver_cut 1-2)
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+#
+# The cross-compile logic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+	if [[ ${CATEGORY} == cross-* ]] ; then
+		export CTARGET=${CATEGORY#cross-}
+	fi
+fi
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+#
+# The dependencies
+#
+RDEPEND="
+	>=sys-devel/binutils-config-3
+	sys-libs/zlib
+	zstd? ( app-arch/zstd:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	doc? ( sys-apps/texinfo )
+	test? (
+		dev-util/dejagnu
+		sys-devel/bc
+	)
+	nls? ( sys-devel/gettext )
+	zstd? ( virtual/pkgconfig )
+	sys-devel/flex
+	app-alternatives/yacc
+"
+
+RESTRICT="!test? ( test )"
+
+MY_BUILDDIR=${WORKDIR}/build
+
+src_unpack() {
+	if [[ ${PV} == 9999* ]] ; then
+		EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
+		EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
+		git-r3_src_unpack
+		mv patches-git/9999 patch || die
+
+		EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
+		S=${WORKDIR}/binutils
+		EGIT_CHECKOUT_DIR=${S}
+		git-r3_src_unpack
+	else
+		unpack ${P/-hppa64/}.tar.xz
+
+		cd "${WORKDIR}" || die
+		unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
+
+		# _p patch versions are Gentoo specific tarballs ...
+		local dir=${P%_p?}
+		dir=${dir/-hppa64/}
+
+		S=${WORKDIR}/${dir}
+	fi
+
+	cd "${WORKDIR}" || die
+	mkdir -p "${MY_BUILDDIR}" || die
+}
+
+src_prepare() {
+	local patchsetname
+	if [[ ${PV} == 9999* ]] ; then
+		patchsetname="from git master"
+	else
+		patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
+	fi
+
+	if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
+		if ! use vanilla; then
+			einfo "Applying binutils patchset ${patchsetname}"
+			eapply "${WORKDIR}/patch"
+			einfo "Done."
+		fi
+	fi
+
+	# Make sure our explicit libdir paths don't get clobbered, bug #562460
+	sed -i \
+		-e 's:@bfdlibdir@:@libdir@:g' \
+		-e 's:@bfdincludedir@:@includedir@:g' \
+		{bfd,opcodes}/Makefile.in || die
+
+	# Fix locale issues if possible, bug #122216
+	if [[ -e ${FILESDIR}/binutils-configure-LANG.patch ]] ; then
+		einfo "Fixing misc issues in configure files"
+		for f in $(find "${S}" -name configure -exec grep -l 'autoconf version 2.13' {} +) ; do
+			ebegin "  Updating ${f/${S}\/}"
+			patch "${f}" "${FILESDIR}"/binutils-configure-LANG.patch >& "${T}"/configure-patch.log \
+				|| eerror "Please file a bug about this"
+			eend $?
+		done
+	fi
+
+	# Apply things from PATCHES and user dirs
+	default
+
+	# Run misc portage update scripts
+	gnuconfig_update
+	elibtoolize --portage --no-uclibc
+}
+
+toolchain-binutils_bugurl() {
+	printf "https://bugs.gentoo.org/"
+}
+toolchain-binutils_pkgversion() {
+	printf "Gentoo ${PV}"
+	[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
+}
+
+src_configure() {
+	# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
+	# Avoid really confusing logs from subconfigure spam, makes logs far
+	# more legible.
+	MAKEOPTS="--output-sync=line ${MAKEOPTS}"
+
+	# Setup some paths
+	LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
+	INCPATH=${LIBPATH}/include
+	DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
+	if is_cross ; then
+		TOOLPATH=/usr/${CHOST}/${CTARGET}
+	else
+		TOOLPATH=/usr/${CTARGET}
+	fi
+	BINPATH=${TOOLPATH}/binutils-bin/${PV}
+
+	# Make sure we filter $LINGUAS so that only ones that
+	# actually work make it through, bug #42033
+	strip-linguas -u */po
+
+	# Keep things sane
+	strip-flags
+	use cet && filter-flags -mindirect-branch -mindirect-branch=*
+	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+	local x
+	echo
+	for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
+		einfo "$(printf '%10s' ${x}:) ${!x}"
+	done
+	echo
+
+	cd "${MY_BUILDDIR}" || die
+	local myconf=()
+
+	if use plugins ; then
+		myconf+=( --enable-plugins )
+	fi
+	# enable gold (installed as ld.gold) and ld's plugin architecture
+	if use gold ; then
+		myconf+=( --enable-gold )
+	fi
+
+	if use nls ; then
+		myconf+=( --without-included-gettext )
+	else
+		myconf+=( --disable-nls )
+	fi
+
+	myconf+=( --with-system-zlib )
+
+	# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
+	# logic in toolchain.eclass. bug #446946
+	#
+	# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
+	case $(tc-arch) in
+		ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
+	esac
+
+	use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
+
+	[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
+
+	is_cross && myconf+=(
+		--with-sysroot="${EPREFIX}"/usr/${CTARGET}
+		--enable-poison-system-directories
+	)
+
+	myconf+=( --enable-secureplt )
+
+	# mips can't do hash-style=gnu ...
+	if [[ $(tc-arch) != mips ]] ; then
+		myconf+=( --enable-default-hash-style=gnu )
+	fi
+
+	myconf+=(
+		--prefix="${EPREFIX}"/usr
+		--host=${CHOST}
+		--target=${CTARGET}
+		--datadir="${EPREFIX}"${DATAPATH}
+		--datarootdir="${EPREFIX}"${DATAPATH}
+		--infodir="${EPREFIX}"${DATAPATH}/info
+		--mandir="${EPREFIX}"${DATAPATH}/man
+		--bindir="${EPREFIX}"${BINPATH}
+		--libdir="${EPREFIX}"${LIBPATH}
+		--libexecdir="${EPREFIX}"${LIBPATH}
+		--includedir="${EPREFIX}"${INCPATH}
+		--enable-obsolete
+		--enable-shared
+		--enable-threads
+		# Newer versions (>=2.27) offer a configure flag now.
+		--enable-relro
+		# Newer versions (>=2.24) make this an explicit option, bug #497268
+		--enable-install-libiberty
+		# Available from 2.35 on
+		--enable-textrel-check=warning
+
+		# These hardening options are available from 2.39+ but
+		# they unconditionally enable the behaviour even on arches
+		# where e.g. execstacks can't be avoided.
+		# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
+		#--enable-warn-execstack
+		#--enable-warn-rwx-segments
+		#--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing)
+
+		# Things to think about
+		#--enable-deterministic-archives
+
+		# Works better than vapier's patch, bug #808787
+		--enable-new-dtags
+
+		--disable-jansson
+		--disable-werror
+		--with-bugurl="$(toolchain-binutils_bugurl)"
+		--with-pkgversion="$(toolchain-binutils_pkgversion)"
+		$(use_enable static-libs static)
+		$(use_with zstd)
+
+		# Disable modules that are in a combined binutils/gdb tree, bug #490566
+		--disable-{gdb,libdecnumber,readline,sim}
+		# Strip out broken static link flags.
+		# https://gcc.gnu.org/PR56750
+		--without-stage1-ldflags
+		# Change SONAME to avoid conflict across
+		# {native,cross}/binutils, binutils-libs. bug #666100
+		--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
+
+		# Avoid automagic dependency on (currently prefix) systems
+		# systems with debuginfod library, bug #754753
+		--without-debuginfod
+
+		# Avoid automagic dev-libs/msgpack dep, bug #865875
+		--without-msgpack
+
+		# Allow user to opt into CET for host libraries.
+		# Ideally we would like automagic-or-disabled here.
+		# But the check does not quite work on i686: bug #760926.
+		$(use_enable cet)
+
+		# We can enable this by default in future, but it's brand new
+		# in 2.39 with several bugs:
+		# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
+		# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
+		# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
+		# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
+		$(use_enable gprofng)
+	)
+
+	if ! is_cross ; then
+		myconf+=( $(use_enable pgo pgo-build lto) )
+
+		if use pgo ; then
+			export BUILD_CFLAGS="${CFLAGS}"
+		fi
+	fi
+
+	ECONF_SOURCE="${S}" econf "${myconf[@]}" || die
+
+	# Prevent makeinfo from running if doc is unset.
+	if ! use doc ; then
+		sed -i \
+			-e '/^MAKEINFO/s:=.*:= true:' \
+			Makefile || die
+	fi
+}
+
+src_compile() {
+	cd "${MY_BUILDDIR}" || die
+
+	# see Note [tooldir hack for ldscripts]
+	emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all
+
+	# only build info pages if the user wants them
+	if use doc ; then
+		emake V=1 info
+	fi
+
+	# we nuke the manpages when we're left with junk
+	# (like when we bootstrap, no perl -> no manpages)
+	find . -name '*.1' -a -size 0 -delete
+}
+
+src_test() {
+	cd "${MY_BUILDDIR}" || die
+
+	# bug #637066
+	filter-flags -Wall -Wreturn-type
+
+	emake -k V=1 check
+}
+
+src_install() {
+	local x d
+
+	cd "${MY_BUILDDIR}" || die
+
+	# see Note [tooldir hack for ldscripts]
+	emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
+	rm -rf "${ED}"/${LIBPATH}/bin || die
+	use static-libs || find "${ED}" -name '*.la' -delete
+
+	# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
+	cd "${ED}"/${LIBPATH} || die
+	for d in ../* ; do
+		[[ ${d} == ../${PV} ]] && continue
+		mv ${d}/* . || die
+		rmdir ${d} || die
+	done
+
+	# Now we collect everything intp the proper SLOT-ed dirs
+	# When something is built to cross-compile, it installs into
+	# /usr/$CHOST/ by default ... we have to 'fix' that :)
+	if is_cross ; then
+		cd "${ED}"/${BINPATH} || die
+		for x in * ; do
+			mv ${x} ${x/${CTARGET}-} || die
+		done
+
+		if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
+			mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
+			mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
+			rm -r "${ED}"/usr/${CHOST}/{include,lib}
+		fi
+	fi
+
+	insinto ${INCPATH}
+	local libiberty_headers=(
+		# Not all the libiberty headers.  See libiberty/Makefile.in:install_to_libdir.
+		demangle.h
+		dyn-string.h
+		fibheap.h
+		hashtab.h
+		libiberty.h
+		objalloc.h
+		splay-tree.h
+	)
+	doins "${libiberty_headers[@]/#/${S}/include/}"
+	if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
+		mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
+		rm -r "${ED}"/${LIBPATH}/lib || die
+	fi
+
+	# Generate an env.d entry for this binutils
+	insinto /etc/env.d/binutils
+	cat <<-EOF > "${T}"/env.d
+		TARGET="${CTARGET}"
+		VER="${PV}"
+		LIBPATH="${EPREFIX}${LIBPATH}"
+	EOF
+	newins "${T}"/env.d ${CTARGET}-${PV}
+
+	# Handle documentation
+	if ! is_cross ; then
+		cd "${S}" || die
+		dodoc README
+
+		docinto bfd
+		dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
+
+		docinto binutils
+		dodoc binutils/ChangeLog binutils/NEWS binutils/README
+
+		docinto gas
+		dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
+
+		docinto gprof
+		dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
+
+		docinto ld
+		dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
+
+		docinto libiberty
+		dodoc libiberty/ChangeLog* libiberty/README
+
+		docinto opcodes
+		dodoc opcodes/ChangeLog*
+	fi
+
+	# Remove shared info pages
+	rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
+
+	# Trim all empty dirs
+	find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
+}
+
+pkg_postinst() {
+	# Make sure this ${CTARGET} has a binutils version selected
+	[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
+	binutils-config ${CTARGET}-${PV}
+}
+
+pkg_postrm() {
+	local current_profile=$(binutils-config -c ${CTARGET})
+
+	# If no other versions exist, then uninstall for this
+	# target ... otherwise, switch to the newest version
+	# Note: only do this if this version is unmerged.  We
+	#       rerun binutils-config if this is a remerge, as
+	#       we want the mtimes on the symlinks updated (if
+	#       it is the same as the current selected profile)
+	if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
+		local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
+		choice=${choice//$'\n'/ }
+		choice=${choice/* }
+		if [[ -z ${choice} ]] ; then
+			binutils-config -u ${CTARGET}
+		else
+			binutils-config ${choice}
+		fi
+	elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
+		binutils-config ${CTARGET}-${PV}
+	fi
+}
+
+# Note [slotting support]
+# -----------------------
+# Gentoo's layout for binutils files is non-standard as Gentoo
+# supports slotted installation for binutils. Many tools
+# still expect binutils to reside in known locations.
+# binutils-config package restores symlinks into known locations,
+# like:
+#    /usr/bin/${CTARGET}-<tool>
+#    /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
+#    /usr/include/
+#
+# Note [tooldir hack for ldscripts]
+# ---------------------------------
+# Build system does not allow ./configure to tweak every location
+# we need for slotting binutils hence all the shuffling in
+# src_install(). This note is about SCRIPTDIR define handling.
+#
+# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
+# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
+# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
+# Thus we can't just move files around after compilation finished.
+#
+# Our goal is the following:
+# - at build-time set scriptdir to point to symlinked location:
+#   ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
+# - at install-time set scriptdir to point to slotted location:
+#   ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest
index 42ce40fe164c..3b399f52f0b0 100644
--- a/sys-devel/clang-common/Manifest
+++ b/sys-devel/clang-common/Manifest
@@ -5,14 +5,15 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 EBUILD clang-common-14.0.6.ebuild 541 BLAKE2B 87b158e874cf600e23591a8095e0edb4d30d4482600ef8fe38984e9ba9559e6e2226107cd482f355d950392a6a452e1a8ae79d297d5afc3951a7f1c8f6227b5f SHA512 1bd0481468c278f131ec9f87243927b60a59752f4229450559bf8016e9599155a52593810fcdc1cf0aecd4aa1529e8df300d95123a53de18eb326152caafbbef
 EBUILD clang-common-15.0.7-r2.ebuild 4709 BLAKE2B 45c3f8fc620d93c68140ec3f86744524b706555213599fdfaf8ee6d1109cf71ca15d09400e3d080d7099355b4ac3c83a645c7d17f5ff9967cd77147f2b4fb890 SHA512 130d2f15aef579a2942bf61d6b8062dfba930c3413910b4634bc8032c452ef4627fadbb930b3a4c76fe57d870fe21b1c812f58945b9eea4c63bd6a821e2377dc
 EBUILD clang-common-16.0.0.9999.ebuild 4686 BLAKE2B c2bf510db70a7708d56746c035eebe20b332ace167138ae5260375dc5bfe15e2b8478692636cca60cebd9ebc2e418324377e3d17ebb49db7e30ecd6ad11e6db3 SHA512 abb81468747c4f83554c35792f6fd1e282b0edfa02a34157c0594cefef42b91c95092b35a88b7b4b7abfb17bff95029065b86f2c2724df5badb5924f915fd63e
-EBUILD clang-common-16.0.0_pre20230107-r2.ebuild 4775 BLAKE2B a447dc18e3e97c9cac00ba882fc3c37aa6fefd58592c9b0b389ebf67a9faf64f1872cb868f8c0154d644eb2c7df32860b3c032d464ee2414d186a35cf8135151 SHA512 e763587e1bd2954c0c813295b1e08ca944041346b99904bc05857dbc086832606b62738d122f1328804c9616cfd90827397c82b510c9291c78b797071e525932
-EBUILD clang-common-16.0.0_pre20230127-r1.ebuild 4769 BLAKE2B 3896d2e63855bc296138b7a9eff2cd7ff21ecb184e1ae9f152def1c5eb9158becd3d1d8c557cf6b9db42aa53273df81c402f31a78c9f8502caec9938b493040d SHA512 65f2b422c0953218b85fe3dbf316692929edfe62a345e75888fe81d82506b9e1c3ce18948401efefb97ef335a40e527a0887eb58531bf9e4c9c350d816740db3
 EBUILD clang-common-16.0.0_rc1-r1.ebuild 4775 BLAKE2B a447dc18e3e97c9cac00ba882fc3c37aa6fefd58592c9b0b389ebf67a9faf64f1872cb868f8c0154d644eb2c7df32860b3c032d464ee2414d186a35cf8135151 SHA512 e763587e1bd2954c0c813295b1e08ca944041346b99904bc05857dbc086832606b62738d122f1328804c9616cfd90827397c82b510c9291c78b797071e525932
+EBUILD clang-common-16.0.0_rc2.ebuild 4692 BLAKE2B 0628160af123d42ea6cc9a2d39d0115ccc3d0f4461f2bc3b13946d3fb587a100092df73ba512aa016bf359283cf8790cf465cdbf7a230f1cd02e536d570424cd SHA512 08f8ef115f59f74a3b845af7563dbd43819c4fb37ed27a2fc0c65ce3c0f7c7e61eb3617b1e8c54c598d5cff0a1b8988d0ed32f8fa40c6b4428545a5f8f1bf05a
 EBUILD clang-common-17.0.0.9999.ebuild 4686 BLAKE2B c2bf510db70a7708d56746c035eebe20b332ace167138ae5260375dc5bfe15e2b8478692636cca60cebd9ebc2e418324377e3d17ebb49db7e30ecd6ad11e6db3 SHA512 abb81468747c4f83554c35792f6fd1e282b0edfa02a34157c0594cefef42b91c95092b35a88b7b4b7abfb17bff95029065b86f2c2724df5badb5924f915fd63e
 EBUILD clang-common-17.0.0_pre20230203.ebuild 4686 BLAKE2B c2bf510db70a7708d56746c035eebe20b332ace167138ae5260375dc5bfe15e2b8478692636cca60cebd9ebc2e418324377e3d17ebb49db7e30ecd6ad11e6db3 SHA512 abb81468747c4f83554c35792f6fd1e282b0edfa02a34157c0594cefef42b91c95092b35a88b7b4b7abfb17bff95029065b86f2c2724df5badb5924f915fd63e
+EBUILD clang-common-17.0.0_pre20230211.ebuild 4686 BLAKE2B c2bf510db70a7708d56746c035eebe20b332ace167138ae5260375dc5bfe15e2b8478692636cca60cebd9ebc2e418324377e3d17ebb49db7e30ecd6ad11e6db3 SHA512 abb81468747c4f83554c35792f6fd1e282b0edfa02a34157c0594cefef42b91c95092b35a88b7b4b7abfb17bff95029065b86f2c2724df5badb5924f915fd63e
 MISC metadata.xml 735 BLAKE2B 12ea133df3d7eb9367a65e572ef91893e654d5b77caa27c66e4b5b41ba90ebc5e619eb78dfff2a67183d2c1cbfcf35fa903b2bb75604ce153d5cedfce5346e3c SHA512 8ed6b12d4f2aa1985897a8d81ce898dbc0d14ac222f3d0f259cbe80fbb8b2349dff7677627daeaf39a422f290200da4fac6348abc81c9e35da0ca73a11cfdd83
diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20230107-r2.ebuild b/sys-devel/clang-common/clang-common-16.0.0_pre20230107-r2.ebuild
deleted file mode 100644
index d5df949d5d96..000000000000
--- a/sys-devel/clang-common/clang-common-16.0.0_pre20230107-r2.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit bash-completion-r1 llvm.org
-
-DESCRIPTION="Common files shared between multiple slots of clang"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS="~loong"
-IUSE="
-	default-compiler-rt default-libcxx default-lld llvm-libunwind
-	hardened stricter
-"
-
-PDEPEND="
-	sys-devel/clang:*
-	default-compiler-rt? (
-		sys-devel/clang-runtime[compiler-rt]
-		llvm-libunwind? ( sys-libs/llvm-libunwind )
-		!llvm-libunwind? ( sys-libs/libunwind )
-	)
-	!default-compiler-rt? ( sys-devel/gcc )
-	default-libcxx? ( >=sys-libs/libcxx-${PV} )
-	!default-libcxx? ( sys-devel/gcc )
-	default-lld? ( sys-devel/lld )
-	!default-lld? ( sys-devel/binutils )
-"
-IDEPEND="
-	!default-compiler-rt? ( sys-devel/gcc-config )
-	!default-libcxx? ( sys-devel/gcc-config )
-"
-
-LLVM_COMPONENTS=( clang/utils )
-llvm.org_set_globals
-
-pkg_pretend() {
-	[[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
-
-	local flag missing_flags=()
-	for flag in default-{compiler-rt,libcxx,lld}; do
-		if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then
-			missing_flags+=( "${flag}" )
-		fi
-	done
-
-	if [[ ${missing_flags[@]} ]]; then
-		eerror "It seems that you have the following flags set on sys-devel/clang:"
-		eerror
-		eerror "  ${missing_flags[*]}"
-		eerror
-		eerror "The default runtimes are now set via flags on sys-devel/clang-common."
-		eerror "The build is being aborted to prevent breakage.  Please either set"
-		eerror "the respective flags on this ebuild, e.g.:"
-		eerror
-		eerror "  sys-devel/clang-common ${missing_flags[*]}"
-		eerror
-		eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
-		die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common"
-	fi
-}
-
-src_install() {
-	newbashcomp bash-autocomplete.sh clang
-
-	insinto /etc/clang
-	newins - gentoo-runtimes.cfg <<-EOF
-		# This file is initially generated by sys-devel/clang-runtime.
-		# It is used to control the default runtimes using by clang.
-
-		--rtlib=$(usex default-compiler-rt compiler-rt libgcc)
-		--unwindlib=$(usex default-compiler-rt libunwind libgcc)
-		--stdlib=$(usex default-libcxx libc++ libstdc++)
-		-fuse-ld=$(usex default-lld lld bfd)
-	EOF
-
-	newins - gentoo-gcc-install.cfg <<-EOF
-		# This file is maintained by gcc-config.
-		# It is used to specify the selected GCC installation.
-	EOF
-
-	newins - gentoo-common.cfg <<-EOF
-		# This file contains flags common to clang, clang++ and clang-cpp.
-		@gentoo-runtimes.cfg
-		@gentoo-gcc-install.cfg
-		@gentoo-hardened.cfg
-	EOF
-
-	# Baseline hardening (bug #851111)
-	# (-fstack-clash-protection is omitted because of a possible Clang bug,
-	# see bug #892537 and bug #865339.)
-	newins - gentoo-hardened.cfg <<-EOF
-		# Some of these options are added unconditionally, regardless of
-		# USE=hardened, for parity with sys-devel/gcc.
-		-fstack-protector-strong
-		-fPIE
-		-include "${EPREFIX}/usr/include/gentoo/fortify.h"
-	EOF
-
-	dodir /usr/include/gentoo
-
-	local fortify_level=$(usex hardened 3 2)
-	# We have to do this because glibc's headers warn if F_S is set
-	# without optimization and that would at the very least be very noisy
-	# during builds and at worst trigger many -Werror builds.
-	cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
-		#ifndef _FORTIFY_SOURCE
-			#if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
-				#define _FORTIFY_SOURCE ${fortify_level}
-			#endif
-		#endif
-	EOF
-
-	if use hardened ; then
-		cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
-			# Options below are conditional on USE=hardened.
-			-D_GLIBCXX_ASSERTIONS
-
-			# Analogue to GLIBCXX_ASSERTIONS
-			# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
-			-D_LIBCPP_ENABLE_ASSERTIONS=1
-		EOF
-	fi
-
-	if use stricter; then
-		newins - gentoo-stricter.cfg <<-EOF
-			# This file increases the strictness of older clang versions
-			# to match the newest upstream version.
-
-			# clang-16 defaults
-			-Werror=implicit-function-declaration
-			-Werror=implicit-int
-			-Werror=incompatible-function-pointer-types
-
-			# constructs banned by C2x
-			-Werror=deprecated-non-prototype
-
-			# deprecated but large blast radius
-			#-Werror=strict-prototypes
-		EOF
-
-		cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-			@gentoo-stricter.cfg
-		EOF
-	fi
-
-	local tool
-	for tool in clang{,++,-cpp}; do
-		newins - "${tool}.cfg" <<-EOF
-			# This configuration file is used by ${tool} driver.
-			@gentoo-common.cfg
-		EOF
-	done
-}
-
-pkg_preinst() {
-	if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
-	then
-		local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
-		if [[ -n ${gcc_path} ]]; then
-			cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
-				--gcc-install-dir="${gcc_path%%:*}"
-			EOF
-		fi
-	fi
-}
diff --git a/sys-devel/clang-common/clang-common-16.0.0_pre20230127-r1.ebuild b/sys-devel/clang-common/clang-common-16.0.0_pre20230127-r1.ebuild
deleted file mode 100644
index c04c266d94c8..000000000000
--- a/sys-devel/clang-common/clang-common-16.0.0_pre20230127-r1.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit bash-completion-r1 llvm.org
-
-DESCRIPTION="Common files shared between multiple slots of clang"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS=""
-IUSE="
-	default-compiler-rt default-libcxx default-lld llvm-libunwind
-	hardened stricter
-"
-
-PDEPEND="
-	sys-devel/clang:*
-	default-compiler-rt? (
-		sys-devel/clang-runtime[compiler-rt]
-		llvm-libunwind? ( sys-libs/llvm-libunwind )
-		!llvm-libunwind? ( sys-libs/libunwind )
-	)
-	!default-compiler-rt? ( sys-devel/gcc )
-	default-libcxx? ( >=sys-libs/libcxx-${PV} )
-	!default-libcxx? ( sys-devel/gcc )
-	default-lld? ( sys-devel/lld )
-	!default-lld? ( sys-devel/binutils )
-"
-IDEPEND="
-	!default-compiler-rt? ( sys-devel/gcc-config )
-	!default-libcxx? ( sys-devel/gcc-config )
-"
-
-LLVM_COMPONENTS=( clang/utils )
-llvm.org_set_globals
-
-pkg_pretend() {
-	[[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
-
-	local flag missing_flags=()
-	for flag in default-{compiler-rt,libcxx,lld}; do
-		if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then
-			missing_flags+=( "${flag}" )
-		fi
-	done
-
-	if [[ ${missing_flags[@]} ]]; then
-		eerror "It seems that you have the following flags set on sys-devel/clang:"
-		eerror
-		eerror "  ${missing_flags[*]}"
-		eerror
-		eerror "The default runtimes are now set via flags on sys-devel/clang-common."
-		eerror "The build is being aborted to prevent breakage.  Please either set"
-		eerror "the respective flags on this ebuild, e.g.:"
-		eerror
-		eerror "  sys-devel/clang-common ${missing_flags[*]}"
-		eerror
-		eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
-		die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common"
-	fi
-}
-
-src_install() {
-	newbashcomp bash-autocomplete.sh clang
-
-	insinto /etc/clang
-	newins - gentoo-runtimes.cfg <<-EOF
-		# This file is initially generated by sys-devel/clang-runtime.
-		# It is used to control the default runtimes using by clang.
-
-		--rtlib=$(usex default-compiler-rt compiler-rt libgcc)
-		--unwindlib=$(usex default-compiler-rt libunwind libgcc)
-		--stdlib=$(usex default-libcxx libc++ libstdc++)
-		-fuse-ld=$(usex default-lld lld bfd)
-	EOF
-
-	newins - gentoo-gcc-install.cfg <<-EOF
-		# This file is maintained by gcc-config.
-		# It is used to specify the selected GCC installation.
-	EOF
-
-	newins - gentoo-common.cfg <<-EOF
-		# This file contains flags common to clang, clang++ and clang-cpp.
-		@gentoo-runtimes.cfg
-		@gentoo-gcc-install.cfg
-		@gentoo-hardened.cfg
-	EOF
-
-	# Baseline hardening (bug #851111)
-	# (-fstack-clash-protection is omitted because of a possible Clang bug,
-	# see bug #892537 and bug #865339.)
-	newins - gentoo-hardened.cfg <<-EOF
-		# Some of these options are added unconditionally, regardless of
-		# USE=hardened, for parity with sys-devel/gcc.
-		-fstack-protector-strong
-		-fPIE
-		-include "${EPREFIX}/usr/include/gentoo/fortify.h"
-	EOF
-
-	dodir /usr/include/gentoo
-
-	local fortify_level=$(usex hardened 3 2)
-	# We have to do this because glibc's headers warn if F_S is set
-	# without optimization and that would at the very least be very noisy
-	# during builds and at worst trigger many -Werror builds.
-	cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
-		#ifndef _FORTIFY_SOURCE
-			#if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
-				#define _FORTIFY_SOURCE ${fortify_level}
-			#endif
-		#endif
-	EOF
-
-	if use hardened ; then
-		cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
-			# Options below are conditional on USE=hardened.
-			-D_GLIBCXX_ASSERTIONS
-
-			# Analogue to GLIBCXX_ASSERTIONS
-			# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
-			-D_LIBCPP_ENABLE_ASSERTIONS=1
-		EOF
-	fi
-
-	if use stricter; then
-		newins - gentoo-stricter.cfg <<-EOF
-			# This file increases the strictness of older clang versions
-			# to match the newest upstream version.
-
-			# clang-16 defaults
-			-Werror=implicit-function-declaration
-			-Werror=implicit-int
-			-Werror=incompatible-function-pointer-types
-
-			# constructs banned by C2x
-			-Werror=deprecated-non-prototype
-
-			# deprecated but large blast radius
-			#-Werror=strict-prototypes
-		EOF
-
-		cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-			@gentoo-stricter.cfg
-		EOF
-	fi
-
-	local tool
-	for tool in clang{,++,-cpp}; do
-		newins - "${tool}.cfg" <<-EOF
-			# This configuration file is used by ${tool} driver.
-			@gentoo-common.cfg
-		EOF
-	done
-}
-
-pkg_preinst() {
-	if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
-	then
-		local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
-		if [[ -n ${gcc_path} ]]; then
-			cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
-				--gcc-install-dir="${gcc_path%%:*}"
-			EOF
-		fi
-	fi
-}
diff --git a/sys-devel/clang-common/clang-common-16.0.0_rc2.ebuild b/sys-devel/clang-common/clang-common-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..3c407f5a1af6
--- /dev/null
+++ b/sys-devel/clang-common/clang-common-16.0.0_rc2.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~loong"
+IUSE="
+	default-compiler-rt default-libcxx default-lld llvm-libunwind
+	hardened stricter
+"
+
+PDEPEND="
+	sys-devel/clang:*
+	default-compiler-rt? (
+		sys-devel/clang-runtime[compiler-rt]
+		llvm-libunwind? ( sys-libs/llvm-libunwind )
+		!llvm-libunwind? ( sys-libs/libunwind )
+	)
+	!default-compiler-rt? ( sys-devel/gcc )
+	default-libcxx? ( >=sys-libs/libcxx-${PV} )
+	!default-libcxx? ( sys-devel/gcc )
+	default-lld? ( sys-devel/lld )
+	!default-lld? ( sys-devel/binutils )
+"
+IDEPEND="
+	!default-compiler-rt? ( sys-devel/gcc-config )
+	!default-libcxx? ( sys-devel/gcc-config )
+"
+
+LLVM_COMPONENTS=( clang/utils )
+llvm.org_set_globals
+
+pkg_pretend() {
+	[[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
+
+	local flag missing_flags=()
+	for flag in default-{compiler-rt,libcxx,lld}; do
+		if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then
+			missing_flags+=( "${flag}" )
+		fi
+	done
+
+	if [[ ${missing_flags[@]} ]]; then
+		eerror "It seems that you have the following flags set on sys-devel/clang:"
+		eerror
+		eerror "  ${missing_flags[*]}"
+		eerror
+		eerror "The default runtimes are now set via flags on sys-devel/clang-common."
+		eerror "The build is being aborted to prevent breakage.  Please either set"
+		eerror "the respective flags on this ebuild, e.g.:"
+		eerror
+		eerror "  sys-devel/clang-common ${missing_flags[*]}"
+		eerror
+		eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+		die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common"
+	fi
+}
+
+src_install() {
+	newbashcomp bash-autocomplete.sh clang
+
+	insinto /etc/clang
+	newins - gentoo-runtimes.cfg <<-EOF
+		# This file is initially generated by sys-devel/clang-runtime.
+		# It is used to control the default runtimes using by clang.
+
+		--rtlib=$(usex default-compiler-rt compiler-rt libgcc)
+		--unwindlib=$(usex default-compiler-rt libunwind libgcc)
+		--stdlib=$(usex default-libcxx libc++ libstdc++)
+		-fuse-ld=$(usex default-lld lld bfd)
+	EOF
+
+	newins - gentoo-gcc-install.cfg <<-EOF
+		# This file is maintained by gcc-config.
+		# It is used to specify the selected GCC installation.
+	EOF
+
+	newins - gentoo-common.cfg <<-EOF
+		# This file contains flags common to clang, clang++ and clang-cpp.
+		@gentoo-runtimes.cfg
+		@gentoo-gcc-install.cfg
+		@gentoo-hardened.cfg
+	EOF
+
+	# Baseline hardening (bug #851111)
+	newins - gentoo-hardened.cfg <<-EOF
+		# Some of these options are added unconditionally, regardless of
+		# USE=hardened, for parity with sys-devel/gcc.
+		-fstack-clash-protection
+		-fstack-protector-strong
+		-fPIE
+		-include "${EPREFIX}/usr/include/gentoo/fortify.h"
+	EOF
+
+	dodir /usr/include/gentoo
+
+	local fortify_level=$(usex hardened 3 2)
+	# We have to do this because glibc's headers warn if F_S is set
+	# without optimization and that would at the very least be very noisy
+	# during builds and at worst trigger many -Werror builds.
+	cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
+		#ifndef _FORTIFY_SOURCE
+			#if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+				#define _FORTIFY_SOURCE ${fortify_level}
+			#endif
+		#endif
+	EOF
+
+	if use hardened ; then
+		cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+			# Options below are conditional on USE=hardened.
+			-D_GLIBCXX_ASSERTIONS
+
+			# Analogue to GLIBCXX_ASSERTIONS
+			# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+			-D_LIBCPP_ENABLE_ASSERTIONS=1
+		EOF
+	fi
+
+	if use stricter; then
+		newins - gentoo-stricter.cfg <<-EOF
+			# This file increases the strictness of older clang versions
+			# to match the newest upstream version.
+
+			# clang-16 defaults
+			-Werror=implicit-function-declaration
+			-Werror=implicit-int
+			-Werror=incompatible-function-pointer-types
+
+			# constructs banned by C2x
+			-Werror=deprecated-non-prototype
+
+			# deprecated but large blast radius
+			#-Werror=strict-prototypes
+		EOF
+
+		cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+			@gentoo-stricter.cfg
+		EOF
+	fi
+
+	local tool
+	for tool in clang{,++,-cpp}; do
+		newins - "${tool}.cfg" <<-EOF
+			# This configuration file is used by ${tool} driver.
+			@gentoo-common.cfg
+		EOF
+	done
+}
+
+pkg_preinst() {
+	if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
+	then
+		local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
+		if [[ -n ${gcc_path} ]]; then
+			cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
+				--gcc-install-dir="${gcc_path%%:*}"
+			EOF
+		fi
+	fi
+}
diff --git a/sys-devel/clang-common/clang-common-17.0.0_pre20230211.ebuild b/sys-devel/clang-common/clang-common-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..be17e87b775a
--- /dev/null
+++ b/sys-devel/clang-common/clang-common-17.0.0_pre20230211.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS=""
+IUSE="
+	default-compiler-rt default-libcxx default-lld llvm-libunwind
+	hardened stricter
+"
+
+PDEPEND="
+	sys-devel/clang:*
+	default-compiler-rt? (
+		sys-devel/clang-runtime[compiler-rt]
+		llvm-libunwind? ( sys-libs/llvm-libunwind )
+		!llvm-libunwind? ( sys-libs/libunwind )
+	)
+	!default-compiler-rt? ( sys-devel/gcc )
+	default-libcxx? ( >=sys-libs/libcxx-${PV} )
+	!default-libcxx? ( sys-devel/gcc )
+	default-lld? ( sys-devel/lld )
+	!default-lld? ( sys-devel/binutils )
+"
+IDEPEND="
+	!default-compiler-rt? ( sys-devel/gcc-config )
+	!default-libcxx? ( sys-devel/gcc-config )
+"
+
+LLVM_COMPONENTS=( clang/utils )
+llvm.org_set_globals
+
+pkg_pretend() {
+	[[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
+
+	local flag missing_flags=()
+	for flag in default-{compiler-rt,libcxx,lld}; do
+		if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then
+			missing_flags+=( "${flag}" )
+		fi
+	done
+
+	if [[ ${missing_flags[@]} ]]; then
+		eerror "It seems that you have the following flags set on sys-devel/clang:"
+		eerror
+		eerror "  ${missing_flags[*]}"
+		eerror
+		eerror "The default runtimes are now set via flags on sys-devel/clang-common."
+		eerror "The build is being aborted to prevent breakage.  Please either set"
+		eerror "the respective flags on this ebuild, e.g.:"
+		eerror
+		eerror "  sys-devel/clang-common ${missing_flags[*]}"
+		eerror
+		eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+		die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common"
+	fi
+}
+
+src_install() {
+	newbashcomp bash-autocomplete.sh clang
+
+	insinto /etc/clang
+	newins - gentoo-runtimes.cfg <<-EOF
+		# This file is initially generated by sys-devel/clang-runtime.
+		# It is used to control the default runtimes using by clang.
+
+		--rtlib=$(usex default-compiler-rt compiler-rt libgcc)
+		--unwindlib=$(usex default-compiler-rt libunwind libgcc)
+		--stdlib=$(usex default-libcxx libc++ libstdc++)
+		-fuse-ld=$(usex default-lld lld bfd)
+	EOF
+
+	newins - gentoo-gcc-install.cfg <<-EOF
+		# This file is maintained by gcc-config.
+		# It is used to specify the selected GCC installation.
+	EOF
+
+	newins - gentoo-common.cfg <<-EOF
+		# This file contains flags common to clang, clang++ and clang-cpp.
+		@gentoo-runtimes.cfg
+		@gentoo-gcc-install.cfg
+		@gentoo-hardened.cfg
+	EOF
+
+	# Baseline hardening (bug #851111)
+	newins - gentoo-hardened.cfg <<-EOF
+		# Some of these options are added unconditionally, regardless of
+		# USE=hardened, for parity with sys-devel/gcc.
+		-fstack-clash-protection
+		-fstack-protector-strong
+		-fPIE
+		-include "${EPREFIX}/usr/include/gentoo/fortify.h"
+	EOF
+
+	dodir /usr/include/gentoo
+
+	local fortify_level=$(usex hardened 3 2)
+	# We have to do this because glibc's headers warn if F_S is set
+	# without optimization and that would at the very least be very noisy
+	# during builds and at worst trigger many -Werror builds.
+	cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
+		#ifndef _FORTIFY_SOURCE
+			#if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+				#define _FORTIFY_SOURCE ${fortify_level}
+			#endif
+		#endif
+	EOF
+
+	if use hardened ; then
+		cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+			# Options below are conditional on USE=hardened.
+			-D_GLIBCXX_ASSERTIONS
+
+			# Analogue to GLIBCXX_ASSERTIONS
+			# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+			-D_LIBCPP_ENABLE_ASSERTIONS=1
+		EOF
+	fi
+
+	if use stricter; then
+		newins - gentoo-stricter.cfg <<-EOF
+			# This file increases the strictness of older clang versions
+			# to match the newest upstream version.
+
+			# clang-16 defaults
+			-Werror=implicit-function-declaration
+			-Werror=implicit-int
+			-Werror=incompatible-function-pointer-types
+
+			# constructs banned by C2x
+			-Werror=deprecated-non-prototype
+
+			# deprecated but large blast radius
+			#-Werror=strict-prototypes
+		EOF
+
+		cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+			@gentoo-stricter.cfg
+		EOF
+	fi
+
+	local tool
+	for tool in clang{,++,-cpp}; do
+		newins - "${tool}.cfg" <<-EOF
+			# This configuration file is used by ${tool} driver.
+			@gentoo-common.cfg
+		EOF
+	done
+}
+
+pkg_preinst() {
+	if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
+	then
+		local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
+		if [[ -n ${gcc_path} ]]; then
+			cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
+				--gcc-install-dir="${gcc_path%%:*}"
+			EOF
+		fi
+	fi
+}
diff --git a/sys-devel/clang-runtime/Manifest b/sys-devel/clang-runtime/Manifest
index 9d55c14e70ee..1a76c5f0f797 100644
--- a/sys-devel/clang-runtime/Manifest
+++ b/sys-devel/clang-runtime/Manifest
@@ -1,9 +1,9 @@
 EBUILD clang-runtime-14.0.6.ebuild 760 BLAKE2B 0f6cfb8536569ffe2a09305e71056309690ad1c8e92543e64025bd5e009eac35018ec22b2c0f80c12f3a527cc7e0bfe4ec1bfcb2dd9dea54106abf46b13e5592 SHA512 580efee12fe0e53447f5644fad248ebded8ae6cd8cb5871cb38bb3148091886b6fb9a57ac712d3158d5c3fc38c043b0bfbf62fc550a609752a42c23e605b0ded
 EBUILD clang-runtime-15.0.7.ebuild 759 BLAKE2B d7b481faffc4da0a6dc1b4e708322cd17cd497dc75363bdb89e7fbb1ecb2aecd9cbf91bdf816505476c7aca2ec7b6fb9ef178705e6b77361d21a7a270404a70a SHA512 8128acfc92b1601e93ffca1fd4233456f8a28fbc4cc65a1782da25df48abd3af82d0128b31f12b966ca02ab1eafcd28016c4443d9c7f1d28bc3f951cfff5e07f
 EBUILD clang-runtime-16.0.0.9999.ebuild 1369 BLAKE2B a25d32189f78e993706138f339ad0645e3042bd283ddc26b4189c117ea2368d0a1c2b09c2f5f538112bcad65fc14dc0d29f16e4d6ff98e3401c3bdb74d59d750 SHA512 c37860675576d51047f5347400753a19469ea0e2e6ff49a3a5ba6e35f5b33372c06ee2ac1e82aa4a681f35e8c186a1ff8eb25a9eccd0ee35e5ab3d57873f40e0
-EBUILD clang-runtime-16.0.0_pre20230107.ebuild 1357 BLAKE2B 8bffc2e195aea4f0c5c13d8f730dbf7cf5afade08d6ca9915addb9a148d4fa28d01331461adc16221840095a8b94d997795e25fb01c68ca6260b24471abd2747 SHA512 cd391453ef4a5ef739d9897b25fc1899062c20e23dbb1bfa4ef33ada3a697ffaedaf6956ba82fd114b8f24a5c8de3d255b5d114c545968f0689bd6cb38b64ba6
-EBUILD clang-runtime-16.0.0_pre20230127.ebuild 1369 BLAKE2B f69af454137c9689bebc710a7a6988338bc715c68238367d55b5f01859244954b7ff8719ba285b64e76a578f063ab3f6325d5e9519ef5ebdb31592af1a276225 SHA512 436ecac7bb5ba46ca72ab48ea2bd8e30e2ee180218c0c3f14f41abd4e3b0445655ad033058bb78661b2095c5786ef644b538574d4ae2a9a8ee12fefc179f79db
 EBUILD clang-runtime-16.0.0_rc1.ebuild 1357 BLAKE2B 8bffc2e195aea4f0c5c13d8f730dbf7cf5afade08d6ca9915addb9a148d4fa28d01331461adc16221840095a8b94d997795e25fb01c68ca6260b24471abd2747 SHA512 cd391453ef4a5ef739d9897b25fc1899062c20e23dbb1bfa4ef33ada3a697ffaedaf6956ba82fd114b8f24a5c8de3d255b5d114c545968f0689bd6cb38b64ba6
+EBUILD clang-runtime-16.0.0_rc2.ebuild 1357 BLAKE2B 8bffc2e195aea4f0c5c13d8f730dbf7cf5afade08d6ca9915addb9a148d4fa28d01331461adc16221840095a8b94d997795e25fb01c68ca6260b24471abd2747 SHA512 cd391453ef4a5ef739d9897b25fc1899062c20e23dbb1bfa4ef33ada3a697ffaedaf6956ba82fd114b8f24a5c8de3d255b5d114c545968f0689bd6cb38b64ba6
 EBUILD clang-runtime-17.0.0.9999.ebuild 1369 BLAKE2B f69af454137c9689bebc710a7a6988338bc715c68238367d55b5f01859244954b7ff8719ba285b64e76a578f063ab3f6325d5e9519ef5ebdb31592af1a276225 SHA512 436ecac7bb5ba46ca72ab48ea2bd8e30e2ee180218c0c3f14f41abd4e3b0445655ad033058bb78661b2095c5786ef644b538574d4ae2a9a8ee12fefc179f79db
 EBUILD clang-runtime-17.0.0_pre20230203.ebuild 1369 BLAKE2B f69af454137c9689bebc710a7a6988338bc715c68238367d55b5f01859244954b7ff8719ba285b64e76a578f063ab3f6325d5e9519ef5ebdb31592af1a276225 SHA512 436ecac7bb5ba46ca72ab48ea2bd8e30e2ee180218c0c3f14f41abd4e3b0445655ad033058bb78661b2095c5786ef644b538574d4ae2a9a8ee12fefc179f79db
+EBUILD clang-runtime-17.0.0_pre20230211.ebuild 1369 BLAKE2B f69af454137c9689bebc710a7a6988338bc715c68238367d55b5f01859244954b7ff8719ba285b64e76a578f063ab3f6325d5e9519ef5ebdb31592af1a276225 SHA512 436ecac7bb5ba46ca72ab48ea2bd8e30e2ee180218c0c3f14f41abd4e3b0445655ad033058bb78661b2095c5786ef644b538574d4ae2a9a8ee12fefc179f79db
 MISC metadata.xml 661 BLAKE2B 24688c511713ea102b83c71d226d519981b3aee0e05ef7a56d6a80be829efd843194e45cb4fd801f0bb976b6f1976386d6a2b05d2bc907fe2aa42b22b85b7d1f SHA512 2b5ab8783c90795f2e7d1673d876048ed9745f4911fb7a860df56deac13a6dfeba4581a84562eae54eff757c45042ca3fab75c7800313ae61df9ce69780a9294
diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild
deleted file mode 100644
index b4fc2669d5d7..000000000000
--- a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit multilib-build toolchain-funcs
-
-DESCRIPTION="Meta-ebuild for clang runtime libraries"
-HOMEPAGE="https://clang.llvm.org/"
-
-LICENSE="metapackage"
-SLOT="${PV%%.*}"
-KEYWORDS="~loong"
-IUSE="+compiler-rt libcxx openmp +sanitize"
-REQUIRED_USE="sanitize? ( compiler-rt )"
-
-RDEPEND="
-	compiler-rt? (
-		~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
-		sanitize? (
-			~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
-		)
-	)
-	libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] )
-	openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )
-"
-
-pkg_pretend() {
-	if tc-is-clang; then
-		ewarn "You seem to be using clang as a system compiler.  As of clang-16,"
-		ewarn "upstream has turned a few warnings that commonly occur during"
-		ewarn "configure script runs into errors by default.  This causes some"
-		ewarn "configure tests to start failing, sometimes resulting in silent"
-		ewarn "breakage, missing functionality or runtime misbehavior.  It is"
-		ewarn "not yet clear whether the change will remain or be reverted."
-		ewarn
-		ewarn "For more information, please see:"
-		ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213"
-	fi
-}
diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild
deleted file mode 100644
index 67b42357665e..000000000000
--- a/sys-devel/clang-runtime/clang-runtime-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit multilib-build toolchain-funcs
-
-DESCRIPTION="Meta-ebuild for clang runtime libraries"
-HOMEPAGE="https://clang.llvm.org/"
-
-LICENSE="metapackage"
-SLOT="${PV%%.*}"
-KEYWORDS=""
-IUSE="+compiler-rt libcxx openmp +sanitize"
-REQUIRED_USE="sanitize? ( compiler-rt )"
-PROPERTIES="live"
-
-RDEPEND="
-	compiler-rt? (
-		~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
-		sanitize? (
-			~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
-		)
-	)
-	libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] )
-	openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )
-"
-
-pkg_pretend() {
-	if tc-is-clang; then
-		ewarn "You seem to be using clang as a system compiler.  As of clang-16,"
-		ewarn "upstream has turned a few warnings that commonly occur during"
-		ewarn "configure script runs into errors by default.  This causes some"
-		ewarn "configure tests to start failing, sometimes resulting in silent"
-		ewarn "breakage, missing functionality or runtime misbehavior.  It is"
-		ewarn "not yet clear whether the change will remain or be reverted."
-		ewarn
-		ewarn "For more information, please see:"
-		ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213"
-	fi
-}
diff --git a/sys-devel/clang-runtime/clang-runtime-16.0.0_rc2.ebuild b/sys-devel/clang-runtime/clang-runtime-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..b4fc2669d5d7
--- /dev/null
+++ b/sys-devel/clang-runtime/clang-runtime-16.0.0_rc2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-build toolchain-funcs
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+
+LICENSE="metapackage"
+SLOT="${PV%%.*}"
+KEYWORDS="~loong"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+	compiler-rt? (
+		~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+		sanitize? (
+			~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+		)
+	)
+	libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] )
+	openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )
+"
+
+pkg_pretend() {
+	if tc-is-clang; then
+		ewarn "You seem to be using clang as a system compiler.  As of clang-16,"
+		ewarn "upstream has turned a few warnings that commonly occur during"
+		ewarn "configure script runs into errors by default.  This causes some"
+		ewarn "configure tests to start failing, sometimes resulting in silent"
+		ewarn "breakage, missing functionality or runtime misbehavior.  It is"
+		ewarn "not yet clear whether the change will remain or be reverted."
+		ewarn
+		ewarn "For more information, please see:"
+		ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213"
+	fi
+}
diff --git a/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230211.ebuild b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..67b42357665e
--- /dev/null
+++ b/sys-devel/clang-runtime/clang-runtime-17.0.0_pre20230211.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-build toolchain-funcs
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+
+LICENSE="metapackage"
+SLOT="${PV%%.*}"
+KEYWORDS=""
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+PROPERTIES="live"
+
+RDEPEND="
+	compiler-rt? (
+		~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+		sanitize? (
+			~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+		)
+	)
+	libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] )
+	openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )
+"
+
+pkg_pretend() {
+	if tc-is-clang; then
+		ewarn "You seem to be using clang as a system compiler.  As of clang-16,"
+		ewarn "upstream has turned a few warnings that commonly occur during"
+		ewarn "configure script runs into errors by default.  This causes some"
+		ewarn "configure tests to start failing, sometimes resulting in silent"
+		ewarn "breakage, missing functionality or runtime misbehavior.  It is"
+		ewarn "not yet clear whether the change will remain or be reverted."
+		ewarn
+		ewarn "For more information, please see:"
+		ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213"
+	fi
+}
diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest
index d97119de4381..7c5e24a7cfa2 100644
--- a/sys-devel/clang/Manifest
+++ b/sys-devel/clang/Manifest
@@ -9,14 +9,15 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 EBUILD clang-14.0.6-r1.ebuild 11939 BLAKE2B ef1d63a056e0a183ee377e041f78d04c05c90a1242cd860e118f24f195c53dcb79d758b80e1f8f29d46bb15a55fa804cd4f6b71415a08f3f23bca4003b708a09 SHA512 49059b0c924c23d72cd1db553d83114568b75e5cf485230ab4b70a8e62ed63fbe513c67cecfcb2d64826818af6d5e391bc8e056ae2162e1f36a25320c3d103d5
 EBUILD clang-15.0.7-r1.ebuild 12334 BLAKE2B 202bb7812b97a83f6391fa264d261905cb0b91cf28e68b83d3d793b4590b08278e960ce5f7810ea3042b99f90ca63ac758850ca61c312c87488bf9941ad5b248 SHA512 b5dee261a96ed7a514277743fb4a06907acedb553ed0a3c99171698240bfc6a7a19b8f6e0392e1b69b55a5b51e65ae96d1c9dc91b655d8de2f485b1b11a8dec5
 EBUILD clang-16.0.0.9999.ebuild 12029 BLAKE2B dbfa7cb9115b0f9e4c04a9cae79fe0834a7692deaf9b7a7b96164bba943de6efce94dbeeb4d940b1b8feca2ad400bd62b6c935fa686a28b6bd9e9245d7d988f0 SHA512 97d6102649a37c1dfc9876834f2a36ebc69042cfcf70924a35fa38fdb892401c481c18f426ecbbb94059fbda7cf52dc3c06b5c72ed4d18a619803e1c77900bff
-EBUILD clang-16.0.0_pre20230107.ebuild 12108 BLAKE2B 63f8b22b4f154bb3ad33259f56288eb67db50171a22e2446ccf951e5a7feb62a12db4c72a4296ad8d2f6254d1613d0a945d8f169e20a3865170d048d51e37b08 SHA512 03e64c79d0ed3ae47029a238fda98116b60f2f7a83f6a96dd639d31c1cbd30a7eb50d30a66d5642ab257bc6fa65b9eab2608c5f4af3505fb4e016b4d1c043a09
-EBUILD clang-16.0.0_pre20230127.ebuild 12029 BLAKE2B dbfa7cb9115b0f9e4c04a9cae79fe0834a7692deaf9b7a7b96164bba943de6efce94dbeeb4d940b1b8feca2ad400bd62b6c935fa686a28b6bd9e9245d7d988f0 SHA512 97d6102649a37c1dfc9876834f2a36ebc69042cfcf70924a35fa38fdb892401c481c18f426ecbbb94059fbda7cf52dc3c06b5c72ed4d18a619803e1c77900bff
 EBUILD clang-16.0.0_rc1.ebuild 12035 BLAKE2B 933bde95b6da71d5e0157e861e65022504bef6d7f500e514d051aadf35dea3adcafd88686e3746a9c9a4e9da73e1b228a60b43f89a599031d380336f6c285b84 SHA512 7132f1a2d846ba4061a59477f1ef14fa3fc40192c8d5fe24018a5edcd6ec5c4ee1688eaafad4ff44cb4ea95e67ad6c4d35f405aa486c4a94b232032d1bb6b696
+EBUILD clang-16.0.0_rc2.ebuild 12035 BLAKE2B 933bde95b6da71d5e0157e861e65022504bef6d7f500e514d051aadf35dea3adcafd88686e3746a9c9a4e9da73e1b228a60b43f89a599031d380336f6c285b84 SHA512 7132f1a2d846ba4061a59477f1ef14fa3fc40192c8d5fe24018a5edcd6ec5c4ee1688eaafad4ff44cb4ea95e67ad6c4d35f405aa486c4a94b232032d1bb6b696
 EBUILD clang-17.0.0.9999.ebuild 12029 BLAKE2B dbfa7cb9115b0f9e4c04a9cae79fe0834a7692deaf9b7a7b96164bba943de6efce94dbeeb4d940b1b8feca2ad400bd62b6c935fa686a28b6bd9e9245d7d988f0 SHA512 97d6102649a37c1dfc9876834f2a36ebc69042cfcf70924a35fa38fdb892401c481c18f426ecbbb94059fbda7cf52dc3c06b5c72ed4d18a619803e1c77900bff
 EBUILD clang-17.0.0_pre20230203.ebuild 12029 BLAKE2B dbfa7cb9115b0f9e4c04a9cae79fe0834a7692deaf9b7a7b96164bba943de6efce94dbeeb4d940b1b8feca2ad400bd62b6c935fa686a28b6bd9e9245d7d988f0 SHA512 97d6102649a37c1dfc9876834f2a36ebc69042cfcf70924a35fa38fdb892401c481c18f426ecbbb94059fbda7cf52dc3c06b5c72ed4d18a619803e1c77900bff
+EBUILD clang-17.0.0_pre20230211.ebuild 12029 BLAKE2B dbfa7cb9115b0f9e4c04a9cae79fe0834a7692deaf9b7a7b96164bba943de6efce94dbeeb4d940b1b8feca2ad400bd62b6c935fa686a28b6bd9e9245d7d988f0 SHA512 97d6102649a37c1dfc9876834f2a36ebc69042cfcf70924a35fa38fdb892401c481c18f426ecbbb94059fbda7cf52dc3c06b5c72ed4d18a619803e1c77900bff
 MISC metadata.xml 1600 BLAKE2B 8e49e099132445cf695e904acad8a699f3d8c4c1e4cd6ba9d0b97180dfa5b67e9c30b00d1e4cb6cd2f61b27f022accc8d6ee889c6569fc58fbc058186ad216fc SHA512 96b7cf4988ff1fd923ec87311caed458b64888b5acaaf20cc1ad893f2a963158f7f59398f9fd4f9e65cab3df265c0d002048ff874f7a76b94f36377bf9e8f5f6
diff --git a/sys-devel/clang/clang-16.0.0_pre20230107.ebuild b/sys-devel/clang/clang-16.0.0_pre20230107.ebuild
deleted file mode 100644
index f6e6fd239ce2..000000000000
--- a/sys-devel/clang/clang-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,473 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake llvm llvm.org multilib multilib-minimal \
-	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="~loong"
-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}
-	>=dev-util/cmake-3.16
-	doc? ( $(python_gen_cond_dep '
-		dev-python/recommonmark[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	') )
-	xml? ( virtual/pkgconfig )
-"
-PDEPEND="
-	~sys-devel/clang-runtime-${PV}
-	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=(
-	clang clang-tools-extra cmake
-	llvm/lib/Transforms/Hello
-)
-LLVM_MANPAGES=1
-LLVM_TEST_COMPONENTS=(
-	llvm/lib/Testing/Support
-	llvm/utils
-	third-party
-)
-LLVM_USE_TARGETS=llvm
-llvm.org_set_globals
-
-# 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).
-
-pkg_setup() {
-	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-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
-			c-index-test
-			clang
-			clang-format
-			clang-offload-bundler
-			clang-offload-packager
-			clang-refactor
-			clang-repl
-			clang-rename
-			clang-scan-deps
-			diagtool
-			hmaptool
-
-			# 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() {
-	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// /;}"
-
-		-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
-		# libgomp support fails to find headers without explicit -I
-		# furthermore, it provides only syntax checking
-		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-
-		# disable using CUDA to autodetect GPU, just build for all
-		-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
-
-		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
-
-		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
-		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
-
-		-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}
-
-			# Hack to install clang-tblgen: https://reviews.llvm.org/D141092
-			-DLLVM_BUILD_UTILS=ON
-		)
-	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 [[ -n ${EPREFIX} ]]; then
-		mycmakeargs+=(
-			-DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
-		)
-	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
-
-	# provide a symlink for tests
-	if [[ ! -L ${WORKDIR}/lib/clang ]]; then
-		mkdir -p "${WORKDIR}"/lib || die
-		ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
-	fi
-}
-
-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/llvm/${LLVM_MAJOR}/$(get_libdir)/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-16.0.0_pre20230127.ebuild b/sys-devel/clang/clang-16.0.0_pre20230127.ebuild
deleted file mode 100644
index b45257440e78..000000000000
--- a/sys-devel/clang/clang-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,472 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake llvm llvm.org multilib multilib-minimal \
-	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=""
-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}
-	>=dev-util/cmake-3.16
-	doc? ( $(python_gen_cond_dep '
-		dev-python/recommonmark[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	') )
-	xml? ( virtual/pkgconfig )
-"
-PDEPEND="
-	~sys-devel/clang-runtime-${PV}
-	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=(
-	clang clang-tools-extra cmake
-	llvm/lib/Transforms/Hello
-)
-LLVM_MANPAGES=1
-LLVM_TEST_COMPONENTS=(
-	llvm/lib/Testing
-	llvm/utils
-	third-party
-)
-LLVM_USE_TARGETS=llvm
-llvm.org_set_globals
-
-# 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).
-
-pkg_setup() {
-	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
-	python-single-r1_pkg_setup
-}
-
-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-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() {
-	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// /;}"
-
-		-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
-		# libgomp support fails to find headers without explicit -I
-		# furthermore, it provides only syntax checking
-		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-
-		# disable using CUDA to autodetect GPU, just build for all
-		-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
-
-		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
-
-		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
-		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
-
-		-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 [[ -n ${EPREFIX} ]]; then
-		mycmakeargs+=(
-			-DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
-		)
-	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
-
-	# provide a symlink for tests
-	if [[ ! -L ${WORKDIR}/lib/clang ]]; then
-		mkdir -p "${WORKDIR}"/lib || die
-		ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
-	fi
-}
-
-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/llvm/${LLVM_MAJOR}/$(get_libdir)/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-16.0.0_rc2.ebuild b/sys-devel/clang/clang-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..c89f4249a8ad
--- /dev/null
+++ b/sys-devel/clang/clang-16.0.0_rc2.ebuild
@@ -0,0 +1,472 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake llvm llvm.org multilib multilib-minimal \
+	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="~loong"
+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}
+	>=dev-util/cmake-3.16
+	doc? ( $(python_gen_cond_dep '
+		dev-python/recommonmark[${PYTHON_USEDEP}]
+		dev-python/sphinx[${PYTHON_USEDEP}]
+	') )
+	xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+	~sys-devel/clang-runtime-${PV}
+	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=(
+	clang clang-tools-extra cmake
+	llvm/lib/Transforms/Hello
+)
+LLVM_MANPAGES=1
+LLVM_TEST_COMPONENTS=(
+	llvm/lib/Testing
+	llvm/utils
+	third-party
+)
+LLVM_USE_TARGETS=llvm
+llvm.org_set_globals
+
+# 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).
+
+pkg_setup() {
+	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+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-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() {
+	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// /;}"
+
+		-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
+		# libgomp support fails to find headers without explicit -I
+		# furthermore, it provides only syntax checking
+		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+		# disable using CUDA to autodetect GPU, just build for all
+		-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
+
+		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
+		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+
+		-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 [[ -n ${EPREFIX} ]]; then
+		mycmakeargs+=(
+			-DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
+		)
+	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
+
+	# provide a symlink for tests
+	if [[ ! -L ${WORKDIR}/lib/clang ]]; then
+		mkdir -p "${WORKDIR}"/lib || die
+		ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
+	fi
+}
+
+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/llvm/${LLVM_MAJOR}/$(get_libdir)/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-17.0.0_pre20230211.ebuild b/sys-devel/clang/clang-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..b45257440e78
--- /dev/null
+++ b/sys-devel/clang/clang-17.0.0_pre20230211.ebuild
@@ -0,0 +1,472 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake llvm llvm.org multilib multilib-minimal \
+	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=""
+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}
+	>=dev-util/cmake-3.16
+	doc? ( $(python_gen_cond_dep '
+		dev-python/recommonmark[${PYTHON_USEDEP}]
+		dev-python/sphinx[${PYTHON_USEDEP}]
+	') )
+	xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+	~sys-devel/clang-runtime-${PV}
+	sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=(
+	clang clang-tools-extra cmake
+	llvm/lib/Transforms/Hello
+)
+LLVM_MANPAGES=1
+LLVM_TEST_COMPONENTS=(
+	llvm/lib/Testing
+	llvm/utils
+	third-party
+)
+LLVM_USE_TARGETS=llvm
+llvm.org_set_globals
+
+# 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).
+
+pkg_setup() {
+	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+	python-single-r1_pkg_setup
+}
+
+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-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() {
+	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// /;}"
+
+		-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
+		# libgomp support fails to find headers without explicit -I
+		# furthermore, it provides only syntax checking
+		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+		# disable using CUDA to autodetect GPU, just build for all
+		-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
+
+		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
+		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+
+		-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 [[ -n ${EPREFIX} ]]; then
+		mycmakeargs+=(
+			-DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
+		)
+	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
+
+	# provide a symlink for tests
+	if [[ ! -L ${WORKDIR}/lib/clang ]]; then
+		mkdir -p "${WORKDIR}"/lib || die
+		ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
+	fi
+}
+
+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/llvm/${LLVM_MAJOR}/$(get_libdir)/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/gcc/Manifest b/sys-devel/gcc/Manifest
index ff186ec6ab55..cc8785f79ee5 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -4,6 +4,7 @@ DIST gcc-10-20221208.tar.xz 72098912 BLAKE2B 8167b3d91fb95c727caa3a76d8bd6d70e0d
 DIST gcc-10-20230119.tar.xz 72112952 BLAKE2B 6e28cba9f6ff5c9f9231828bb400c82b8658a4f9c0166c28a6a12d71728d4460904152a8c84bbeff88c06b7f9378937b7b61bf4a871a10c56bd005170dc5fde2 SHA512 6cbb567ef1da1b6fa65892b6e71c3b7cd37e0c483e049720ea1987d444a0e7b4eb15d1e99f4e35995acdce560a811a779574eeba52bb252c61325accedd6a5c5
 DIST gcc-10-20230126.tar.xz 72121284 BLAKE2B add27f5cacaf5c36c4c54e2c71f6e60edd03242bf52e1729aa708cc6d927814f3640cccbf9711d105c252b90e980e0ab071a2204c7859045c35bacaac9664c7a SHA512 619f73041be838b0e48a10f5dbe4bb775367fc13511f4b98d65c4336b397f1ccae2df64f11b7cd066e2635783b2d61f815c3ab0a6478ec3c98dd7b33728d2ae5
 DIST gcc-10-20230202.tar.xz 72116996 BLAKE2B 79e06176ee536d4f313f68838fad5b26d087054ce477a394d35b3726ba857e203201dd4ad6a41004b47031fd40735c382c604f8645e15b817d37e48bf722f42d SHA512 c904bdc5874cdc723d1e6d781961ffa3f9ccc3847b0edc6a498cfb740846b77bd4516b4d6c8342938febea9dec2aa4ec5d5f361d14b54fa8b789136909a682e0
+DIST gcc-10-20230209.tar.xz 72120748 BLAKE2B 618cc9d70ead60a978e81f1b71cf9f78b1619c3b1322f321d73de1891c6e841ca771e35fefb5905d56540bcff5857682eb4adfa134588e5afd26cda2ad8e8142 SHA512 ff78b3f57ed2121c484f8dbea9c3024aa039affcec3b04738f92fc6f80696b02aea9ecd0fc72c6fec1a1a3a47a912381b89a332a44421c39506493d89d766d91
 DIST gcc-10.4.0-musl-patches-1.tar.xz 3808 BLAKE2B 804d1fcc451dcd03be71240dd498ec2d179869571d44012967c48dccf5a478dd8c55000a964a80fdd5584d739a777dee1c83241cffce514ef002df2572854a67 SHA512 83e4a9c0f7062baf0c606a2bcc56a818494991403d7577dea65f04bbc25bdb786a5889b80d45d80e7f4be07c1aef786802cbfcfafd1a17ec255a2d4e93a77570
 DIST gcc-10.4.0-patches-5.tar.xz 17056 BLAKE2B f336d69a8ad105b8c4a84e8248a5b8a88175d3f1d67d32c6bee1780d252d86947059bd624992e6292610e86c9012f4d901a1a54df0d184dd023d404a0707700e SHA512 aa8fb42f20587f8519e7b06037da4d8f7d386b63e228b239a0445a51df4e401940fcd81482381d966622054aef3e0db06d1def5c74ac3d3dcc9c75c3b966c758
 DIST gcc-10.4.0.tar.xz 75018092 BLAKE2B ec1169025d3896b70ab80a4b8ce5040763a95529fc7e120c6bc3a3eb1db5cf938ebde347c1e595a8ff7d4081e79ded6252702d7a1a09648449b7a0783188e434 SHA512 440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3cd7bf795e72fcbead59cdef5b6c152862f5d35cd9fbfe6902101ce648
@@ -15,6 +16,7 @@ DIST gcc-11-20221209.tar.xz 76240768 BLAKE2B 3be0f1ece4473bbbf10f7242102f330a6e2
 DIST gcc-11-20230120.tar.xz 76201244 BLAKE2B 07bc819dad3e2ee3747f09f43fd73a4263f06274362728174b32d9ead52ea95c25ea6a192397378b9b4c4f958285d97488d28e425c26129d23f143b1a8668fbc SHA512 81f71aeb706b4ccb89e2af5201770fd72cc3190b9b5eac0b5a25a522626b9c4015a2e5d13e4bd1360ac0f7f1be27df51fc530c15ce3c3d782f39f34d5c58803e
 DIST gcc-11-20230127.tar.xz 76128480 BLAKE2B 4fdff08bd120fbff1b1e87d09606a9049fa28f456444c07c5d0dc3738216be3c2b418137bbb57ac79e584b68cf277033707c63a5e2ecb75497f3778f7cf3fef6 SHA512 772f4ea802aba04a63a50272b59c293b0f1a143c00b88beae98c9bef4ef3a36ad4fd50ec670113d1d031e831262fe50e0b1017536f02c8553be61b05708678b8
 DIST gcc-11-20230203.tar.xz 76157392 BLAKE2B ed70b6c94d5440e647881e1e026da75547c9dcbb677d7d6f67aa89a04edc64d64b88eb14bf644c78f46b5c45c1d58f1f38f99c1bda913c42303fcec3ac329aa7 SHA512 125437acd0e1d14204542965d52392e7ed3cbe369f85ec43fa1278c536039f9eb2ce1af28a1c31b67573dcac15da432fb7a61d1c236b30eaca5ca9774ea41aa9
+DIST gcc-11-20230210.tar.xz 76141600 BLAKE2B 04fc4d3cd23ce3abc47adaaf256fcde56891b1dd1ee70906714e92f4dadd2ae1f40852c17e17a8814bc1f5e642137d0f9660d410dc7f93b4541372895b99d617 SHA512 714eff2d949a615049aa2ac3a98fc4546dd8a0d94975fe69de411056dd540ecb9fd3d13818c213f2c407b737af5ca0028247769dbe3bd0493a97d2b80e6975e5
 DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c
 DIST gcc-11.4.0-patches-3.tar.xz 15200 BLAKE2B a393df941a2a31164f477d6bc0032e28319e8f0bd87200eb453708f85aa8c0bf5d67e733ee7b75cf6d14743e18cc941cee1b77a8247f8c5683d17a98cbeb280f SHA512 6f6096d95c7c62780d1070097739882393a8df5172c3a5ae811a8d4d1c98a0cd14a34f3f7e95410c8f210aec434330ac3b8876c688faeb130d7bb8fa3333ece9
 DIST gcc-11.4.0-patches-7.tar.xz 14416 BLAKE2B 3ebf62cba04cac8830a93a99d11c21347c38891db3a81493a10e02e8b7af0c86389ffbede50672dfe1189a77a67b832f8f97a1d95d43eff11db131a143b1d03d SHA512 41e2ed1ccf6d3631accccdab057877c79c99eb1b3c32f9d35628bca6c633c4f8dadb1d7f93bed2e4d7ff9f36cc9e46ea00f0e57e8af64b2e5f4b3b01285c6da3
@@ -23,11 +25,13 @@ DIST gcc-12-20221126.tar.xz 79631864 BLAKE2B 3bb97ef4a1a17ab8b92b431b1f792c11131
 DIST gcc-12-20230121.tar.xz 79652428 BLAKE2B f4f0e6474d179454dc56dd05c823fca919a894e9efdc64625bb13045c7bd549a7bab59dfb4052d45d594d4484801ab5b18cf3f3d6277be54eaec24a53abd439c SHA512 b6c2486916418a64fab64c3655329bc18ca93ee4eca240e8779bd6d8280124fcd07b1aa8eff979fd317656646ecdba9353107887338354d8bd2c1f68c1609349
 DIST gcc-12-20230128.tar.xz 79655464 BLAKE2B 6c4c6397749a3c9d11af8dd6ca1bd39312a9b06289f1f41fcf21df0cb55e3ab0b6e0efe44f4b8656ad41d6d49f6443ddda454ea5bbc956ef116cc011befe25c1 SHA512 7086b66509a9f7080805d9c4f8abf463c8e37729158eb2da60d9de97f9cdfd8664fe481a75c3730b78e12812bc9711c29554370f1af227c664ee6d3cf8708ede
 DIST gcc-12-20230204.tar.xz 79685036 BLAKE2B cc602a3a48566d188e0751a5a2bcf3d88fd055431f3e8765039f10d66ebccaf8c469c7fe3ca7fa7c3bc98fbc60f070590863af19a0148abc5ef7de44bc45a376 SHA512 4b251c255844d263122056ca559badcfe33b0b96f2c8ab6d4cd4c197bd183559df51ceac5ba14bae5f48a9db923fcfcab0c9e7f54d45b7be1aa806702b639ed4
+DIST gcc-12-20230211.tar.xz 79698020 BLAKE2B 0de8d0b8f8823276fc7b0c70225a1c957455645cafd9c46ab8d3cd80d4e641a0d48df03a9d1d5206fde65e9f0dca09a481311b9b68a7993899e4060d44e08cf6 SHA512 6ae3979cfff1376ba2ea639d9a01428e55a67a2cc6582bc77a476b050bfd3ba00e078907067b74a1f59188014febc3fd1e4c5e98fae00421e0c82c9db54f1028
 DIST gcc-12.2.0-musl-patches-7.tar.xz 3652 BLAKE2B 295ea907efea854a3c2447d472bedb24714d78b7b725476b1eac3898d89c0c549da8e69db28911205bb3293f62cf344a90ade0898ecf5fed57ff00fcf8547a9f SHA512 7a7a440bc08de8dcb37c080ea0c27904adaaadaaaafaab24d90becd2d009243dcfc886d8f674ce3ccddb4ebb5ad17f04d841064d9ec2e2e2e96a1afac3002111
 DIST gcc-12.2.0-patches-1.tar.xz 12864 BLAKE2B a5ae0a85dfc1b6f0bd968f0d5262ebed14ec9cdb3249e3a4c571578c54eda0e53708ee7fe8e03e506366c7f3cf7926eced9b390d9dee948c1249298c0fabd9fb SHA512 f3d793b89a2a0385d596162fb0c653d4acdf21ae418cb792c1786a01fde0391bd0719715dbf07d53636f127168f5cd99108a1dc11cf6cea889b7d82385bcc258
 DIST gcc-12.2.0-patches-10.tar.xz 14252 BLAKE2B 99368db982227728a6a9e2b1f694999f041f38db4a3806b6a740c86218735f9b561197bc150423a3caad0b5fd335c95d1aca130a519754423cd44a083e655373 SHA512 f7f0d8185e908926046f579793dba5916dc27392b85bfe50a7e70c213c3ba29479dfdb1b27514765b76bc897c4dbb530680e59c4deca7a245a808ed566120e4c
 DIST gcc-12.2.0-patches-11.tar.xz 13652 BLAKE2B 3747d3e337ec2f2758fba90f5ffffb1ff62129e5752031c43934211806d96e1153039e4cd6d8d28c19fdf5d5f0d1f4875388dbb177a300aacd50124e38a7ed7c SHA512 50f9a6b0bd8b18dfb0bdc0a7179f26bd4cf8de7970c0b64a0cd9c8c92c002708ae961b9c904b735f15f827b3b8dab447515112d9b64e8f59568eb1e208029277
 DIST gcc-12.2.0-patches-12.tar.xz 15880 BLAKE2B 312144c6d881a7fbc1dd078a8d7c410a0354980ea58d31b24b377cda38383c04ac6392f5fd780ec0a7483232019cb90271fdc2e0c8b5d4556ccd1baa96de0720 SHA512 68c7352c661d74c159f20eb5ab9a6f8d95cac728e40fdb32cd61dd476feaf6caa0bdd917c6f1e3d915731533c7937eb96a49c1f39b9c2be86bb3f63079493540
+DIST gcc-12.2.0-patches-13.tar.xz 13756 BLAKE2B df0388a669458f2991951d2f4027badbff3f802e6a0422478206b5cdda76e70b531a474d2ac42817e9e7f8200e9ac35ca8276af539839b4ebb2e22903ec25a23 SHA512 2970de9d2806d59c5d0f77e66000860c816ebd674489db8114f48f6aa11575644154431480222580b520b9e312647b06f94ab38959a49a8cda818158d6babf1d
 DIST gcc-12.2.0-patches-2.tar.xz 13952 BLAKE2B a9e798911acaf45c3f585f69721130cfbecec016727a50ac0f4767b37a2ab9df39e0828abb07f1e429619cc102808f81af8422fef0265415c287d303d9d97fc0 SHA512 1808a05e98094577099d115ff5f3e136e3fc8f39fbe35c5183fd7775383f94439212e5e4174ab8d0ae8c0874e227ff84a958ffdfa1c99c9a8306a9842d126ef9
 DIST gcc-12.2.0.tar.xz 84645292 BLAKE2B 715574af9ad678f9dc8cfd19c866bf910c7edfd479e7e9681337feaa9b54e5d304ddb85483816b8d89754d502405823ae2eff0d1e444538763f40be8e428d8da SHA512 e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173
 DIST gcc-13-20230122.tar.xz 82869800 BLAKE2B fff4bee436910ba587640600a95c2a89ddec415e12f629c941c8b27d28202c62b39dac2ca0b5d82d9fb4ca271310b178e89202f488f5ef4a7fbc63cd3ecfd7d7 SHA512 a24c0acedc81f72104fe13aba7403ee8920949089971aad5a296de7b46b8969d82b77df92bfd4ef2537b2e5c2010b72d3a33e3bf35ff734d9c49a7a1746026b5
@@ -37,20 +41,22 @@ DIST gcc-13.1.0-musl-patches-1.tar.xz 3528 BLAKE2B c572ab4a0fb929b16ec36b3a3616c
 DIST gcc-13.1.0-patches-5.tar.xz 11404 BLAKE2B 5ba2b4002e917750757a28fa4c7ff6ff7090c35f28eb984aee6ad7fc0ac80c88a9d08e1d4d9efa98e6bd3f06e89df47b10b51f8294bb7d2ef0d1ac3fd2a1a963 SHA512 6864738794237bd7430c612404dd4b84e275362cb5abd081284a91e5b24c1b0aa97d90b9543168c72147be146887219715325d52ae2920912d9c4e17e7224aa3
 DIST gcc-13.1.0-patches-6.tar.xz 11552 BLAKE2B 65ad3f4f9f767712ba11146edc25c7cc8ceb66a42f031059f904a4bb36171065489f4b72f55f85665fac275c11bf1f9a19d546747eaba7d835d2bdccf4211db7 SHA512 4d8f7f59469a64ca541a62bb48983603db540434c5763dd157960f176b05f69360a36a0b057263e6c21148a74ec5e3eeb78f8eef0924a3a4f6af1c83bbcb1c67
 DIST gcc-13.1.0-patches-7.tar.xz 13472 BLAKE2B 186d2c4144759ceef40d7dcffb44a1b0b63b641fc7d11144444991f0f6dd25e00ae0561ce4a1f54231216d089f63557b3758c881b6b3aca7e940c18b9308e2f2 SHA512 6f793e0ce69f52b73289f1d8bc6e89ab84c380c3fe311740e31890001412643a49a4865fb33a3403ce229e5d5060157edd438a5f3d7621b4fc1b9f98aa6c9969
-DIST gcc-8.5.0-patches-2.tar.bz2 16921 BLAKE2B 619a47f74edf05fa01c9de59d0ff7abb027a01cf0bdec91ac41046166192f4eae561684136c4a6a5e077f64754bb5b0710905129f31b0def21d88f92e6bba7fb SHA512 b6095d4570895e2c4dd58fed5756194aea27391b813e5e2de42b2749cb318c4bea2087eb0ff92c70e7f98ae4482c49d476db57be83d7beb19fd462aa61714ab2
+DIST gcc-8.5.0-patches-4.tar.xz 18616 BLAKE2B 7594cbaea5daecf1a0b3d526c06aeba0a84c6da66aee2e105a51fda6be8d30a37ccc3814281b284a4582d892a1d556bca063551584edfc2525bed8ea5b6888e7 SHA512 1aa5742c361186637e7855f06feb1a4547e7d4d5de6e51f3d049e0ef3c19e2eff179465f52781739f59422035b7f8e4c0efa3844849f920f3c96acfdc37ca6a6
 DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8
-DIST gcc-9.5.0-patches-1.tar.xz 13772 BLAKE2B 2e2e84a28a729cd271a23716ff3fe08b7209b72254af279f04dd15dbd39482fb7d905dc9293dc326536e14bca9a53397bd7e1c4b617ed8cbe42bcf617fcce3fb SHA512 50e292e665bfae18bf71c0714074025b4f7cb87042862071815874f7c5b241acac3b8f60d85b8970b11978103c2e7616c02d789f6c3b091d7b736b65c535b743
+DIST gcc-9.5.0-patches-2.tar.xz 14324 BLAKE2B 1d3bf3e673108ad2fcdcb86daefb4603d1c9f6aa815e34d1591054d466b76d6f50cce124ab4760528c4951ea16eb00888a3e6485417f81ebf250548732df4a8e SHA512 a6d6f650aaf0bd193a17ac279649f0544a282cea295824384c59341c3000eac4b574b60e00dd427585d928f9768166abf85168b47772132790ad98854acacbbf
 DIST gcc-9.5.0.tar.xz 72462752 BLAKE2B 69e39314ee6bb46e3be491ba9c3cbc4914cb716f732c6d3f2b14d9382750b40c4f14b5d3051225b81f936ef8297b0ba8cb5439512e961dae5815d3bee2b0bfdb SHA512 cdd144ce4f747e051480410afc8506c90a57cb45da89071ddae377b1453bca3014422455ade9fe4563ebe51f4b6348cbc0c61905a9b8801cd597d51ad0ec62b3
 EBUILD gcc-10.4.0.ebuild 1445 BLAKE2B 05518ec2cdf0180f4db63dcab413097ca777381b496d6b7b7cebc0bf2b04395d14b74daa398ea2e2d916df4f6034357cfc740939e0fb346bbea71a8a09603fbb SHA512 8fd4642dd974006efe35f6d45ebfda66fe5dac0d4e2371804ede5d94e6e820b95cedac08c11de766c0c711bef7c55900cdaeaffe889691f7acd7470c32e7e3b4
 EBUILD gcc-10.4.1_p20221208.ebuild 1446 BLAKE2B 1e265df2e3abb14402a3f6d7962a88def0b2cc6100edf51ee6398b4b446699fefec054ecfa94bb8d2e0d06205ee44afd44755e979871eee3b5506532d95d1123 SHA512 d40abd3dab6fe7bfc5386a8db768d7f82f8d2781c608c494c43577d2910ad762949a723a2b6cb1492a3d7c2d465e522d91df8eec0ee3330ae2e0120956fa36f0
 EBUILD gcc-10.4.1_p20230119-r1.ebuild 1447 BLAKE2B 645584f005ea2c00aafb7d688c308eb353301561c14e4f1b8f6b2fba9ef645cdf88772ef2713314b596234cbca085bfae074dd3eb391b9668f3a841f4e840edf SHA512 b6ee5ab2ac7f7af53267604af3da1a48baf10b66374afc6661c9ba237dc6da218c6627b0d73b66a520a956d895bded906b10a300fe35fbcb293f6b20af42a27f
 EBUILD gcc-10.4.1_p20230126.ebuild 1450 BLAKE2B a8780add2581289fd13d164d00ffa36b41c28ef064414101028b5950d5c08765c2e0c35444bd8a288395cd15ddf3f5e08a5adffc052c3e296d929cc8f71a50a6 SHA512 8fb960dfc184541d9a7e847b9faa36b8234ea824456cd3ab98d3004f5bf1fdf22dfcbce63f94ad06a188bd34e9cdcacbd717eb7558559d78f780b2efc476d794
 EBUILD gcc-10.4.1_p20230202.ebuild 1450 BLAKE2B a8780add2581289fd13d164d00ffa36b41c28ef064414101028b5950d5c08765c2e0c35444bd8a288395cd15ddf3f5e08a5adffc052c3e296d929cc8f71a50a6 SHA512 8fb960dfc184541d9a7e847b9faa36b8234ea824456cd3ab98d3004f5bf1fdf22dfcbce63f94ad06a188bd34e9cdcacbd717eb7558559d78f780b2efc476d794
+EBUILD gcc-10.4.1_p20230209.ebuild 1450 BLAKE2B a8780add2581289fd13d164d00ffa36b41c28ef064414101028b5950d5c08765c2e0c35444bd8a288395cd15ddf3f5e08a5adffc052c3e296d929cc8f71a50a6 SHA512 8fb960dfc184541d9a7e847b9faa36b8234ea824456cd3ab98d3004f5bf1fdf22dfcbce63f94ad06a188bd34e9cdcacbd717eb7558559d78f780b2efc476d794
 EBUILD gcc-10.5.9999.ebuild 1108 BLAKE2B 2db612df53fbaec59c707acb56bac804a4ee797d156ea3dfca6396d27268385f1d5177c44bd58a926c981ab1c0c7b7adf5e4ea060a65a9e84e7f8ed1713701b0 SHA512 5193d1f4359ef8963645d25150731ab1929801eae16e94ddef3fb0169ed365d2ac43765a2d4848966508144e121b8b24feccbe66f59ee9363764d5a3db79f946
 EBUILD gcc-11.3.1_p20221209.ebuild 1286 BLAKE2B 858c85e2f1d3b08ed7df5b1ab5278b615267b97618a16412f1c5b52e3ac52e553fbbc946e346a0ccbbfa18665303541be8c6f0306502c1e52b91be65728ebc50 SHA512 0fbf7deeb7df4aaa8a24d7c691b7413c9003e5bd208893921fb97d6393412dbaedf51c2be1d6cd3d05f90984a7bfd545c8f5dbfad996c158451be25bdb9f062b
 EBUILD gcc-11.3.1_p20230120-r1.ebuild 1288 BLAKE2B 2cdae6459f524b1dc5c1d402e2545fd9d173439d779568a6aebb6505a374834eeeb430fdd51ec77185c2376ab6a5d010b4c0430327f84637fb605ebf12f2be64 SHA512 1ec111015625ce45b7cdd8217f914a9c38d708ff2e8c4166ea99d23aea81595778f988811a354bb86e5afb45f328ac00d90bfd1cba74582a171be54fb2eab864
 EBUILD gcc-11.3.1_p20230127.ebuild 1291 BLAKE2B 3396268c2481cd6eab04bbc4be564a6ea12b8b1517ef2efb4ff2953d333dd079843752e4b3c76a9ac4debdfb31a3dd77903ec40786064c0d3131692277329f5e SHA512 8a3fad025fc6a43ff0d38519706b063f320a46bb085ec762ef74e53d272063c067b286cc478b15ed7279a458909c86eecbc611302f28d7edb2515238294a4636
 EBUILD gcc-11.3.1_p20230203.ebuild 1291 BLAKE2B 3396268c2481cd6eab04bbc4be564a6ea12b8b1517ef2efb4ff2953d333dd079843752e4b3c76a9ac4debdfb31a3dd77903ec40786064c0d3131692277329f5e SHA512 8a3fad025fc6a43ff0d38519706b063f320a46bb085ec762ef74e53d272063c067b286cc478b15ed7279a458909c86eecbc611302f28d7edb2515238294a4636
+EBUILD gcc-11.3.1_p20230210.ebuild 1291 BLAKE2B 3396268c2481cd6eab04bbc4be564a6ea12b8b1517ef2efb4ff2953d333dd079843752e4b3c76a9ac4debdfb31a3dd77903ec40786064c0d3131692277329f5e SHA512 8a3fad025fc6a43ff0d38519706b063f320a46bb085ec762ef74e53d272063c067b286cc478b15ed7279a458909c86eecbc611302f28d7edb2515238294a4636
 EBUILD gcc-11.4.9999.ebuild 1267 BLAKE2B 09a26812068945e11164d0a4f8f5cc10dc261a20a647fd4102decc83eecbbe8fcc7f38093609314fa1f26c46164e8248aede741880f7cff64dd5a94836765fa2 SHA512 4ecf698cd6e96dc08683a0e9b69936cdd9085c300d330fb9830cee0e38783e0a1fc8409db39159f9b247f28fc5d7d7572ad3e975f3951f1cb8537f49886bdcde
 EBUILD gcc-12.2.0.ebuild 1434 BLAKE2B 6d074d9c9e2bc3ea20812064a12dbfe53a597e841f32de9a1153e4a0221c0dd66018451fea7c8780fc93370e6c0afeac5dd9539b7a49bf1344fd6ca21f7e8729 SHA512 bff836355012cdae58e473c90b93c9cb9d627c899cd2a9843156d7270029c37dff8d9ba6f12ce304b78fa58ec7d1bdfffb4420d66331bab206b7862251fd17c6
 EBUILD gcc-12.2.1_p20221126.ebuild 1434 BLAKE2B aab865ca5ada835b8689c2768cf9da20fc1aed75b375b74fa242592153997d44924c6c4be7d4ad230650fcb36e22961894098d52008e09c6606629ba650b40be SHA512 eeadbd21f07818dfed588308c38c1c445139a53539756d5015c546bd11d888dce54210778090466ab9084340f244f1789e9b3ca5ca17e10188506b7bd908407c
@@ -58,12 +64,13 @@ EBUILD gcc-12.2.1_p20230121-r1.ebuild 1429 BLAKE2B ff9a7a13e5c5fc57defe20f2cb0c0
 EBUILD gcc-12.2.1_p20230128.ebuild 1438 BLAKE2B 1eb08815be93df4d15e3e15d9bd3b8ce08477d2cb2988bd0d8ef5a034a681e7f7bc311ff7546105fd37a7835912b8225d12dbf131bf574cc1a138ace3f99ca4d SHA512 b6c7607ea1c10d7e34a65362bb787100f02c851b9ef2a6c48e1334ab3a4c8318b2835ac68f8880ea9bb383f61d7e8afbd78166b041992c82cfc385bfa96a8cf1
 EBUILD gcc-12.2.1_p20230204-r1.ebuild 1438 BLAKE2B 92a9d9039e97bcbeea12d0ab79e25e544f2923b46f479b4f467d5092d382750e98b2dc611d6ab1a8931d01ae1fcb79157398edb607bf176cc478a6247220172a SHA512 ce0108843427378fa5b6d2a2459b2653b6e548f4be15b24473c7edc51a7e42bb4fbc08c0a4e02834c81a2fe46543922ac2a10963e050c6ac6085727d3238f0d8
 EBUILD gcc-12.2.1_p20230204.ebuild 1438 BLAKE2B 1eb08815be93df4d15e3e15d9bd3b8ce08477d2cb2988bd0d8ef5a034a681e7f7bc311ff7546105fd37a7835912b8225d12dbf131bf574cc1a138ace3f99ca4d SHA512 b6c7607ea1c10d7e34a65362bb787100f02c851b9ef2a6c48e1334ab3a4c8318b2835ac68f8880ea9bb383f61d7e8afbd78166b041992c82cfc385bfa96a8cf1
+EBUILD gcc-12.2.1_p20230211.ebuild 1438 BLAKE2B 7bb9b18ec1d12eee06f28b76b106e29605c19e6026c18d8bd784fc05cb4a7a3443eb1a04a6c04c2bdda96a8dd0e8afa859082aef29aeb49b13f451ab941788fb SHA512 b6b61b818e4ffd1012c860fe413b9d3437a163d2797b7d1d83a9632cd035db8fb2a976db018356f24b0eb82f52de9297ce9d8b642dae3db04a70bfb3eaef1e65
 EBUILD gcc-12.3.9999.ebuild 1545 BLAKE2B 78fdc4a7b20d22bba137cba00e49d2249c5616bf1c4cf619162da1d98c750fb3da71fbb1cd4e136624cc4e0a112547e6c4c29992aa58ab12507917c7d728831a SHA512 f3562696a79035e64b8e79cee720fe24c7041bf922d79e5cff1ae864a533997995465d0871bfc4f87f6d5a66e7f8ac02c490792554a0628ae30d96a061ef9279
 EBUILD gcc-13.0.1.9999.ebuild 1252 BLAKE2B e8feaecedb676e0ddce69ec0e7fc5e944d8df870ba897a2e495781a0a860c972b013667ffc3b83a2e4da97cd1e8ce69b93fb3d212d5cd9af2fc8e5e3d799f3d1 SHA512 ba91dd930efdbd01f57a95f70e5e9e12fa9e7e1254d574239ecdf0b54d20515ede1df6dffa9772ef590c128fe852e378ae7e2c56d2f8f88db344675b7cc7ab45
 EBUILD gcc-13.0.1_pre20230122.ebuild 1286 BLAKE2B 613958f9d883c696a477fe6d25782dfc6ae9c37af2169c370912eed43e7f21fd33ac2b5640b5cac0cf5ec964efca42ef3d0d1d36c3a372296f45e88c79a51bf5 SHA512 c7e0a73749cc56c95d60d8ed9326cb48d968e1ecb0905b3af6c0024d75e0ee8cbefc5c5ab2fbae6aac32348c51d41cfcaf470180b05243e3a55dd0c46f58f0ab
 EBUILD gcc-13.0.1_pre20230129-r1.ebuild 1299 BLAKE2B 31cc746ae1b283a481a149e056d47f186c0c6a36aa8d289571835e723568ad679878bbca62d6f47e1ea752bef9b44890f99e399874cee53d2230cd534ed26420 SHA512 e336400bf190365230c997e2984e7dc5b99437202347381dd70361c7336729f62119bb521050691e8e3ae94708c94d8ced44a0efdc5f14a75bc55e426643bddb
 EBUILD gcc-13.0.1_pre20230205-r1.ebuild 1299 BLAKE2B 8d2a2fa5c724d29b403bcebef375ddae60547229a0396868170e2a727b18bdcc5887eda8fa9de4f15f19d5082915220666ba225b170c2df240d8af816fe78ab2 SHA512 11c3f1e167f08f068c89525c83274f4d63ea0be2dd9ad709e8b34b09a95ebbfbd103ebd6c083fbaa21ed3695315301f7bd5c64fca9c7b7ddde531cc4f6a37569
 EBUILD gcc-13.0.1_pre20230205.ebuild 1299 BLAKE2B 31cc746ae1b283a481a149e056d47f186c0c6a36aa8d289571835e723568ad679878bbca62d6f47e1ea752bef9b44890f99e399874cee53d2230cd534ed26420 SHA512 e336400bf190365230c997e2984e7dc5b99437202347381dd70361c7336729f62119bb521050691e8e3ae94708c94d8ced44a0efdc5f14a75bc55e426643bddb
-EBUILD gcc-8.5.0-r1.ebuild 473 BLAKE2B 40d3b651d0aed62ceb1df973f1f7e2b6ce419df22da63e49d335fcd0bf7b349d1e7be40dc16e80fe143222d48ac6139d35bf47558d83c30aab4b25dba6fcf6cb SHA512 b88761a3495a1eab0de5321c9230c77cd621ae545d3be49a13273cfcd8e94cc21dbb062bfdebb64dc5bfe1ddd600ee8fb60df6fd7709a7be90915b7e99a8db29
-EBUILD gcc-9.5.0.ebuild 844 BLAKE2B 7bee440ddb624d5489ebaa9be899c530bdf7d9563453a9abf45e60d1f3ed66a78535cb9227e66e93524071fbca447786e2133ea316b5b2b55366e2599c587be6 SHA512 4b578a481eb06ff5b445bbd81cf18d4d63ec2d65230e33f95377f270b391bde02c2083a1b46b43838bd115be7d75c3957258f72fb5e7d89ba79185d08195b9ec
+EBUILD gcc-8.5.0-r1.ebuild 498 BLAKE2B e24f62fdb50bf2e9957cbb85c72adc96d369938a7f552735772de964f7023b8b34bd11e7e544d268cc308e25272084a728bd061f37c568d42ea65d55bb2a2e93 SHA512 f35b353e9f54eb3e1c6f8e0ea262458b41da9bddb993793aff79f765c4d93811744979d34e50c6470a9b2cfb63b7006bd284d819b7a98e56a8b3a34ae570ae76
+EBUILD gcc-9.5.0.ebuild 844 BLAKE2B 719c259a6f39c72f7d1748095a9e649d4ab3dde04b118125313ab9b915eb9cbd038592532185317080dbc46d73a8bd324b498462db73b12d23144cd58378dd9c SHA512 1ed19c79239d155be3b267fcad4d7230821406ba8fb2c11857168fc0e717c4edcd8d7fb0972bc6df0fbcfbd8a9f085aa023f452368278c0e7e0af014c1124d89
 MISC metadata.xml 4885 BLAKE2B 2029ff68e73fa6d97abb5d03df8efbfd03b2145ad6ced9ca7a048d48d16e5f50e12448b9d0343f8d22262dccdf4c7c4fb2554b1894a13eddc502924f9ad70220 SHA512 9c22fba4bcdb7ac3f1e8a6a36903e940f9b53c284b446e240cf3bf51590efe8af0b9219688693dad233bf8593dd306b85af9c18fb9ef253a8e3413e3b926fd9e
diff --git a/sys-devel/gcc/gcc-10.4.1_p20230209.ebuild b/sys-devel/gcc/gcc-10.4.1_p20230209.ebuild
new file mode 100644
index 000000000000..68d9c2522686
--- /dev/null
+++ b/sys-devel/gcc/gcc-10.4.1_p20230209.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_SUFFIX="xz"
+TOOLCHAIN_PATCH_DEV="sam"
+#TOOLCHAIN_GCC_RC=1
+PATCH_GCC_VER="10.5.0"
+PATCH_VER="5"
+MUSL_VER="2"
+MUSL_GCC_VER="10.5.0"
+
+if [[ $(ver_cut 3) == 9999 ]] ; then
+	MY_PV_2=$(ver_cut 2)
+	if [[ ${MY_PV_2} == 0 ]] ; then
+		MY_PV_2=0
+	else
+		MY_PV_2=$(($(ver_cut 2) - 1))
+	fi
+
+	# e.g. 12.2.9999 -> 12.1.1
+	TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998))
+elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+	# Cheesy hack for RCs
+	MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+	MY_P=${PN}-${MY_PV}
+	GCC_TARBALL_SRC_URI="https://gcc.gnu.org/pub/gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+	TOOLCHAIN_SET_S=no
+	S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+# Needs to be after inherit (for now?), bug #830908
+EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+
+# Don't keyword live ebuilds
+#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+#	KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
+#fi
+
+RDEPEND=""
+BDEPEND="${CATEGORY}/binutils"
+
+src_prepare() {
+	local p upstreamed_patches=(
+		# add them here
+	)
+	for p in "${upstreamed_patches[@]}"; do
+		rm -v "${WORKDIR}/patch/${p}" || die
+	done
+
+	if has_version '>=sys-libs/glibc-2.32-r1'; then
+		rm -v "${WORKDIR}/patch/23_all_disable-riscv32-ABIs.patch" || die
+	fi
+
+	toolchain_src_prepare
+}
diff --git a/sys-devel/gcc/gcc-11.3.1_p20230210.ebuild b/sys-devel/gcc/gcc-11.3.1_p20230210.ebuild
new file mode 100644
index 000000000000..3029159b6f13
--- /dev/null
+++ b/sys-devel/gcc/gcc-11.3.1_p20230210.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_SUFFIX="xz"
+TOOLCHAIN_PATCH_DEV="sam"
+PATCH_VER="8"
+PATCH_GCC_VER="11.4.0"
+MUSL_VER="2"
+MUSL_GCC_VER="11.4.0"
+
+if [[ $(ver_cut 3) == 9999 ]] ; then
+	MY_PV_2=$(ver_cut 2)
+	if [[ ${MY_PV_2} == 0 ]] ; then
+		MY_PV_2=0
+	else
+		MY_PV_2=$(($(ver_cut 2) - 1))
+	fi
+
+	# e.g. 12.2.9999 -> 12.1.1
+	TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998))
+fi
+
+inherit toolchain
+# Needs to be after inherit (for now?), bug #830908
+EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+
+# Don't keyword live ebuilds
+#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+#	KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
+#fi
+
+# Technically only if USE=hardened *too* right now, but no point in complicating it further.
+# If GCC is enabling CET by default, we need glibc to be built with support for it.
+# bug #830454
+RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
+
+src_prepare() {
+	local p upstreamed_patches=(
+		# add them here
+	)
+	for p in "${upstreamed_patches[@]}"; do
+		rm -v "${WORKDIR}/patch/${p}" || die
+	done
+
+	toolchain_src_prepare
+
+	eapply_user
+}
diff --git a/sys-devel/gcc/gcc-12.2.1_p20230211.ebuild b/sys-devel/gcc/gcc-12.2.1_p20230211.ebuild
new file mode 100644
index 000000000000..3a7a472a2f2f
--- /dev/null
+++ b/sys-devel/gcc/gcc-12.2.1_p20230211.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_DEV="sam"
+PATCH_VER="13"
+PATCH_GCC_VER="12.2.0"
+MUSL_VER="7"
+MUSL_GCC_VER="12.2.0"
+
+if [[ $(ver_cut 3) == 9999 ]] ; then
+	MY_PV_2=$(ver_cut 2)
+	if [[ ${MY_PV_2} == 0 ]] ; then
+		MY_PV_2=0
+	else
+		MY_PV_2=$(($(ver_cut 2) - 1))
+	fi
+
+	# e.g. 12.2.9999 -> 12.1.1
+	TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.$(($(ver_cut 3) - 9998))
+elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+	# Cheesy hack for RCs
+	MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+	MY_P=${PN}-${MY_PV}
+	GCC_TARBALL_SRC_URI="https://gcc.gnu.org/pub/gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+	TOOLCHAIN_SET_S=no
+	S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+# Needs to be after inherit (for now?), bug #830908
+EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+
+# Don't keyword live ebuilds
+#if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+#	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+#fi
+
+# Technically only if USE=hardened *too* right now, but no point in complicating it further.
+# If GCC is enabling CET by default, we need glibc to be built with support for it.
+# bug #830454
+RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
+
+src_prepare() {
+	toolchain_src_prepare
+
+	eapply_user
+}
diff --git a/sys-devel/gcc/gcc-8.5.0-r1.ebuild b/sys-devel/gcc/gcc-8.5.0-r1.ebuild
index ff799268370b..2d77b92b0327 100644
--- a/sys-devel/gcc/gcc-8.5.0-r1.ebuild
+++ b/sys-devel/gcc/gcc-8.5.0-r1.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
 
-TOOLCHAIN_PATCH_DEV="slyfox"
-PATCH_VER="2"
+TOOLCHAIN_PATCH_SUFFIX="xz"
+TOOLCHAIN_PATCH_DEV="sam"
+PATCH_VER="4"
 
 inherit toolchain
 
diff --git a/sys-devel/gcc/gcc-9.5.0.ebuild b/sys-devel/gcc/gcc-9.5.0.ebuild
index 133de2006773..868742a9b878 100644
--- a/sys-devel/gcc/gcc-9.5.0.ebuild
+++ b/sys-devel/gcc/gcc-9.5.0.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
 TOOLCHAIN_PATCH_DEV="sam"
 PATCH_GCC_VER="9.5.0"
-PATCH_VER="1"
+PATCH_VER="2"
 
 if [[ $(ver_cut 3) == 9999 ]] ; then
 	MY_PV_2=$(ver_cut 2)
diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest
index bfec588275bc..ddb0c1e2e511 100644
--- a/sys-devel/lld/Manifest
+++ b/sys-devel/lld/Manifest
@@ -5,14 +5,15 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 EBUILD lld-14.0.6-r1.ebuild 2009 BLAKE2B 4db1dfc9b1997d31cc68240ae0b05afeae5a6b1cb24a0eb2012bc28b2ac8c0da4b532d270d070db5fd401717320a74b006628c19a12c787e2f9ba2dc24eb25b1 SHA512 73b2f0e7b27497ce9037cd10503b328378ff9a2e32cd36e6e264f5423cd05732da4ea2ef97b637fc344a4f3d5d3597c60dda29dba7eb509391c176d32d53a427
 EBUILD lld-15.0.7.ebuild 2262 BLAKE2B 8882ba45692d54840d8a5933910ade614427733f3da2e344cf4df2806c125a783ff3c6ad4a2f76fd577cb4787fe07495c93e981c03f116fa7f383575d59936f7 SHA512 9b08495f068a01e991d200363549d29e9146e8687b297fa06beda90da1da9a793b1ebf512c3dad9bb985518a8fd9d1d13049a90dd8f06d4bc3de97779ff8e6ed
 EBUILD lld-16.0.0.9999.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
-EBUILD lld-16.0.0_pre20230107.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
-EBUILD lld-16.0.0_pre20230127.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
 EBUILD lld-16.0.0_rc1.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
+EBUILD lld-16.0.0_rc2.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
 EBUILD lld-17.0.0.9999.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
 EBUILD lld-17.0.0_pre20230203.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
+EBUILD lld-17.0.0_pre20230211.ebuild 2197 BLAKE2B 0f6db5db6fff4f572187749ab1704fce82e1859db1b7dd8b9de3652eed3e63ae781f7c48d16237576e9a186fe0680e349d160f15047cb5f54998fab7b8c0d60e SHA512 5de60e7ae08bade5028fb325e81ef82bf2aca38507d131e40505320587cbc43db5d74203d849cb057bee27b7f4e3820263f429db8454e4ca38bcc6f7e873bf9b
 MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685
diff --git a/sys-devel/lld/lld-16.0.0_pre20230107.ebuild b/sys-devel/lld/lld-16.0.0_pre20230107.ebuild
deleted file mode 100644
index d22c1fb13951..000000000000
--- a/sys-devel/lld/lld-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="The LLVM linker (link editor)"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS=""
-IUSE="debug test zstd"
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	~sys-devel/llvm-${PV}[zstd=]
-	sys-libs/zlib:=
-	zstd? ( app-arch/zstd:= )
-"
-RDEPEND="
-	${DEPEND}
-	!sys-devel/lld:0
-"
-BDEPEND="
-	sys-devel/llvm:${LLVM_MAJOR}
-	test? (
-		>=dev-util/cmake-3.16
-		$(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
-	)
-"
-PDEPEND="
-	>=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
-LLVM_TEST_COMPONENTS=( llvm/utils third-party )
-llvm.org_set_globals
-
-python_check_deps() {
-	python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-}
-
-src_unpack() {
-	llvm.org_src_unpack
-
-	# Directory ${WORKDIR}/llvm does not exist with USE="-test",
-	# but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
-	# and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
-	# (lld/MachO/CMakeLists.txt) and is expected to be resolvable
-	# to existent directory ${WORKDIR}/libunwind/include.
-	mkdir -p "${WORKDIR}/llvm" || die
-}
-
-src_configure() {
-	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
-	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
-
-	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
-
-	local mycmakeargs=(
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DBUILD_SHARED_LIBS=ON
-		-DLLVM_INCLUDE_TESTS=$(usex test)
-	)
-
-	use test && mycmakeargs+=(
-		-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-		-DLLVM_LIT_ARGS="$(get_lit_flags)"
-		-DPython3_EXECUTABLE="${PYTHON}"
-	)
-
-	tc-is-cross-compiler &&	mycmakeargs+=(
-		-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
-	)
-
-	cmake_src_configure
-}
-
-src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-lld
-}
diff --git a/sys-devel/lld/lld-16.0.0_pre20230127.ebuild b/sys-devel/lld/lld-16.0.0_pre20230127.ebuild
deleted file mode 100644
index d22c1fb13951..000000000000
--- a/sys-devel/lld/lld-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="The LLVM linker (link editor)"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS=""
-IUSE="debug test zstd"
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	~sys-devel/llvm-${PV}[zstd=]
-	sys-libs/zlib:=
-	zstd? ( app-arch/zstd:= )
-"
-RDEPEND="
-	${DEPEND}
-	!sys-devel/lld:0
-"
-BDEPEND="
-	sys-devel/llvm:${LLVM_MAJOR}
-	test? (
-		>=dev-util/cmake-3.16
-		$(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
-	)
-"
-PDEPEND="
-	>=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
-"
-
-LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
-LLVM_TEST_COMPONENTS=( llvm/utils third-party )
-llvm.org_set_globals
-
-python_check_deps() {
-	python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-}
-
-src_unpack() {
-	llvm.org_src_unpack
-
-	# Directory ${WORKDIR}/llvm does not exist with USE="-test",
-	# but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
-	# and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
-	# (lld/MachO/CMakeLists.txt) and is expected to be resolvable
-	# to existent directory ${WORKDIR}/libunwind/include.
-	mkdir -p "${WORKDIR}/llvm" || die
-}
-
-src_configure() {
-	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
-	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
-
-	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
-
-	local mycmakeargs=(
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DBUILD_SHARED_LIBS=ON
-		-DLLVM_INCLUDE_TESTS=$(usex test)
-	)
-
-	use test && mycmakeargs+=(
-		-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-		-DLLVM_LIT_ARGS="$(get_lit_flags)"
-		-DPython3_EXECUTABLE="${PYTHON}"
-	)
-
-	tc-is-cross-compiler &&	mycmakeargs+=(
-		-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
-	)
-
-	cmake_src_configure
-}
-
-src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-lld
-}
diff --git a/sys-devel/lld/lld-16.0.0_rc2.ebuild b/sys-devel/lld/lld-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..d22c1fb13951
--- /dev/null
+++ b/sys-devel/lld/lld-16.0.0_rc2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="The LLVM linker (link editor)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS=""
+IUSE="debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+	~sys-devel/llvm-${PV}[zstd=]
+	sys-libs/zlib:=
+	zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+	${DEPEND}
+	!sys-devel/lld:0
+"
+BDEPEND="
+	sys-devel/llvm:${LLVM_MAJOR}
+	test? (
+		>=dev-util/cmake-3.16
+		$(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
+	)
+"
+PDEPEND="
+	>=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+LLVM_TEST_COMPONENTS=( llvm/utils third-party )
+llvm.org_set_globals
+
+python_check_deps() {
+	python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	llvm.org_src_unpack
+
+	# Directory ${WORKDIR}/llvm does not exist with USE="-test",
+	# but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
+	# and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
+	# (lld/MachO/CMakeLists.txt) and is expected to be resolvable
+	# to existent directory ${WORKDIR}/libunwind/include.
+	mkdir -p "${WORKDIR}/llvm" || die
+}
+
+src_configure() {
+	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+	local mycmakeargs=(
+		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+		-DBUILD_SHARED_LIBS=ON
+		-DLLVM_INCLUDE_TESTS=$(usex test)
+	)
+
+	use test && mycmakeargs+=(
+		-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+		-DLLVM_LIT_ARGS="$(get_lit_flags)"
+		-DPython3_EXECUTABLE="${PYTHON}"
+	)
+
+	tc-is-cross-compiler &&	mycmakeargs+=(
+		-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
+	)
+
+	cmake_src_configure
+}
+
+src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-lld
+}
diff --git a/sys-devel/lld/lld-17.0.0_pre20230211.ebuild b/sys-devel/lld/lld-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..d22c1fb13951
--- /dev/null
+++ b/sys-devel/lld/lld-17.0.0_pre20230211.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="The LLVM linker (link editor)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS=""
+IUSE="debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+	~sys-devel/llvm-${PV}[zstd=]
+	sys-libs/zlib:=
+	zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+	${DEPEND}
+	!sys-devel/lld:0
+"
+BDEPEND="
+	sys-devel/llvm:${LLVM_MAJOR}
+	test? (
+		>=dev-util/cmake-3.16
+		$(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
+	)
+"
+PDEPEND="
+	>=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+LLVM_TEST_COMPONENTS=( llvm/utils third-party )
+llvm.org_set_globals
+
+python_check_deps() {
+	python_has_version ">=dev-python/lit-${PV}[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	llvm.org_src_unpack
+
+	# Directory ${WORKDIR}/llvm does not exist with USE="-test",
+	# but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
+	# and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
+	# (lld/MachO/CMakeLists.txt) and is expected to be resolvable
+	# to existent directory ${WORKDIR}/libunwind/include.
+	mkdir -p "${WORKDIR}/llvm" || die
+}
+
+src_configure() {
+	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+	use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+	local mycmakeargs=(
+		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+		-DBUILD_SHARED_LIBS=ON
+		-DLLVM_INCLUDE_TESTS=$(usex test)
+	)
+
+	use test && mycmakeargs+=(
+		-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+		-DLLVM_LIT_ARGS="$(get_lit_flags)"
+		-DPython3_EXECUTABLE="${PYTHON}"
+	)
+
+	tc-is-cross-compiler &&	mycmakeargs+=(
+		-DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
+	)
+
+	cmake_src_configure
+}
+
+src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-lld
+}
diff --git a/sys-devel/llvm-common/Manifest b/sys-devel/llvm-common/Manifest
index 1f8f245ff317..2d7a9713a306 100644
--- a/sys-devel/llvm-common/Manifest
+++ b/sys-devel/llvm-common/Manifest
@@ -5,14 +5,15 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 EBUILD llvm-common-14.0.6.ebuild 602 BLAKE2B ef26d6ac2606e9a316ddcce442da1762f578ade0346ba2a947fdace5e2020e8841c63d173e42506d23abf6efc062a2edfac0be98a3eefe1f7a29c88702e9f1d5 SHA512 789dad6fdcf9a930ddc1046e7e98ebc1e05b2dd3713bb1ec5b8a5711690d779691c91d1000d9776720b21ed241d2f12c0ae9a8dba0e6a17d0ddf563cdfbe657f
 EBUILD llvm-common-15.0.7.ebuild 601 BLAKE2B 3dd38d17640ed52ff0be26db026475a9d0e7e1acebe95043bc6e0e63e32ff4f03c5637a9dcce25987f673962447feb4aa015f8b5b5cb33553dc1a4f843b75399 SHA512 e8a93a72d06810cface48cce2d8f8a890cdf009939a96350a23fe407b064c05a3016c663d11a3866dc2dd0fd87599b5ac234895c8c42c902e9b0cdb37dba7b62
 EBUILD llvm-common-16.0.0.9999.ebuild 524 BLAKE2B 1864e7c6a8578fe3ad74718368deca408757c501726fd3a2941087756f50bbf9ed83a6a635ef264150c86b577f373b5d391df4cbc6ff3e3e6a561bcc41b2c5f1 SHA512 feab4cb373d2384ce018d26b480024060b89c6a5475e7e7d475124b9a20a2c55470d98799067c437540b6ec6e7471f712534005ec426f76a247b8767edff6164
-EBUILD llvm-common-16.0.0_pre20230107.ebuild 530 BLAKE2B 8475e3b53197e4d4632f635af86038889c0e93161819f3b655a570f8b3b774f392a786c67320845ca7be620bcd22acfd0349ec9376435deff1f4333c993abeb3 SHA512 2f899fd29442895532c45eb8c97e1bdf19aaef19406382b81ebad16cb9eb6d4181a637a10d090060557f1d0b33dc579828c2c5c5d5ad02d0c5a4a3cca256caef
-EBUILD llvm-common-16.0.0_pre20230127.ebuild 524 BLAKE2B 381b028d6ad33fa97d2ff250266bd896153222cb62647bc6c4a9f7493fc96c23faf788ce8a976d35333e8d40e63cad4c3f44322f6a41f1dbe53f9e772c3a40d9 SHA512 9661a9c544d8bf3edf6c24a307324a58652c8635703dcfa008cad96826e3404cbb05e5c95fe7df85ed6d2642e4f83cfff0c9a381b796cc78f560854aa071acbe
 EBUILD llvm-common-16.0.0_rc1.ebuild 530 BLAKE2B 8475e3b53197e4d4632f635af86038889c0e93161819f3b655a570f8b3b774f392a786c67320845ca7be620bcd22acfd0349ec9376435deff1f4333c993abeb3 SHA512 2f899fd29442895532c45eb8c97e1bdf19aaef19406382b81ebad16cb9eb6d4181a637a10d090060557f1d0b33dc579828c2c5c5d5ad02d0c5a4a3cca256caef
+EBUILD llvm-common-16.0.0_rc2.ebuild 530 BLAKE2B 8475e3b53197e4d4632f635af86038889c0e93161819f3b655a570f8b3b774f392a786c67320845ca7be620bcd22acfd0349ec9376435deff1f4333c993abeb3 SHA512 2f899fd29442895532c45eb8c97e1bdf19aaef19406382b81ebad16cb9eb6d4181a637a10d090060557f1d0b33dc579828c2c5c5d5ad02d0c5a4a3cca256caef
 EBUILD llvm-common-17.0.0.9999.ebuild 524 BLAKE2B 381b028d6ad33fa97d2ff250266bd896153222cb62647bc6c4a9f7493fc96c23faf788ce8a976d35333e8d40e63cad4c3f44322f6a41f1dbe53f9e772c3a40d9 SHA512 9661a9c544d8bf3edf6c24a307324a58652c8635703dcfa008cad96826e3404cbb05e5c95fe7df85ed6d2642e4f83cfff0c9a381b796cc78f560854aa071acbe
 EBUILD llvm-common-17.0.0_pre20230203.ebuild 524 BLAKE2B 381b028d6ad33fa97d2ff250266bd896153222cb62647bc6c4a9f7493fc96c23faf788ce8a976d35333e8d40e63cad4c3f44322f6a41f1dbe53f9e772c3a40d9 SHA512 9661a9c544d8bf3edf6c24a307324a58652c8635703dcfa008cad96826e3404cbb05e5c95fe7df85ed6d2642e4f83cfff0c9a381b796cc78f560854aa071acbe
+EBUILD llvm-common-17.0.0_pre20230211.ebuild 524 BLAKE2B 381b028d6ad33fa97d2ff250266bd896153222cb62647bc6c4a9f7493fc96c23faf788ce8a976d35333e8d40e63cad4c3f44322f6a41f1dbe53f9e772c3a40d9 SHA512 9661a9c544d8bf3edf6c24a307324a58652c8635703dcfa008cad96826e3404cbb05e5c95fe7df85ed6d2642e4f83cfff0c9a381b796cc78f560854aa071acbe
 MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685
diff --git a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild b/sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild
deleted file mode 100644
index 54af5bde6db7..000000000000
--- a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit llvm.org
-
-DESCRIPTION="Common files shared between multiple slots of LLVM"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS="~loong"
-
-RDEPEND="
-	!sys-devel/llvm:0
-"
-
-LLVM_COMPONENTS=( llvm/utils/vim )
-llvm.org_set_globals
-
-src_install() {
-	insinto /usr/share/vim/vimfiles
-	doins -r */
-	# some users may find it useful
-	newdoc README README.vim
-	dodoc vimrc
-}
diff --git a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild b/sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild
deleted file mode 100644
index ce5f03ca34a5..000000000000
--- a/sys-devel/llvm-common/llvm-common-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit llvm.org
-
-DESCRIPTION="Common files shared between multiple slots of LLVM"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS=""
-
-RDEPEND="
-	!sys-devel/llvm:0
-"
-
-LLVM_COMPONENTS=( llvm/utils/vim )
-llvm.org_set_globals
-
-src_install() {
-	insinto /usr/share/vim/vimfiles
-	doins -r */
-	# some users may find it useful
-	newdoc README README.vim
-	dodoc vimrc
-}
diff --git a/sys-devel/llvm-common/llvm-common-16.0.0_rc2.ebuild b/sys-devel/llvm-common/llvm-common-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..54af5bde6db7
--- /dev/null
+++ b/sys-devel/llvm-common/llvm-common-16.0.0_rc2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~loong"
+
+RDEPEND="
+	!sys-devel/llvm:0
+"
+
+LLVM_COMPONENTS=( llvm/utils/vim )
+llvm.org_set_globals
+
+src_install() {
+	insinto /usr/share/vim/vimfiles
+	doins -r */
+	# some users may find it useful
+	newdoc README README.vim
+	dodoc vimrc
+}
diff --git a/sys-devel/llvm-common/llvm-common-17.0.0_pre20230211.ebuild b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..ce5f03ca34a5
--- /dev/null
+++ b/sys-devel/llvm-common/llvm-common-17.0.0_pre20230211.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS=""
+
+RDEPEND="
+	!sys-devel/llvm:0
+"
+
+LLVM_COMPONENTS=( llvm/utils/vim )
+llvm.org_set_globals
+
+src_install() {
+	insinto /usr/share/vim/vimfiles
+	doins -r */
+	# some users may find it useful
+	newdoc README README.vim
+	dodoc vimrc
+}
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
index 76b8b5745c5c..4d066baa0854 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -9,14 +9,15 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 EBUILD llvm-14.0.6-r2.ebuild 12379 BLAKE2B 878f5723404dd8b85e874c8b8cd83ec3da07ddb4b38c1129d74eb838518cb0cc2db52370bca3065af6329b19b8f3741c6cb64ecb2a0ca6506560ebab122d2e8b SHA512 35dfcb42c1d4a477541c4433ab69cb38e25c55d9061133381660eea5cdff8c2b9b4683eb9fd310b909544dab322cf9c85565c0f3df3453ce1f993c36874599a9
 EBUILD llvm-15.0.7.ebuild 12547 BLAKE2B 614c03ba1864eb535f1c3685d09d639de6222d20711023bff39b6ab257114ad2fc5a7565f8227829d057ec65ca157ee9dcfd16bb40cec5b0fa6abfbf11ea6654 SHA512 8580f74800122d1d0b7c8114f8555fdbab6291daf20c15ae9fc125a58b203f7ccd7bbcb4fb7aea9181b9abc0e296c7b91417a15a4c50a31b4c65f01c7fba17c8
 EBUILD llvm-16.0.0.9999.ebuild 12342 BLAKE2B 2ee8d346c927e1e32242b2ae5146cbcc0280030197d24e72908064403646975497bd469f14d1a46d5c93823e22b757b074f3215593fef68429060e733a2006ba SHA512 09b426cce2ffd6e56b354b7ec0d5ed4ef69fb16b7bd20f1afb1c05239cc106daae1c9246e5b24b29f88654a2a4bc7f4a907d55cead98aafed34465af84b6007d
-EBUILD llvm-16.0.0_pre20230107.ebuild 12348 BLAKE2B cab528b783d40bcfa24127b9d777374b163844a37b706162933f3020c36cec79263b29e3cb356d1f702467705322c8daff1d01f6c32018524bbc5e1e8f9d4459 SHA512 5ca3ef40d6ef141c733a09b8492e1cf5724ee826ab4e63d8055289a7955a88270b863dc2782cf313e4ea852129bfe95d0aa8b9a755df61303963ce8277f28655
-EBUILD llvm-16.0.0_pre20230127.ebuild 12342 BLAKE2B 2ee8d346c927e1e32242b2ae5146cbcc0280030197d24e72908064403646975497bd469f14d1a46d5c93823e22b757b074f3215593fef68429060e733a2006ba SHA512 09b426cce2ffd6e56b354b7ec0d5ed4ef69fb16b7bd20f1afb1c05239cc106daae1c9246e5b24b29f88654a2a4bc7f4a907d55cead98aafed34465af84b6007d
 EBUILD llvm-16.0.0_rc1.ebuild 12348 BLAKE2B cab528b783d40bcfa24127b9d777374b163844a37b706162933f3020c36cec79263b29e3cb356d1f702467705322c8daff1d01f6c32018524bbc5e1e8f9d4459 SHA512 5ca3ef40d6ef141c733a09b8492e1cf5724ee826ab4e63d8055289a7955a88270b863dc2782cf313e4ea852129bfe95d0aa8b9a755df61303963ce8277f28655
+EBUILD llvm-16.0.0_rc2.ebuild 12348 BLAKE2B cab528b783d40bcfa24127b9d777374b163844a37b706162933f3020c36cec79263b29e3cb356d1f702467705322c8daff1d01f6c32018524bbc5e1e8f9d4459 SHA512 5ca3ef40d6ef141c733a09b8492e1cf5724ee826ab4e63d8055289a7955a88270b863dc2782cf313e4ea852129bfe95d0aa8b9a755df61303963ce8277f28655
 EBUILD llvm-17.0.0.9999.ebuild 12342 BLAKE2B 2ee8d346c927e1e32242b2ae5146cbcc0280030197d24e72908064403646975497bd469f14d1a46d5c93823e22b757b074f3215593fef68429060e733a2006ba SHA512 09b426cce2ffd6e56b354b7ec0d5ed4ef69fb16b7bd20f1afb1c05239cc106daae1c9246e5b24b29f88654a2a4bc7f4a907d55cead98aafed34465af84b6007d
 EBUILD llvm-17.0.0_pre20230203.ebuild 12342 BLAKE2B 2ee8d346c927e1e32242b2ae5146cbcc0280030197d24e72908064403646975497bd469f14d1a46d5c93823e22b757b074f3215593fef68429060e733a2006ba SHA512 09b426cce2ffd6e56b354b7ec0d5ed4ef69fb16b7bd20f1afb1c05239cc106daae1c9246e5b24b29f88654a2a4bc7f4a907d55cead98aafed34465af84b6007d
+EBUILD llvm-17.0.0_pre20230211.ebuild 12342 BLAKE2B 2ee8d346c927e1e32242b2ae5146cbcc0280030197d24e72908064403646975497bd469f14d1a46d5c93823e22b757b074f3215593fef68429060e733a2006ba SHA512 09b426cce2ffd6e56b354b7ec0d5ed4ef69fb16b7bd20f1afb1c05239cc106daae1c9246e5b24b29f88654a2a4bc7f4a907d55cead98aafed34465af84b6007d
 MISC metadata.xml 2654 BLAKE2B c27983265b6c9b33200ee42565648f30a6cc9c51be53a1cb82a3353d7c1f7aa9c9501c58254280c2880ff2d4992b4834e4b5e2f1c9b1c60e9b21945f234b9973 SHA512 b331d9186908762907f5713b00e357785b62afbee83afefac8701beb1a20f7ebd68df4a030bb82c6f9164719d4ccfcaf16c189833ad40e9f5900c36247d9cff2
diff --git a/sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild b/sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild
deleted file mode 100644
index 21023c3bf7e4..000000000000
--- a/sys-devel/llvm/llvm-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,514 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="https://llvm.org/"
-
-# Additional licenses:
-# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
-# 2. xxhash: BSD.
-# 3. MD5 code: public-domain.
-# 4. ConvertUTF.h: TODO.
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS="~loong"
-IUSE="
-	+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
-	xml z3 zstd
-"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	sys-libs/zlib:0=[${MULTILIB_USEDEP}]
-	binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
-	exegesis? ( dev-libs/libpfm:= )
-	libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
-	libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
-	ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
-	xar? ( app-arch/xar )
-	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
-	z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
-	zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
-"
-DEPEND="
-	${RDEPEND}
-	binutils-plugin? ( sys-libs/binutils-libs )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	dev-lang/perl
-	>=dev-util/cmake-3.16
-	sys-devel/gnuconfig
-	kernel_Darwin? (
-		<sys-libs/libcxx-${LLVM_VERSION}.9999
-		>=sys-devel/binutils-apple-5.1
-	)
-	doc? ( $(python_gen_any_dep '
-		dev-python/recommonmark[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	') )
-	libffi? ( virtual/pkgconfig )
-"
-# There are no file collisions between these versions but having :0
-# installed means llvm-config there will take precedence.
-RDEPEND="
-	${RDEPEND}
-	!sys-devel/llvm:0
-"
-PDEPEND="
-	sys-devel/llvm-common
-	sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
-	binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
-"
-
-LLVM_COMPONENTS=( llvm cmake )
-LLVM_TEST_COMPONENTS=( third-party )
-LLVM_MANPAGES=1
-LLVM_USE_TARGETS=provide
-llvm.org_set_globals
-
-python_check_deps() {
-	use doc || return 0
-
-	python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
-	python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
-}
-
-check_uptodate() {
-	local prod_targets=(
-		$(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
-			| tail -n +2 | head -n -1)
-	)
-	local all_targets=(
-		lib/Target/*/
-	)
-	all_targets=( "${all_targets[@]#lib/Target/}" )
-	all_targets=( "${all_targets[@]%/}" )
-
-	local exp_targets=() i
-	for i in "${all_targets[@]}"; do
-		has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
-	done
-
-	if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
-		eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
-		eqawarn "    Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
-		eqawarn "Expected: ${exp_targets[*]}"
-		eqawarn
-	fi
-
-	if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
-		eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
-		eqawarn "    Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
-		eqawarn "Expected: ${prod_targets[*]}"
-	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
-					# shared libs
-					LLVM|LLVMgold)
-						;;
-					# TableGen lib + deps
-					LLVMDemangle|LLVMSupport|LLVMTableGen)
-						;;
-					# static libs
-					LLVM*)
-						continue
-						;;
-					# meta-targets
-					distribution|llvm-libraries)
-						continue
-						;;
-					# used only w/ USE=doc
-					docs-llvm-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
-}
-
-src_prepare() {
-	# disable use of SDK on OSX, bug #568758
-	sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
-
-	# Update config.guess to support more systems
-	cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
-
-	# Verify that the ebuild is up-to-date
-	check_uptodate
-
-	llvm.org_src_prepare
-}
-
-get_distribution_components() {
-	local sep=${1-;}
-
-	local out=(
-		# shared libs
-		LLVM
-		LTO
-		Remarks
-
-		# tools
-		llvm-config
-
-		# common stuff
-		cmake-exports
-		llvm-headers
-
-		# libraries needed for clang-tblgen
-		LLVMDemangle
-		LLVMSupport
-		LLVMTableGen
-	)
-
-	if multilib_is_native_abi; then
-		out+=(
-			# utilities
-			llvm-tblgen
-			FileCheck
-			llvm-PerfectShuffle
-			count
-			not
-			yaml-bench
-			UnicodeNameMappingGenerator
-
-			# tools
-			bugpoint
-			dsymutil
-			llc
-			lli
-			lli-child-target
-			llvm-addr2line
-			llvm-ar
-			llvm-as
-			llvm-bcanalyzer
-			llvm-bitcode-strip
-			llvm-c-test
-			llvm-cat
-			llvm-cfi-verify
-			llvm-config
-			llvm-cov
-			llvm-cvtres
-			llvm-cxxdump
-			llvm-cxxfilt
-			llvm-cxxmap
-			llvm-debuginfo-analyzer
-			llvm-debuginfod
-			llvm-debuginfod-find
-			llvm-diff
-			llvm-dis
-			llvm-dlltool
-			llvm-dwarfdump
-			llvm-dwarfutil
-			llvm-dwp
-			llvm-exegesis
-			llvm-extract
-			llvm-gsymutil
-			llvm-ifs
-			llvm-install-name-tool
-			llvm-jitlink
-			llvm-jitlink-executor
-			llvm-lib
-			llvm-libtool-darwin
-			llvm-link
-			llvm-lipo
-			llvm-lto
-			llvm-lto2
-			llvm-mc
-			llvm-mca
-			llvm-ml
-			llvm-modextract
-			llvm-mt
-			llvm-nm
-			llvm-objcopy
-			llvm-objdump
-			llvm-opt-report
-			llvm-otool
-			llvm-pdbutil
-			llvm-profdata
-			llvm-profgen
-			llvm-ranlib
-			llvm-rc
-			llvm-readelf
-			llvm-readobj
-			llvm-reduce
-			llvm-remark-size-diff
-			llvm-remarkutil
-			llvm-rtdyld
-			llvm-sim
-			llvm-size
-			llvm-split
-			llvm-stress
-			llvm-strings
-			llvm-strip
-			llvm-symbolizer
-			llvm-tapi-diff
-			llvm-tli-checker
-			llvm-undname
-			llvm-windres
-			llvm-xray
-			obj2yaml
-			opt
-			sancov
-			sanstats
-			split-file
-			verify-uselistorder
-			yaml2obj
-
-			# python modules
-			opt-viewer
-		)
-
-		if llvm_are_manpages_built; then
-			out+=(
-				# manpages
-				docs-dsymutil-man
-				docs-llvm-dwarfdump-man
-				docs-llvm-man
-			)
-		fi
-		use doc && out+=(
-			docs-llvm-html
-		)
-
-		use binutils-plugin && out+=(
-			LLVMgold
-		)
-	fi
-
-	printf "%s${sep}" "${out[@]}"
-}
-
-multilib_src_configure() {
-	local ffi_cflags ffi_ldflags
-	if use libffi; then
-		ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
-		ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		# disable appending VCS revision to the version to improve
-		# direct cache hit ratio
-		-DLLVM_APPEND_VC_REV=OFF
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
-		-DBUILD_SHARED_LIBS=OFF
-		-DLLVM_BUILD_LLVM_DYLIB=ON
-		-DLLVM_LINK_LLVM_DYLIB=ON
-		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
-
-		# cheap hack: LLVM combines both anyway, and the only difference
-		# is that the former list is explicitly verified at cmake time
-		-DLLVM_TARGETS_TO_BUILD=""
-		-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-		-DLLVM_INCLUDE_BENCHMARKS=OFF
-		-DLLVM_INCLUDE_TESTS=$(usex test)
-		-DLLVM_BUILD_TESTS=$(usex test)
-
-		-DLLVM_ENABLE_FFI=$(usex libffi)
-		-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
-		-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
-		-DLLVM_ENABLE_LIBXML2=$(usex xml)
-		-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-		-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
-		-DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
-		-DLLVM_ENABLE_ZSTD=$(usex zstd)
-
-		-DLLVM_HOST_TRIPLE="${CHOST}"
-
-		-DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
-		-DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
-		# used only for llvm-objdump tool
-		-DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
-
-		-DPython3_EXECUTABLE="${PYTHON}"
-
-		# disable OCaml bindings (now in dev-ml/llvm-ocaml)
-		-DOCAMLFIND=NO
-	)
-
-	local suffix=
-	if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
-		# the ABI of the main branch is not stable, so let's include
-		# the commit id in the SOVERSION to contain the breakage
-		suffix+="git${EGIT_VERSION::8}"
-	fi
-	if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
-		# Smart hack: alter version suffix -> SOVERSION when linking
-		# against libc++. This way we won't end up mixing LLVM libc++
-		# libraries with libstdc++ clang, and the other way around.
-		suffix+="+libcxx"
-		mycmakeargs+=(
-			-DLLVM_ENABLE_LIBCXX=ON
-		)
-	fi
-	mycmakeargs+=(
-		-DLLVM_VERSION_SUFFIX="${suffix}"
-	)
-
-	use test && mycmakeargs+=(
-		-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+=(
-				-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-				-DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
-				-DSPHINX_WARNINGS_AS_ERRORS=OFF
-			)
-		fi
-
-		mycmakeargs+=(
-			-DLLVM_BUILD_DOCS=${build_docs}
-			-DLLVM_ENABLE_OCAMLDOC=OFF
-			-DLLVM_ENABLE_SPHINX=${build_docs}
-			-DLLVM_ENABLE_DOXYGEN=OFF
-			-DLLVM_INSTALL_UTILS=ON
-		)
-		use binutils-plugin && mycmakeargs+=(
-			-DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
-		)
-	fi
-
-	# workaround BMI bug in gcc-7 (fixed in 7.4)
-	# https://bugs.gentoo.org/649880
-	# apply only to x86, https://bugs.gentoo.org/650506
-	if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
-			[[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
-	then
-		local CFLAGS="${CFLAGS} -mno-bmi"
-		local CXXFLAGS="${CXXFLAGS} -mno-bmi"
-	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
-
-	grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
-			CMakeCache.txt ||
-		die "Incorrect version, did you update _LLVM_MASTER_MAJOR?"
-	multilib_is_native_abi && check_distribution_components
-}
-
-multilib_src_compile() {
-	tc-env_build cmake_build distribution
-
-	pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
-	pax-mark m "${BUILD_DIR}"/bin/lli
-	pax-mark m "${BUILD_DIR}"/bin/lli-child-target
-
-	if use test; then
-		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
-		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
-		pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
-	fi
-}
-
-multilib_src_test() {
-	# respect TMPDIR!
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check
-}
-
-src_install() {
-	local MULTILIB_CHOST_TOOLS=(
-		/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
-	)
-
-	local MULTILIB_WRAPPED_HEADERS=(
-		/usr/include/llvm/Config/llvm-config.h
-	)
-
-	local LLVM_LDPATHS=()
-	multilib-minimal_src_install
-
-	# move wrapped headers back
-	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
-}
-
-multilib_src_install() {
-	DESTDIR=${D} cmake_build install-distribution
-
-	# move headers to /usr/include for wrapping
-	rm -rf "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
-
-	LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
-}
-
-multilib_src_install_all() {
-	local revord=$(( 9999 - ${LLVM_MAJOR} ))
-	newenvd - "60llvm-${revord}" <<-_EOF_
-		PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
-		# we need to duplicate it in ROOTPATH for Portage to respect...
-		ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
-		MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-		LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
-	_EOF_
-
-	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-	llvm_install_manpages
-}
-
-pkg_postinst() {
-	elog "You can find additional opt-viewer utility scripts in:"
-	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
-	elog "To use these scripts, you will need Python along with the following"
-	elog "packages:"
-	elog "  dev-python/pygments (for opt-viewer)"
-	elog "  dev-python/pyyaml (for all of them)"
-}
diff --git a/sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild b/sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild
deleted file mode 100644
index d4655d4dc33f..000000000000
--- a/sys-devel/llvm/llvm-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,514 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="https://llvm.org/"
-
-# Additional licenses:
-# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
-# 2. xxhash: BSD.
-# 3. MD5 code: public-domain.
-# 4. ConvertUTF.h: TODO.
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
-SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS=""
-IUSE="
-	+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
-	xml z3 zstd
-"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	sys-libs/zlib:0=[${MULTILIB_USEDEP}]
-	binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
-	exegesis? ( dev-libs/libpfm:= )
-	libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
-	libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
-	ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
-	xar? ( app-arch/xar )
-	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
-	z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
-	zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
-"
-DEPEND="
-	${RDEPEND}
-	binutils-plugin? ( sys-libs/binutils-libs )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	dev-lang/perl
-	>=dev-util/cmake-3.16
-	sys-devel/gnuconfig
-	kernel_Darwin? (
-		<sys-libs/libcxx-${LLVM_VERSION}.9999
-		>=sys-devel/binutils-apple-5.1
-	)
-	doc? ( $(python_gen_any_dep '
-		dev-python/recommonmark[${PYTHON_USEDEP}]
-		dev-python/sphinx[${PYTHON_USEDEP}]
-	') )
-	libffi? ( virtual/pkgconfig )
-"
-# There are no file collisions between these versions but having :0
-# installed means llvm-config there will take precedence.
-RDEPEND="
-	${RDEPEND}
-	!sys-devel/llvm:0
-"
-PDEPEND="
-	sys-devel/llvm-common
-	sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
-	binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
-"
-
-LLVM_COMPONENTS=( llvm cmake )
-LLVM_TEST_COMPONENTS=( third-party )
-LLVM_MANPAGES=1
-LLVM_USE_TARGETS=provide
-llvm.org_set_globals
-
-python_check_deps() {
-	use doc || return 0
-
-	python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
-	python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
-}
-
-check_uptodate() {
-	local prod_targets=(
-		$(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
-			| tail -n +2 | head -n -1)
-	)
-	local all_targets=(
-		lib/Target/*/
-	)
-	all_targets=( "${all_targets[@]#lib/Target/}" )
-	all_targets=( "${all_targets[@]%/}" )
-
-	local exp_targets=() i
-	for i in "${all_targets[@]}"; do
-		has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
-	done
-
-	if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
-		eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
-		eqawarn "    Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
-		eqawarn "Expected: ${exp_targets[*]}"
-		eqawarn
-	fi
-
-	if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
-		eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
-		eqawarn "    Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
-		eqawarn "Expected: ${prod_targets[*]}"
-	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
-					# shared libs
-					LLVM|LLVMgold)
-						;;
-					# TableGen lib + deps
-					LLVMDemangle|LLVMSupport|LLVMTableGen)
-						;;
-					# static libs
-					LLVM*)
-						continue
-						;;
-					# meta-targets
-					distribution|llvm-libraries)
-						continue
-						;;
-					# used only w/ USE=doc
-					docs-llvm-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
-}
-
-src_prepare() {
-	# disable use of SDK on OSX, bug #568758
-	sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
-
-	# Update config.guess to support more systems
-	cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
-
-	# Verify that the ebuild is up-to-date
-	check_uptodate
-
-	llvm.org_src_prepare
-}
-
-get_distribution_components() {
-	local sep=${1-;}
-
-	local out=(
-		# shared libs
-		LLVM
-		LTO
-		Remarks
-
-		# tools
-		llvm-config
-
-		# common stuff
-		cmake-exports
-		llvm-headers
-
-		# libraries needed for clang-tblgen
-		LLVMDemangle
-		LLVMSupport
-		LLVMTableGen
-	)
-
-	if multilib_is_native_abi; then
-		out+=(
-			# utilities
-			llvm-tblgen
-			FileCheck
-			llvm-PerfectShuffle
-			count
-			not
-			yaml-bench
-			UnicodeNameMappingGenerator
-
-			# tools
-			bugpoint
-			dsymutil
-			llc
-			lli
-			lli-child-target
-			llvm-addr2line
-			llvm-ar
-			llvm-as
-			llvm-bcanalyzer
-			llvm-bitcode-strip
-			llvm-c-test
-			llvm-cat
-			llvm-cfi-verify
-			llvm-config
-			llvm-cov
-			llvm-cvtres
-			llvm-cxxdump
-			llvm-cxxfilt
-			llvm-cxxmap
-			llvm-debuginfo-analyzer
-			llvm-debuginfod
-			llvm-debuginfod-find
-			llvm-diff
-			llvm-dis
-			llvm-dlltool
-			llvm-dwarfdump
-			llvm-dwarfutil
-			llvm-dwp
-			llvm-exegesis
-			llvm-extract
-			llvm-gsymutil
-			llvm-ifs
-			llvm-install-name-tool
-			llvm-jitlink
-			llvm-jitlink-executor
-			llvm-lib
-			llvm-libtool-darwin
-			llvm-link
-			llvm-lipo
-			llvm-lto
-			llvm-lto2
-			llvm-mc
-			llvm-mca
-			llvm-ml
-			llvm-modextract
-			llvm-mt
-			llvm-nm
-			llvm-objcopy
-			llvm-objdump
-			llvm-opt-report
-			llvm-otool
-			llvm-pdbutil
-			llvm-profdata
-			llvm-profgen
-			llvm-ranlib
-			llvm-rc
-			llvm-readelf
-			llvm-readobj
-			llvm-reduce
-			llvm-remark-size-diff
-			llvm-remarkutil
-			llvm-rtdyld
-			llvm-sim
-			llvm-size
-			llvm-split
-			llvm-stress
-			llvm-strings
-			llvm-strip
-			llvm-symbolizer
-			llvm-tapi-diff
-			llvm-tli-checker
-			llvm-undname
-			llvm-windres
-			llvm-xray
-			obj2yaml
-			opt
-			sancov
-			sanstats
-			split-file
-			verify-uselistorder
-			yaml2obj
-
-			# python modules
-			opt-viewer
-		)
-
-		if llvm_are_manpages_built; then
-			out+=(
-				# manpages
-				docs-dsymutil-man
-				docs-llvm-dwarfdump-man
-				docs-llvm-man
-			)
-		fi
-		use doc && out+=(
-			docs-llvm-html
-		)
-
-		use binutils-plugin && out+=(
-			LLVMgold
-		)
-	fi
-
-	printf "%s${sep}" "${out[@]}"
-}
-
-multilib_src_configure() {
-	local ffi_cflags ffi_ldflags
-	if use libffi; then
-		ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
-		ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		# disable appending VCS revision to the version to improve
-		# direct cache hit ratio
-		-DLLVM_APPEND_VC_REV=OFF
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
-		-DBUILD_SHARED_LIBS=OFF
-		-DLLVM_BUILD_LLVM_DYLIB=ON
-		-DLLVM_LINK_LLVM_DYLIB=ON
-		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
-
-		# cheap hack: LLVM combines both anyway, and the only difference
-		# is that the former list is explicitly verified at cmake time
-		-DLLVM_TARGETS_TO_BUILD=""
-		-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-		-DLLVM_INCLUDE_BENCHMARKS=OFF
-		-DLLVM_INCLUDE_TESTS=$(usex test)
-		-DLLVM_BUILD_TESTS=$(usex test)
-
-		-DLLVM_ENABLE_FFI=$(usex libffi)
-		-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
-		-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
-		-DLLVM_ENABLE_LIBXML2=$(usex xml)
-		-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-		-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
-		-DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
-		-DLLVM_ENABLE_ZSTD=$(usex zstd)
-
-		-DLLVM_HOST_TRIPLE="${CHOST}"
-
-		-DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
-		-DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
-		# used only for llvm-objdump tool
-		-DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
-
-		-DPython3_EXECUTABLE="${PYTHON}"
-
-		# disable OCaml bindings (now in dev-ml/llvm-ocaml)
-		-DOCAMLFIND=NO
-	)
-
-	local suffix=
-	if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
-		# the ABI of the main branch is not stable, so let's include
-		# the commit id in the SOVERSION to contain the breakage
-		suffix+="git${EGIT_VERSION::8}"
-	fi
-	if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
-		# Smart hack: alter version suffix -> SOVERSION when linking
-		# against libc++. This way we won't end up mixing LLVM libc++
-		# libraries with libstdc++ clang, and the other way around.
-		suffix+="+libcxx"
-		mycmakeargs+=(
-			-DLLVM_ENABLE_LIBCXX=ON
-		)
-	fi
-	mycmakeargs+=(
-		-DLLVM_VERSION_SUFFIX="${suffix}"
-	)
-
-	use test && mycmakeargs+=(
-		-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+=(
-				-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-				-DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
-				-DSPHINX_WARNINGS_AS_ERRORS=OFF
-			)
-		fi
-
-		mycmakeargs+=(
-			-DLLVM_BUILD_DOCS=${build_docs}
-			-DLLVM_ENABLE_OCAMLDOC=OFF
-			-DLLVM_ENABLE_SPHINX=${build_docs}
-			-DLLVM_ENABLE_DOXYGEN=OFF
-			-DLLVM_INSTALL_UTILS=ON
-		)
-		use binutils-plugin && mycmakeargs+=(
-			-DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
-		)
-	fi
-
-	# workaround BMI bug in gcc-7 (fixed in 7.4)
-	# https://bugs.gentoo.org/649880
-	# apply only to x86, https://bugs.gentoo.org/650506
-	if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
-			[[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
-	then
-		local CFLAGS="${CFLAGS} -mno-bmi"
-		local CXXFLAGS="${CXXFLAGS} -mno-bmi"
-	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
-
-	grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
-			CMakeCache.txt ||
-		die "Incorrect version, did you update _LLVM_MASTER_MAJOR?"
-	multilib_is_native_abi && check_distribution_components
-}
-
-multilib_src_compile() {
-	tc-env_build cmake_build distribution
-
-	pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
-	pax-mark m "${BUILD_DIR}"/bin/lli
-	pax-mark m "${BUILD_DIR}"/bin/lli-child-target
-
-	if use test; then
-		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
-		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
-		pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
-	fi
-}
-
-multilib_src_test() {
-	# respect TMPDIR!
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check
-}
-
-src_install() {
-	local MULTILIB_CHOST_TOOLS=(
-		/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
-	)
-
-	local MULTILIB_WRAPPED_HEADERS=(
-		/usr/include/llvm/Config/llvm-config.h
-	)
-
-	local LLVM_LDPATHS=()
-	multilib-minimal_src_install
-
-	# move wrapped headers back
-	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
-}
-
-multilib_src_install() {
-	DESTDIR=${D} cmake_build install-distribution
-
-	# move headers to /usr/include for wrapping
-	rm -rf "${ED}"/usr/include || die
-	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
-
-	LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
-}
-
-multilib_src_install_all() {
-	local revord=$(( 9999 - ${LLVM_MAJOR} ))
-	newenvd - "60llvm-${revord}" <<-_EOF_
-		PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
-		# we need to duplicate it in ROOTPATH for Portage to respect...
-		ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
-		MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-		LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
-	_EOF_
-
-	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
-	llvm_install_manpages
-}
-
-pkg_postinst() {
-	elog "You can find additional opt-viewer utility scripts in:"
-	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
-	elog "To use these scripts, you will need Python along with the following"
-	elog "packages:"
-	elog "  dev-python/pygments (for opt-viewer)"
-	elog "  dev-python/pyyaml (for all of them)"
-}
diff --git a/sys-devel/llvm/llvm-16.0.0_rc2.ebuild b/sys-devel/llvm/llvm-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..21023c3bf7e4
--- /dev/null
+++ b/sys-devel/llvm/llvm-16.0.0_rc2.ebuild
@@ -0,0 +1,514 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="https://llvm.org/"
+
+# Additional licenses:
+# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
+# 2. xxhash: BSD.
+# 3. MD5 code: public-domain.
+# 4. ConvertUTF.h: TODO.
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~loong"
+IUSE="
+	+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
+	xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	sys-libs/zlib:0=[${MULTILIB_USEDEP}]
+	binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
+	exegesis? ( dev-libs/libpfm:= )
+	libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+	libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+	ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
+	xar? ( app-arch/xar )
+	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+	z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+	zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+	${RDEPEND}
+	binutils-plugin? ( sys-libs/binutils-libs )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	dev-lang/perl
+	>=dev-util/cmake-3.16
+	sys-devel/gnuconfig
+	kernel_Darwin? (
+		<sys-libs/libcxx-${LLVM_VERSION}.9999
+		>=sys-devel/binutils-apple-5.1
+	)
+	doc? ( $(python_gen_any_dep '
+		dev-python/recommonmark[${PYTHON_USEDEP}]
+		dev-python/sphinx[${PYTHON_USEDEP}]
+	') )
+	libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+	${RDEPEND}
+	!sys-devel/llvm:0
+"
+PDEPEND="
+	sys-devel/llvm-common
+	sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
+	binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake )
+LLVM_TEST_COMPONENTS=( third-party )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+python_check_deps() {
+	use doc || return 0
+
+	python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
+	python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
+}
+
+check_uptodate() {
+	local prod_targets=(
+		$(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
+			| tail -n +2 | head -n -1)
+	)
+	local all_targets=(
+		lib/Target/*/
+	)
+	all_targets=( "${all_targets[@]#lib/Target/}" )
+	all_targets=( "${all_targets[@]%/}" )
+
+	local exp_targets=() i
+	for i in "${all_targets[@]}"; do
+		has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
+	done
+
+	if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+		eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
+		eqawarn "    Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+		eqawarn "Expected: ${exp_targets[*]}"
+		eqawarn
+	fi
+
+	if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+		eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
+		eqawarn "    Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+		eqawarn "Expected: ${prod_targets[*]}"
+	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
+					# shared libs
+					LLVM|LLVMgold)
+						;;
+					# TableGen lib + deps
+					LLVMDemangle|LLVMSupport|LLVMTableGen)
+						;;
+					# static libs
+					LLVM*)
+						continue
+						;;
+					# meta-targets
+					distribution|llvm-libraries)
+						continue
+						;;
+					# used only w/ USE=doc
+					docs-llvm-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
+}
+
+src_prepare() {
+	# disable use of SDK on OSX, bug #568758
+	sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+	# Update config.guess to support more systems
+	cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+	# Verify that the ebuild is up-to-date
+	check_uptodate
+
+	llvm.org_src_prepare
+}
+
+get_distribution_components() {
+	local sep=${1-;}
+
+	local out=(
+		# shared libs
+		LLVM
+		LTO
+		Remarks
+
+		# tools
+		llvm-config
+
+		# common stuff
+		cmake-exports
+		llvm-headers
+
+		# libraries needed for clang-tblgen
+		LLVMDemangle
+		LLVMSupport
+		LLVMTableGen
+	)
+
+	if multilib_is_native_abi; then
+		out+=(
+			# utilities
+			llvm-tblgen
+			FileCheck
+			llvm-PerfectShuffle
+			count
+			not
+			yaml-bench
+			UnicodeNameMappingGenerator
+
+			# tools
+			bugpoint
+			dsymutil
+			llc
+			lli
+			lli-child-target
+			llvm-addr2line
+			llvm-ar
+			llvm-as
+			llvm-bcanalyzer
+			llvm-bitcode-strip
+			llvm-c-test
+			llvm-cat
+			llvm-cfi-verify
+			llvm-config
+			llvm-cov
+			llvm-cvtres
+			llvm-cxxdump
+			llvm-cxxfilt
+			llvm-cxxmap
+			llvm-debuginfo-analyzer
+			llvm-debuginfod
+			llvm-debuginfod-find
+			llvm-diff
+			llvm-dis
+			llvm-dlltool
+			llvm-dwarfdump
+			llvm-dwarfutil
+			llvm-dwp
+			llvm-exegesis
+			llvm-extract
+			llvm-gsymutil
+			llvm-ifs
+			llvm-install-name-tool
+			llvm-jitlink
+			llvm-jitlink-executor
+			llvm-lib
+			llvm-libtool-darwin
+			llvm-link
+			llvm-lipo
+			llvm-lto
+			llvm-lto2
+			llvm-mc
+			llvm-mca
+			llvm-ml
+			llvm-modextract
+			llvm-mt
+			llvm-nm
+			llvm-objcopy
+			llvm-objdump
+			llvm-opt-report
+			llvm-otool
+			llvm-pdbutil
+			llvm-profdata
+			llvm-profgen
+			llvm-ranlib
+			llvm-rc
+			llvm-readelf
+			llvm-readobj
+			llvm-reduce
+			llvm-remark-size-diff
+			llvm-remarkutil
+			llvm-rtdyld
+			llvm-sim
+			llvm-size
+			llvm-split
+			llvm-stress
+			llvm-strings
+			llvm-strip
+			llvm-symbolizer
+			llvm-tapi-diff
+			llvm-tli-checker
+			llvm-undname
+			llvm-windres
+			llvm-xray
+			obj2yaml
+			opt
+			sancov
+			sanstats
+			split-file
+			verify-uselistorder
+			yaml2obj
+
+			# python modules
+			opt-viewer
+		)
+
+		if llvm_are_manpages_built; then
+			out+=(
+				# manpages
+				docs-dsymutil-man
+				docs-llvm-dwarfdump-man
+				docs-llvm-man
+			)
+		fi
+		use doc && out+=(
+			docs-llvm-html
+		)
+
+		use binutils-plugin && out+=(
+			LLVMgold
+		)
+	fi
+
+	printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+	local ffi_cflags ffi_ldflags
+	if use libffi; then
+		ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+		ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		# disable appending VCS revision to the version to improve
+		# direct cache hit ratio
+		-DLLVM_APPEND_VC_REV=OFF
+		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+		-DBUILD_SHARED_LIBS=OFF
+		-DLLVM_BUILD_LLVM_DYLIB=ON
+		-DLLVM_LINK_LLVM_DYLIB=ON
+		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+
+		# cheap hack: LLVM combines both anyway, and the only difference
+		# is that the former list is explicitly verified at cmake time
+		-DLLVM_TARGETS_TO_BUILD=""
+		-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+		-DLLVM_INCLUDE_BENCHMARKS=OFF
+		-DLLVM_INCLUDE_TESTS=$(usex test)
+		-DLLVM_BUILD_TESTS=$(usex test)
+
+		-DLLVM_ENABLE_FFI=$(usex libffi)
+		-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+		-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
+		-DLLVM_ENABLE_LIBXML2=$(usex xml)
+		-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+		-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+		-DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+		-DLLVM_ENABLE_ZSTD=$(usex zstd)
+
+		-DLLVM_HOST_TRIPLE="${CHOST}"
+
+		-DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+		-DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+		# used only for llvm-objdump tool
+		-DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
+
+		-DPython3_EXECUTABLE="${PYTHON}"
+
+		# disable OCaml bindings (now in dev-ml/llvm-ocaml)
+		-DOCAMLFIND=NO
+	)
+
+	local suffix=
+	if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+		# the ABI of the main branch is not stable, so let's include
+		# the commit id in the SOVERSION to contain the breakage
+		suffix+="git${EGIT_VERSION::8}"
+	fi
+	if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+		# Smart hack: alter version suffix -> SOVERSION when linking
+		# against libc++. This way we won't end up mixing LLVM libc++
+		# libraries with libstdc++ clang, and the other way around.
+		suffix+="+libcxx"
+		mycmakeargs+=(
+			-DLLVM_ENABLE_LIBCXX=ON
+		)
+	fi
+	mycmakeargs+=(
+		-DLLVM_VERSION_SUFFIX="${suffix}"
+	)
+
+	use test && mycmakeargs+=(
+		-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+=(
+				-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+				-DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+				-DSPHINX_WARNINGS_AS_ERRORS=OFF
+			)
+		fi
+
+		mycmakeargs+=(
+			-DLLVM_BUILD_DOCS=${build_docs}
+			-DLLVM_ENABLE_OCAMLDOC=OFF
+			-DLLVM_ENABLE_SPHINX=${build_docs}
+			-DLLVM_ENABLE_DOXYGEN=OFF
+			-DLLVM_INSTALL_UTILS=ON
+		)
+		use binutils-plugin && mycmakeargs+=(
+			-DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+		)
+	fi
+
+	# workaround BMI bug in gcc-7 (fixed in 7.4)
+	# https://bugs.gentoo.org/649880
+	# apply only to x86, https://bugs.gentoo.org/650506
+	if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
+			[[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
+	then
+		local CFLAGS="${CFLAGS} -mno-bmi"
+		local CXXFLAGS="${CXXFLAGS} -mno-bmi"
+	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
+
+	grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
+			CMakeCache.txt ||
+		die "Incorrect version, did you update _LLVM_MASTER_MAJOR?"
+	multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+	tc-env_build cmake_build distribution
+
+	pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
+	pax-mark m "${BUILD_DIR}"/bin/lli
+	pax-mark m "${BUILD_DIR}"/bin/lli-child-target
+
+	if use test; then
+		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
+		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
+		pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
+	fi
+}
+
+multilib_src_test() {
+	# respect TMPDIR!
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check
+}
+
+src_install() {
+	local MULTILIB_CHOST_TOOLS=(
+		/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
+	)
+
+	local MULTILIB_WRAPPED_HEADERS=(
+		/usr/include/llvm/Config/llvm-config.h
+	)
+
+	local LLVM_LDPATHS=()
+	multilib-minimal_src_install
+
+	# move wrapped headers back
+	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+}
+
+multilib_src_install() {
+	DESTDIR=${D} cmake_build install-distribution
+
+	# move headers to /usr/include for wrapping
+	rm -rf "${ED}"/usr/include || die
+	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+
+	LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
+}
+
+multilib_src_install_all() {
+	local revord=$(( 9999 - ${LLVM_MAJOR} ))
+	newenvd - "60llvm-${revord}" <<-_EOF_
+		PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+		# we need to duplicate it in ROOTPATH for Portage to respect...
+		ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+		MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+		LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
+	_EOF_
+
+	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+	llvm_install_manpages
+}
+
+pkg_postinst() {
+	elog "You can find additional opt-viewer utility scripts in:"
+	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
+	elog "To use these scripts, you will need Python along with the following"
+	elog "packages:"
+	elog "  dev-python/pygments (for opt-viewer)"
+	elog "  dev-python/pyyaml (for all of them)"
+}
diff --git a/sys-devel/llvm/llvm-17.0.0_pre20230211.ebuild b/sys-devel/llvm/llvm-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..d4655d4dc33f
--- /dev/null
+++ b/sys-devel/llvm/llvm-17.0.0_pre20230211.ebuild
@@ -0,0 +1,514 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit cmake llvm.org multilib-minimal pax-utils python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="https://llvm.org/"
+
+# Additional licenses:
+# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
+# 2. xxhash: BSD.
+# 3. MD5 code: public-domain.
+# 4. ConvertUTF.h: TODO.
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS=""
+IUSE="
+	+binutils-plugin debug doc exegesis libedit +libffi ncurses test xar
+	xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	sys-libs/zlib:0=[${MULTILIB_USEDEP}]
+	binutils-plugin? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
+	exegesis? ( dev-libs/libpfm:= )
+	libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+	libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+	ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
+	xar? ( app-arch/xar )
+	xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+	z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+	zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+	${RDEPEND}
+	binutils-plugin? ( sys-libs/binutils-libs )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	dev-lang/perl
+	>=dev-util/cmake-3.16
+	sys-devel/gnuconfig
+	kernel_Darwin? (
+		<sys-libs/libcxx-${LLVM_VERSION}.9999
+		>=sys-devel/binutils-apple-5.1
+	)
+	doc? ( $(python_gen_any_dep '
+		dev-python/recommonmark[${PYTHON_USEDEP}]
+		dev-python/sphinx[${PYTHON_USEDEP}]
+	') )
+	libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+	${RDEPEND}
+	!sys-devel/llvm:0
+"
+PDEPEND="
+	sys-devel/llvm-common
+	sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
+	binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake )
+LLVM_TEST_COMPONENTS=( third-party )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+python_check_deps() {
+	use doc || return 0
+
+	python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
+	python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
+}
+
+check_uptodate() {
+	local prod_targets=(
+		$(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
+			| tail -n +2 | head -n -1)
+	)
+	local all_targets=(
+		lib/Target/*/
+	)
+	all_targets=( "${all_targets[@]#lib/Target/}" )
+	all_targets=( "${all_targets[@]%/}" )
+
+	local exp_targets=() i
+	for i in "${all_targets[@]}"; do
+		has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
+	done
+
+	if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+		eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
+		eqawarn "    Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+		eqawarn "Expected: ${exp_targets[*]}"
+		eqawarn
+	fi
+
+	if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+		eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
+		eqawarn "    Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+		eqawarn "Expected: ${prod_targets[*]}"
+	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
+					# shared libs
+					LLVM|LLVMgold)
+						;;
+					# TableGen lib + deps
+					LLVMDemangle|LLVMSupport|LLVMTableGen)
+						;;
+					# static libs
+					LLVM*)
+						continue
+						;;
+					# meta-targets
+					distribution|llvm-libraries)
+						continue
+						;;
+					# used only w/ USE=doc
+					docs-llvm-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
+}
+
+src_prepare() {
+	# disable use of SDK on OSX, bug #568758
+	sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+	# Update config.guess to support more systems
+	cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+	# Verify that the ebuild is up-to-date
+	check_uptodate
+
+	llvm.org_src_prepare
+}
+
+get_distribution_components() {
+	local sep=${1-;}
+
+	local out=(
+		# shared libs
+		LLVM
+		LTO
+		Remarks
+
+		# tools
+		llvm-config
+
+		# common stuff
+		cmake-exports
+		llvm-headers
+
+		# libraries needed for clang-tblgen
+		LLVMDemangle
+		LLVMSupport
+		LLVMTableGen
+	)
+
+	if multilib_is_native_abi; then
+		out+=(
+			# utilities
+			llvm-tblgen
+			FileCheck
+			llvm-PerfectShuffle
+			count
+			not
+			yaml-bench
+			UnicodeNameMappingGenerator
+
+			# tools
+			bugpoint
+			dsymutil
+			llc
+			lli
+			lli-child-target
+			llvm-addr2line
+			llvm-ar
+			llvm-as
+			llvm-bcanalyzer
+			llvm-bitcode-strip
+			llvm-c-test
+			llvm-cat
+			llvm-cfi-verify
+			llvm-config
+			llvm-cov
+			llvm-cvtres
+			llvm-cxxdump
+			llvm-cxxfilt
+			llvm-cxxmap
+			llvm-debuginfo-analyzer
+			llvm-debuginfod
+			llvm-debuginfod-find
+			llvm-diff
+			llvm-dis
+			llvm-dlltool
+			llvm-dwarfdump
+			llvm-dwarfutil
+			llvm-dwp
+			llvm-exegesis
+			llvm-extract
+			llvm-gsymutil
+			llvm-ifs
+			llvm-install-name-tool
+			llvm-jitlink
+			llvm-jitlink-executor
+			llvm-lib
+			llvm-libtool-darwin
+			llvm-link
+			llvm-lipo
+			llvm-lto
+			llvm-lto2
+			llvm-mc
+			llvm-mca
+			llvm-ml
+			llvm-modextract
+			llvm-mt
+			llvm-nm
+			llvm-objcopy
+			llvm-objdump
+			llvm-opt-report
+			llvm-otool
+			llvm-pdbutil
+			llvm-profdata
+			llvm-profgen
+			llvm-ranlib
+			llvm-rc
+			llvm-readelf
+			llvm-readobj
+			llvm-reduce
+			llvm-remark-size-diff
+			llvm-remarkutil
+			llvm-rtdyld
+			llvm-sim
+			llvm-size
+			llvm-split
+			llvm-stress
+			llvm-strings
+			llvm-strip
+			llvm-symbolizer
+			llvm-tapi-diff
+			llvm-tli-checker
+			llvm-undname
+			llvm-windres
+			llvm-xray
+			obj2yaml
+			opt
+			sancov
+			sanstats
+			split-file
+			verify-uselistorder
+			yaml2obj
+
+			# python modules
+			opt-viewer
+		)
+
+		if llvm_are_manpages_built; then
+			out+=(
+				# manpages
+				docs-dsymutil-man
+				docs-llvm-dwarfdump-man
+				docs-llvm-man
+			)
+		fi
+		use doc && out+=(
+			docs-llvm-html
+		)
+
+		use binutils-plugin && out+=(
+			LLVMgold
+		)
+	fi
+
+	printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+	local ffi_cflags ffi_ldflags
+	if use libffi; then
+		ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+		ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		# disable appending VCS revision to the version to improve
+		# direct cache hit ratio
+		-DLLVM_APPEND_VC_REV=OFF
+		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+		-DBUILD_SHARED_LIBS=OFF
+		-DLLVM_BUILD_LLVM_DYLIB=ON
+		-DLLVM_LINK_LLVM_DYLIB=ON
+		-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+
+		# cheap hack: LLVM combines both anyway, and the only difference
+		# is that the former list is explicitly verified at cmake time
+		-DLLVM_TARGETS_TO_BUILD=""
+		-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+		-DLLVM_INCLUDE_BENCHMARKS=OFF
+		-DLLVM_INCLUDE_TESTS=$(usex test)
+		-DLLVM_BUILD_TESTS=$(usex test)
+
+		-DLLVM_ENABLE_FFI=$(usex libffi)
+		-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+		-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
+		-DLLVM_ENABLE_LIBXML2=$(usex xml)
+		-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+		-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+		-DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+		-DLLVM_ENABLE_ZSTD=$(usex zstd)
+
+		-DLLVM_HOST_TRIPLE="${CHOST}"
+
+		-DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+		-DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+		# used only for llvm-objdump tool
+		-DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
+
+		-DPython3_EXECUTABLE="${PYTHON}"
+
+		# disable OCaml bindings (now in dev-ml/llvm-ocaml)
+		-DOCAMLFIND=NO
+	)
+
+	local suffix=
+	if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+		# the ABI of the main branch is not stable, so let's include
+		# the commit id in the SOVERSION to contain the breakage
+		suffix+="git${EGIT_VERSION::8}"
+	fi
+	if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+		# Smart hack: alter version suffix -> SOVERSION when linking
+		# against libc++. This way we won't end up mixing LLVM libc++
+		# libraries with libstdc++ clang, and the other way around.
+		suffix+="+libcxx"
+		mycmakeargs+=(
+			-DLLVM_ENABLE_LIBCXX=ON
+		)
+	fi
+	mycmakeargs+=(
+		-DLLVM_VERSION_SUFFIX="${suffix}"
+	)
+
+	use test && mycmakeargs+=(
+		-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+=(
+				-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+				-DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+				-DSPHINX_WARNINGS_AS_ERRORS=OFF
+			)
+		fi
+
+		mycmakeargs+=(
+			-DLLVM_BUILD_DOCS=${build_docs}
+			-DLLVM_ENABLE_OCAMLDOC=OFF
+			-DLLVM_ENABLE_SPHINX=${build_docs}
+			-DLLVM_ENABLE_DOXYGEN=OFF
+			-DLLVM_INSTALL_UTILS=ON
+		)
+		use binutils-plugin && mycmakeargs+=(
+			-DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+		)
+	fi
+
+	# workaround BMI bug in gcc-7 (fixed in 7.4)
+	# https://bugs.gentoo.org/649880
+	# apply only to x86, https://bugs.gentoo.org/650506
+	if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] &&
+			[[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]]
+	then
+		local CFLAGS="${CFLAGS} -mno-bmi"
+		local CXXFLAGS="${CXXFLAGS} -mno-bmi"
+	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
+
+	grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
+			CMakeCache.txt ||
+		die "Incorrect version, did you update _LLVM_MASTER_MAJOR?"
+	multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+	tc-env_build cmake_build distribution
+
+	pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
+	pax-mark m "${BUILD_DIR}"/bin/lli
+	pax-mark m "${BUILD_DIR}"/bin/lli-child-target
+
+	if use test; then
+		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
+		pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
+		pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
+	fi
+}
+
+multilib_src_test() {
+	# respect TMPDIR!
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check
+}
+
+src_install() {
+	local MULTILIB_CHOST_TOOLS=(
+		/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
+	)
+
+	local MULTILIB_WRAPPED_HEADERS=(
+		/usr/include/llvm/Config/llvm-config.h
+	)
+
+	local LLVM_LDPATHS=()
+	multilib-minimal_src_install
+
+	# move wrapped headers back
+	mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+}
+
+multilib_src_install() {
+	DESTDIR=${D} cmake_build install-distribution
+
+	# move headers to /usr/include for wrapping
+	rm -rf "${ED}"/usr/include || die
+	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+
+	LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
+}
+
+multilib_src_install_all() {
+	local revord=$(( 9999 - ${LLVM_MAJOR} ))
+	newenvd - "60llvm-${revord}" <<-_EOF_
+		PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+		# we need to duplicate it in ROOTPATH for Portage to respect...
+		ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+		MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+		LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
+	_EOF_
+
+	docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+	llvm_install_manpages
+}
+
+pkg_postinst() {
+	elog "You can find additional opt-viewer utility scripts in:"
+	elog "  ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
+	elog "To use these scripts, you will need Python along with the following"
+	elog "packages:"
+	elog "  dev-python/pygments (for opt-viewer)"
+	elog "  dev-python/pyyaml (for all of them)"
+}
diff --git a/sys-devel/reflex/Manifest b/sys-devel/reflex/Manifest
index 788836ac491c..7ca8642463f0 100644
--- a/sys-devel/reflex/Manifest
+++ b/sys-devel/reflex/Manifest
@@ -1,4 +1,8 @@
+AUX reflex-20230206-parallel-build.patch 1798 BLAKE2B a5f02b69955ac35e3d0f918bea307d974e8add5cfb5bafe21089ee28f2022da6db006b070a3c60fa22172431de410a6e2d9386836cfe260b2496d7b7629bc6ba SHA512 8d3979e58a1599733d1f9c743acfaebb229f3007552f4da409deac45005e1acc73967a855b86acb45102573e74a18dab010e99a67f8647c10ce86d6f2b118b35
 DIST reflex-20221012.tgz 476024 BLAKE2B 63d9c0ea10d3d86651c88da4f901928d2f112d64b7e3462a6c2b4d6580a138372f2980e18d0b813579a9700084f05d77dfe2547171efa0992c24629ad31ff66e SHA512 9fcf3cd49f598af5ef0e561845c1e8b2fd50e811f5449279692820748b91e9a6a3922d3fe4224820f2c10a2f3aee3049c4f584ace4a058820db21539aa89accc
 DIST reflex-20221012.tgz.asc 729 BLAKE2B 1f35909edb7e9c8a2f7fe30f430c23580a6f192cad8efa65d2b7a282aa107523b90f300908b43f4beb623041988c164da1ff04642a09558c8c24bb77fc777919 SHA512 d98d2dc2b3163784a55f197b0b00157c1906dcbdf3fbc39022d867d786c47f32e5d858eafa3cb83e068454e7198ebdae6283b49b22c6b0ae5ee38ba2ea977a7b
+DIST reflex-20230206.tgz 476372 BLAKE2B d1619518546d8dbb4865f818b538624b8b88947e2f870b6fe7c26c05cc9b9d63e374bfea11c291a6d8284fcf681489345533c1480106690126b3187b2e252187 SHA512 dbbe6150145162de6cf1ec4dadcf156ba320819fc0d034a2e38443fbe2834cf342fcb47f2dbe4578f2825ba7aefe87bf7c9b6667f1733a7003b4c7fe139e8ccb
+DIST reflex-20230206.tgz.asc 729 BLAKE2B 5d2e1a7baa6fc0c8c7da32884e14c6a8b647d29d830be72b381fe2e0134eeb829f78500af2be71ed81f86b9bad9a26ddcd98b233b23810eddad7d035e04363d5 SHA512 8cefa7a27e676c56de8b898a2383b6ce591ff7e704cbbd6cb7a598696a5d0d67e2b89af4a9fdcf138d728a831a80a2fb67cc7c82d21f0b9e470027e28d41ff72
 EBUILD reflex-20221012.ebuild 857 BLAKE2B be5be3f19758602fbd3a3aaeecf040ec7a2acf0c3b062cec951874545d1938ad0bd31f8cc177fc3647a6c5524694745e3368ab3100b8d7cb9ad95605e9a66d31 SHA512 c49b306665fa54a2c1a868468566f40db79256375e8c885667da5f041d2abb8319e24f1af6206f97b8445727d1332c6b6c7dcd1c203e05bf63ab3656ea8412f7
+EBUILD reflex-20230206.ebuild 935 BLAKE2B ed87885b9a0aa6dc0ea5b0907d2aa01d636b26c483e0f4e54b4d8c33fca4b54a15dbf5a83f92673bc38240c1ac8683ae3659dc9fcb5a269d7ab4918297a2448f SHA512 b1e53cb93cae78193717fc9f67773e18d24e8ffddd209522914c132e2d53c64569e423c886faafe16ab064f51871017cdc2374dc60d36c754420d865f6da5787
 MISC metadata.xml 405 BLAKE2B 593dd39b5718afeb9441efadf2bf2ecf533ce076e21d7271fe6dd4a0f0c93544cf6b8bf1bd0e2b67b76213b5a0aa2687d95effd268976d378c701e49ae9404ab SHA512 a9345e50a04acc81a7f0a1213c8986d1bd068b6aceb0170a6a1bc8772285ba6794799470739a8c9f4ee6b2dfb7fdb440ceb1f0c639f3d0775a77db500b55ef2b
diff --git a/sys-devel/reflex/files/reflex-20230206-parallel-build.patch b/sys-devel/reflex/files/reflex-20230206-parallel-build.patch
new file mode 100644
index 000000000000..ecfadc14639f
--- /dev/null
+++ b/sys-devel/reflex/files/reflex-20230206-parallel-build.patch
@@ -0,0 +1,54 @@
+From 16cc516dfbb6dac01fcd0bfcb717a681b132c0b4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org>
+Date: Thu, 9 Feb 2023 20:34:48 +0100
+Subject: [PATCH] Remove .bootstrap and scan.c target race
+
+If the parallelism of a make invocation is great enough to generate both
+.bootstrap and scan.c simultaneously, there's a great chance that the
+rule in .bootstrap will be overruled by the (possibly failing)
+redirection in the scan.c, resulting in an empty scan.c and a failing
+build.  Instead, we can use an empty scan.c as an (inaccurate) proxy for
+the boostrap.
+
+Bug: https://bugs.gentoo.org/883611
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -126,14 +126,9 @@ PERF_REPORT     = -p
+ 
+ all: $(FLEX)
+ 
+-$(FLEX): .bootstrap $(OBJECTS) $(FLEXLIB)
++$(FLEX): $(OBJECTS) $(FLEXLIB)
+ 	@ECHO_LD@$(CC) $(CFLAGS) -o $(FLEX) $(LDFLAGS) $(OBJECTS) $(FLEXLIB) $(LIBS)
+ 
+-.bootstrap: initscan.c
+-	@rm -f scan.c
+-	cp $(srcdir)/initscan.c scan.c
+-	touch .bootstrap
+-
+ parse.c: parse.y
+ 	$(YACC) -d $(srcdir)/parse.y
+ 	@sed '/extern char.*malloc/d' <y.tab.c >parse.tmp
+@@ -145,6 +140,7 @@ parse.h: parse.c
+ 
+ scan.c: scan.l
+ 	$(SHELL) $(srcdir)/mkscan.sh $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) $(srcdir)/scan.l >scan.c
++	grep . $@ || cp initscan.c scan.c
+ 
+ scan$o: scan.c parse.h flexdef.h config.h
+ yylex$o: yylex.c parse.h flexdef.h config.h
+@@ -259,8 +255,8 @@ clean :: mostlyclean
+ 		$(FLEXLIB) config.log config.cache
+ 
+ distclean :: clean
+-	rm -f .bootstrap $(FLEX) scan.c tags TAGS Makefile man2html.tmp \
+-		config.status config.h stamp-h config.log config.cache
++	rm -f $(FLEX) scan.c tags TAGS Makefile man2html.tmp config.status \
++		config.h stamp-h config.log config.cache
+ 
+ maintainer-clean: distclean
+ 	@echo "This command is intended for maintainers to use;"
+-- 
+2.39.1
+
+
diff --git a/sys-devel/reflex/reflex-20230206.ebuild b/sys-devel/reflex/reflex-20230206.ebuild
new file mode 100644
index 000000000000..730f0aa25747
--- /dev/null
+++ b/sys-devel/reflex/reflex-20230206.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/thomasdickey.asc
+inherit verify-sig
+
+DESCRIPTION="This is a variant of the flex fast lexical scanner"
+HOMEPAGE="https://invisible-island.net/reflex/"
+SRC_URI="https://invisible-island.net/archives/${PN}/${P}.tgz"
+SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.asc )"
+
+LICENSE="FLEX"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+PATCHES=(
+	"${FILESDIR}"/reflex-20230206-parallel-build.patch
+)
+
+src_install() {
+	default
+
+	# Workaround assumption of gzip compressed manpage
+	# Reported upstream via email
+	rm "${ED}"/usr/share/man/man1/reflex++.1.gz || die
+	dosym reflex.1 /usr/share/man/man1/reflex++.1 || die
+}
-- 
cgit v1.2.3