summaryrefslogtreecommitdiff
path: root/llvm-runtimes
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2025-09-02 16:32:22 +0200
committerMichał Górny <mgorny@gentoo.org>2025-09-02 16:32:22 +0200
commitb8500b6fadfa86d3a8bd2a5953e25e7d56fe8c5d (patch)
treecb866d08bf59cf309ccce1b1d5c9a435d5d4e5d2 /llvm-runtimes
parent7a05d3b7513afa0cd42488ecf22350fcef9ac1d2 (diff)
downloadgentoo-b8500b6fadfa86d3a8bd2a5953e25e7d56fe8c5d.tar.gz
gentoo-b8500b6fadfa86d3a8bd2a5953e25e7d56fe8c5d.tar.bz2
gentoo-b8500b6fadfa86d3a8bd2a5953e25e7d56fe8c5d.zip
Move {llvm-core → llvm-runtimes}/clang-runtime
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'llvm-runtimes')
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-15.0.7.ebuild26
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-16.0.6.ebuild40
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-17.0.6.ebuild40
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-18.1.8.ebuild40
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-19.1.7.ebuild31
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-20.1.8-r1.ebuild127
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-20.1.8.ebuild131
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-21.1.0-r1.ebuild127
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-21.1.0.ebuild131
-rw-r--r--llvm-runtimes/clang-runtime/clang-runtime-22.ebuild126
-rw-r--r--llvm-runtimes/clang-runtime/metadata.xml22
11 files changed, 841 insertions, 0 deletions
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-15.0.7.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-15.0.7.ebuild
new file mode 100644
index 000000000000..45a3f0c61896
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-15.0.7.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+
+LICENSE="metapackage"
+SLOT="$(ver_cut 1-3)"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? ( >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}] )
+"
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-16.0.6.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-16.0.6.ebuild
new file mode 100644
index 000000000000..3db3e487be91
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-16.0.6.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 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="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? ( >=llvm-runtimes/openmp-${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/llvm-runtimes/clang-runtime/clang-runtime-17.0.6.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-17.0.6.ebuild
new file mode 100644
index 000000000000..3db3e487be91
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-17.0.6.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 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="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? ( >=llvm-runtimes/openmp-${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/llvm-runtimes/clang-runtime/clang-runtime-18.1.8.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-18.1.8.ebuild
new file mode 100644
index 000000000000..552d0646e540
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-18.1.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 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="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? ( >=llvm-runtimes/openmp-${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/llvm-runtimes/clang-runtime/clang-runtime-19.1.7.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-19.1.7.ebuild
new file mode 100644
index 000000000000..7bcb9295b327
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-19.1.7.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+
+LICENSE="metapackage"
+SLOT="${PV%%.*}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx offload openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+"
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-20.1.8-r1.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-20.1.8-r1.ebuild
new file mode 100644
index 000000000000..0d8e7175a9df
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-20.1.8-r1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+S=${WORKDIR}
+
+LICENSE="public-domain"
+SLOT="${PV%%.*}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ +compiler-rt libcxx offload openmp +sanitize
+ default-compiler-rt default-libcxx default-lld llvm-libunwind polly
+"
+REQUIRED_USE="
+ sanitize? ( compiler-rt )
+"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+
+ llvm-core/clang-common
+
+ ~llvm-core/clang-linker-config-${SLOT}[default-lld(-)?]
+ ~llvm-runtimes/clang-rtlib-config-${SLOT}[default-compiler-rt(-)?]
+ ~llvm-runtimes/clang-unwindlib-config-${SLOT}[default-compiler-rt(-)?,llvm-libunwind(-)?]
+ ~llvm-runtimes/clang-stdlib-config-${SLOT}[default-libcxx(-)?]
+
+ polly? ( ~llvm-core/polly-${PV} )
+"
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++,-cpp}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @../${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+ done
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple=$(get_abi_CHOST "${abi}")
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_install() {
+ insinto "/etc/clang/${SLOT}"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ @gentoo-rtlib.cfg
+ @gentoo-unwindlib.cfg
+ @gentoo-stdlib.cfg
+ @gentoo-linker.cfg
+ EOF
+ newins - gentoo-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+ if use polly; then
+ cat >> "${ED}/etc/clang/${SLOT}/gentoo-plugins.cfg" <<-EOF || die
+ -fpass-plugin=LLVMPolly.so
+ -fplugin=LLVMPolly.so
+ EOF
+ fi
+
+ multilib_foreach_abi doclang_cfg
+}
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-20.1.8.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-20.1.8.ebuild
new file mode 100644
index 000000000000..6df1a5baf4bf
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-20.1.8.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+S=${WORKDIR}
+
+LICENSE="public-domain"
+SLOT="${PV%%.*}"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ +compiler-rt libcxx offload openmp +sanitize
+ default-compiler-rt default-libcxx default-lld llvm-libunwind polly
+"
+REQUIRED_USE="
+ sanitize? ( compiler-rt )
+"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+
+ llvm-core/clang-common
+ default-compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( ~llvm-core/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+ polly? ( ~llvm-core/polly-${PV} )
+"
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++,-cpp}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @../${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+ done
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple=$(get_abi_CHOST "${abi}")
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_install() {
+ insinto "/etc/clang/${SLOT}"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/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-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+ if use polly; then
+ cat >> "${ED}/etc/clang/${SLOT}/gentoo-plugins.cfg" <<-EOF || die
+ -fpass-plugin=LLVMPolly.so
+ -fplugin=LLVMPolly.so
+ EOF
+ fi
+
+ multilib_foreach_abi doclang_cfg
+}
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-21.1.0-r1.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-21.1.0-r1.ebuild
new file mode 100644
index 000000000000..0d8e7175a9df
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-21.1.0-r1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+S=${WORKDIR}
+
+LICENSE="public-domain"
+SLOT="${PV%%.*}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ +compiler-rt libcxx offload openmp +sanitize
+ default-compiler-rt default-libcxx default-lld llvm-libunwind polly
+"
+REQUIRED_USE="
+ sanitize? ( compiler-rt )
+"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+
+ llvm-core/clang-common
+
+ ~llvm-core/clang-linker-config-${SLOT}[default-lld(-)?]
+ ~llvm-runtimes/clang-rtlib-config-${SLOT}[default-compiler-rt(-)?]
+ ~llvm-runtimes/clang-unwindlib-config-${SLOT}[default-compiler-rt(-)?,llvm-libunwind(-)?]
+ ~llvm-runtimes/clang-stdlib-config-${SLOT}[default-libcxx(-)?]
+
+ polly? ( ~llvm-core/polly-${PV} )
+"
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++,-cpp}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @../${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+ done
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple=$(get_abi_CHOST "${abi}")
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_install() {
+ insinto "/etc/clang/${SLOT}"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ @gentoo-rtlib.cfg
+ @gentoo-unwindlib.cfg
+ @gentoo-stdlib.cfg
+ @gentoo-linker.cfg
+ EOF
+ newins - gentoo-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+ if use polly; then
+ cat >> "${ED}/etc/clang/${SLOT}/gentoo-plugins.cfg" <<-EOF || die
+ -fpass-plugin=LLVMPolly.so
+ -fplugin=LLVMPolly.so
+ EOF
+ fi
+
+ multilib_foreach_abi doclang_cfg
+}
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-21.1.0.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-21.1.0.ebuild
new file mode 100644
index 000000000000..128601d32226
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-21.1.0.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+S=${WORKDIR}
+
+LICENSE="public-domain"
+SLOT="${PV%%.*}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ +compiler-rt libcxx offload openmp +sanitize
+ default-compiler-rt default-libcxx default-lld llvm-libunwind polly
+"
+REQUIRED_USE="
+ sanitize? ( compiler-rt )
+"
+
+RDEPEND="
+ compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+
+ llvm-core/clang-common
+ default-compiler-rt? (
+ ~llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( ~llvm-core/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+ polly? ( ~llvm-core/polly-${PV} )
+"
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++,-cpp}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @../${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+ done
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple=$(get_abi_CHOST "${abi}")
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_install() {
+ insinto "/etc/clang/${SLOT}"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/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-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+ if use polly; then
+ cat >> "${ED}/etc/clang/${SLOT}/gentoo-plugins.cfg" <<-EOF || die
+ -fpass-plugin=LLVMPolly.so
+ -fplugin=LLVMPolly.so
+ EOF
+ fi
+
+ multilib_foreach_abi doclang_cfg
+}
diff --git a/llvm-runtimes/clang-runtime/clang-runtime-22.ebuild b/llvm-runtimes/clang-runtime/clang-runtime-22.ebuild
new file mode 100644
index 000000000000..e9cd830b2b44
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/clang-runtime-22.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib multilib-build
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+S=${WORKDIR}
+
+LICENSE="public-domain"
+SLOT="${PV}"
+IUSE="
+ +compiler-rt libcxx offload openmp +sanitize
+ default-compiler-rt default-libcxx default-lld llvm-libunwind polly
+"
+REQUIRED_USE="
+ sanitize? ( compiler-rt )
+"
+
+RDEPEND="
+ compiler-rt? (
+ >=llvm-runtimes/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ >=llvm-runtimes/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=llvm-runtimes/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? (
+ >=llvm-runtimes/openmp-${PV}[${MULTILIB_USEDEP}]
+ offload? (
+ >=llvm-runtimes/offload-${PV}
+ )
+ )
+
+ llvm-core/clang-common
+
+ ~llvm-core/clang-linker-config-${SLOT}[default-lld(-)?]
+ ~llvm-runtimes/clang-rtlib-config-${SLOT}[default-compiler-rt(-)?]
+ ~llvm-runtimes/clang-unwindlib-config-${SLOT}[default-compiler-rt(-)?,llvm-libunwind(-)?]
+ ~llvm-runtimes/clang-stdlib-config-${SLOT}[default-libcxx(-)?]
+
+ polly? ( >=llvm-core/polly-${PV}:${SLOT} )
+"
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++,-cpp}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @../${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+ done
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${SLOT}/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple=$(get_abi_CHOST "${abi}")
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_install() {
+ insinto "/etc/clang/${SLOT}"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ @gentoo-rtlib.cfg
+ @gentoo-unwindlib.cfg
+ @gentoo-stdlib.cfg
+ @gentoo-linker.cfg
+ EOF
+ newins - gentoo-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+ if use polly; then
+ cat >> "${ED}/etc/clang/${SLOT}/gentoo-plugins.cfg" <<-EOF || die
+ -fpass-plugin=LLVMPolly.so
+ -fplugin=LLVMPolly.so
+ EOF
+ fi
+
+ multilib_foreach_abi doclang_cfg
+}
diff --git a/llvm-runtimes/clang-runtime/metadata.xml b/llvm-runtimes/clang-runtime/metadata.xml
new file mode 100644
index 000000000000..b2327e075049
--- /dev/null
+++ b/llvm-runtimes/clang-runtime/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>llvm@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="compiler-rt">Install <pkg>llvm-runtimes/compiler-rt</pkg> for -rtlib=compiler-rt</flag>
+ <flag name="libcxx">Install <pkg>llvm-runtimes/libcxx</pkg> for -stdlib=libc++</flag>
+ <flag name="offload">Install <pkg>llvm-runtimes/offload</pkg> for -fopenmp GPU offloading</flag>
+ <flag name="openmp">Install <pkg>llvm-runtimes/openmp</pkg> for -fopenmp support</flag>
+ <flag name="sanitize">Enable compiler-rt sanitizer (-fsanitize*) support</flag>
+
+ <flag name="default-compiler-rt">Use compiler-rt + libunwind instead of libgcc as the default rtlib for clang</flag>
+ <flag name="default-libcxx">Use libc++ instead of libstdc++ as the default stdlib for clang</flag>
+ <flag name="default-lld">Use lld as the default linker for clang</flag>
+ <flag name="polly">Load Polly plugin (you still need -mllvm -polly to use it)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">llvm/llvm-project</remote-id>
+ </upstream>
+</pkgmetadata>