summaryrefslogtreecommitdiff
path: root/llvm-core
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-21 23:00:32 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-04-21 23:00:32 +0000
commit99f39a7cabc52da78c2ca314f1427cb76f0ffe63 (patch)
treeb730100803af795906e3f2f967d630c3b1a5015c /llvm-core
parent7a9d8caa231727ec9a1f2581be86973de06b58e4 (diff)
downloadbaldeagleos-repo-99f39a7cabc52da78c2ca314f1427cb76f0ffe63.tar.gz
baldeagleos-repo-99f39a7cabc52da78c2ca314f1427cb76f0ffe63.tar.xz
baldeagleos-repo-99f39a7cabc52da78c2ca314f1427cb76f0ffe63.zip
Adding metadata
Diffstat (limited to 'llvm-core')
-rw-r--r--llvm-core/clang-common/Manifest2
-rw-r--r--llvm-core/clang-common/clang-common-22.1.4.ebuild339
-rw-r--r--llvm-core/clang/Manifest2
-rw-r--r--llvm-core/clang/clang-22.1.4.ebuild470
-rw-r--r--llvm-core/flang/Manifest2
-rw-r--r--llvm-core/flang/flang-22.1.4.ebuild102
-rw-r--r--llvm-core/libclc/Manifest2
-rw-r--r--llvm-core/libclc/libclc-22.1.4.ebuild65
-rw-r--r--llvm-core/libclc/libclc-23.0.0.9999.ebuild1
-rw-r--r--llvm-core/lld/Manifest2
-rw-r--r--llvm-core/lld/lld-22.1.4.ebuild93
-rw-r--r--llvm-core/lldb/Manifest2
-rw-r--r--llvm-core/lldb/lldb-22.1.4.ebuild115
-rw-r--r--llvm-core/llvm-common/Manifest2
-rw-r--r--llvm-core/llvm-common/llvm-common-22.1.4.ebuild54
-rw-r--r--llvm-core/llvm/Manifest2
-rw-r--r--llvm-core/llvm/llvm-22.1.4.ebuild569
-rw-r--r--llvm-core/llvm/llvm-23.0.0.9999.ebuild3
-rw-r--r--llvm-core/mlir/Manifest2
-rw-r--r--llvm-core/mlir/mlir-22.1.4.ebuild234
-rw-r--r--llvm-core/polly/Manifest2
-rw-r--r--llvm-core/polly/polly-22.1.4.ebuild60
22 files changed, 2124 insertions, 1 deletions
diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest
index 26ff3209a956..b318b3f6a830 100644
--- a/llvm-core/clang-common/Manifest
+++ b/llvm-core/clang-common/Manifest
@@ -14,5 +14,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/clang-common/clang-common-22.1.4.ebuild b/llvm-core/clang-common/clang-common-22.1.4.ebuild
new file mode 100644
index 000000000000..c34801f4a07e
--- /dev/null
+++ b/llvm-core/clang-common/clang-common-22.1.4.ebuild
@@ -0,0 +1,339 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 elisp-common llvm.org multilib
+
+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="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="
+ default-compiler-rt default-libcxx default-lld
+ bootstrap-prefix cet emacs hardened llvm-libunwind
+"
+
+PDEPEND="
+ default-compiler-rt? (
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}[compiler-rt]
+ 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 )
+"
+# enforce flags on clang-runtime as well to aid transition
+PDEPEND+="
+ llvm-runtimes/clang-runtime[default-compiler-rt(-)?,default-libcxx(-)?,default-lld(-)?,llvm-libunwind(-)?]
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+IDEPEND="
+ !default-compiler-rt? ( sys-devel/gcc-config )
+ !default-libcxx? ( sys-devel/gcc-config )
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+
+LLVM_COMPONENTS=( clang/utils clang/tools/clang-format )
+llvm.org_set_globals
+
+SITEFILE="50clang-gentoo.el"
+
+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 "llvm-core/clang[${flag}]"; then
+ missing_flags+=( "${flag}" )
+ fi
+ done
+
+ if [[ ${missing_flags[@]} ]]; then
+ eerror "It seems that you have the following flags set on llvm-core/clang:"
+ eerror
+ eerror " ${missing_flags[*]}"
+ eerror
+ eerror "The default runtimes are now set via flags on llvm-core/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 " llvm-core/clang-common ${missing_flags[*]}"
+ eerror
+ eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+ die "Mismatched defaults detected between llvm-core/clang and llvm-core/clang-common"
+ fi
+}
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @gentoo-common.cfg
+ @gentoo-common-ld.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
+ -lc++abi
+ EOF
+ fi
+
+ newins - "${triple}-clang-cpp.cfg" <<-EOF
+ # This configuration file is used by the ${triple}-clang-cpp driver.
+ @gentoo-common.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+
+ # 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/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple="${1}"
+
+ _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_compile() {
+ default
+ use emacs && elisp-compile ../tools/clang-format/clang-format.el
+}
+
+src_install() {
+ newbashcomp bash-autocomplete.sh clang
+
+ insinto /etc/clang
+ 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-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
+ # bug #870001
+ -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
+ EOF
+
+ # clang-cpp does not like link args being passed to it when directly
+ # invoked, so use a separate configuration file.
+ newins - gentoo-common-ld.cfg <<-EOF
+ # This file contains flags common to clang and clang++
+ @gentoo-hardened-ld.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.
+ -Xarch_host -fstack-clash-protection
+ -Xarch_host -fstack-protector-strong
+ -fPIE
+ -include "${EPREFIX}/usr/include/gentoo/fortify.h"
+ EOF
+
+ newins - gentoo-cet.cfg <<-EOF
+ -Xarch_host -fcf-protection=$(usex cet full none)
+ EOF
+
+ if use kernel_Darwin; then
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # There was -Wl,-z,relro here, but it's not supported on Mac
+ # TODO: investigate whether -bind_at_load or -read_only_stubs will do the job
+ EOF
+ else
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # Some of these options are added unconditionally, regardless of
+ # USE=hardened, for parity with sys-devel/gcc.
+ -Wl,-z,relro
+ -Wl,-z,now
+ EOF
+ fi
+
+ dodir /usr/include/gentoo
+
+ cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
+ /* __has_include is an extension, but it's fine, because this is only
+ for Clang anyway. */
+ #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__)
+ # include <stdc-predef.h>
+ #endif
+ EOF
+
+ 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
+ #ifdef __clang__
+ # pragma clang system_header
+ #endif
+ #ifndef _FORTIFY_SOURCE
+ # if defined(__has_feature)
+ # define __GENTOO_HAS_FEATURE(x) __has_feature(x)
+ # else
+ # define __GENTOO_HAS_FEATURE(x) 0
+ # endif
+ #
+ # if !defined(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
+ # else
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ #
+ # undef __GENTOO_HAS_FEATURE
+ #endif
+ EOF
+
+ # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
+ # non-hardened?
+ if use hardened ; then
+ cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ -Xarch_host -D_GLIBCXX_ASSERTIONS
+
+ # Analogue to GLIBCXX_ASSERTIONS
+ # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+ # https://libcxx.llvm.org/Hardening.html#using-hardened-mode
+ -Xarch_host -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
+ EOF
+
+ cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ EOF
+ fi
+
+ # We only install config files for supported ABIs because unprefixed tools
+ # might be used for crosscompilation where e.g. PIE may not be supported.
+ # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug #912685.
+ local abi
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ doclang_cfg "${abi_chost}"
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ # Gentoo Prefix on Darwin
+ -Wl,-search_paths_first
+ EOF
+ if use bootstrap-prefix ; then
+ # bootstrap-prefix is only set during stage2 of bootstrapping
+ # Prefix, where EPREFIX is set to EPREFIX/tmp.
+ # Here we need to point it at the future lib dir of the stage3's
+ # EPREFIX.
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/../usr/lib
+ -Wl,-L,${EPREFIX}/../usr/lib
+ -isystem ${EPREFIX}/../usr/include
+ EOF
+ fi
+ # Using -Wl,-L instead of -L to trick compiler driver to put it
+ # after -isysroot's internal -L
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -Wl,-L,${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ EOF
+ fi
+
+ if use emacs ; then
+ elisp-install clang ../tools/clang-format/clang-format.{el,elc}
+ elisp-make-site-file "${SITEFILE}" clang
+ fi
+}
+
+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
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/clang/Manifest b/llvm-core/clang/Manifest
index f8aee64b9d41..8c391ee56acd 100644
--- a/llvm-core/clang/Manifest
+++ b/llvm-core/clang/Manifest
@@ -24,5 +24,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/clang/clang-22.1.4.ebuild b/llvm-core/clang/clang-22.1.4.ebuild
new file mode 100644
index 000000000000..9abff583187e
--- /dev/null
+++ b/llvm-core/clang/clang-22.1.4.ebuild
@@ -0,0 +1,470 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit cmake llvm.org multilib multilib-minimal
+inherit prefix python-single-r1 toolchain-funcs
+
+DESCRIPTION="C language family frontend for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+# MSVCSetupApi.h: MIT
+# sorttable.js: MIT
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
+ static-analyzer? ( dev-lang/perl:* )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ${DEPEND}
+ >=llvm-core/clang-common-${PV}
+ !<llvm-core/llvm-22.1.0-r2:22
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? ( ~llvm-core/lld-${PV} )
+ xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}
+ llvm-core/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=(
+ clang clang-tools-extra cmake
+)
+LLVM_MANPAGES=1
+LLVM_TEST_COMPONENTS=(
+ llvm/utils
+)
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_cond_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+# Multilib notes:
+# 1. ABI_* flags control ABIs libclang* is built for only.
+# 2. clang is always capable of compiling code for all ABIs for enabled
+# target. However, you will need appropriate crt* files (installed
+# e.g. by sys-devel/gcc and sys-libs/glibc).
+# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
+# in the current profile (i.e. alike supported by sys-devel/gcc).
+#
+# Therefore: use llvm-core/clang[${MULTILIB_USEDEP}] only if you need
+# multilib clang* libraries (not runtime, not wrappers).
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/clang
+
+ llvm.org_src_prepare
+
+ # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
+ eprefixify \
+ lib/Lex/InitHeaderSearch.cpp \
+ lib/Driver/ToolChains/Darwin.cpp || die
+
+ if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
+ sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
+ fi
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ clang-libraries|distribution)
+ continue
+ ;;
+ # tools
+ clang|clangd|clang-*)
+ ;;
+ # static libraries
+ clang*|findAllSymbols)
+ continue
+ ;;
+ # conditional to USE=doc
+ docs-clang-html|docs-clang-tools-html)
+ use doc || continue
+ ;;
+ # built only with tests
+ c-index-test)
+ continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # common stuff
+ clang-cmake-exports
+ clang-headers
+ clang-resource-headers
+ libclang-headers
+
+ aarch64-resource-headers
+ arm-common-resource-headers
+ arm-resource-headers
+ core-resource-headers
+ cuda-resource-headers
+ hexagon-resource-headers
+ hip-resource-headers
+ hlsl-resource-headers
+ mips-resource-headers
+ opencl-resource-headers
+ openmp-resource-headers
+ ppc-htm-resource-headers
+ ppc-resource-headers
+ riscv-resource-headers
+ spirv-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
+ clang
+ clang-format
+ clang-installapi
+ clang-linker-wrapper
+ clang-nvlink-wrapper
+ clang-offload-bundler
+ clang-refactor
+ clang-repl
+ clang-scan-deps
+ clang-sycl-linker
+ diagtool
+ hmaptool
+ offload-arch
+
+ # needed for cross-compiling Clang
+ clang-tblgen
+ )
+
+ if use extra; then
+ out+=(
+ # extra tools
+ clang-apply-replacements
+ clang-change-namespace
+ clang-doc
+ clang-include-cleaner
+ clang-include-fixer
+ clang-move
+ clang-query
+ clang-reorder-fields
+ clang-tidy
+ clang-tidy-headers
+ clangd
+ find-all-symbols
+ modularize
+ pp-trace
+ )
+
+ use kernel_Darwin && out+=( ClangdXPCLib )
+ 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"
+ -DLLVM_ROOT="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
+ # relative to bindir
+ -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ -DCLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ # these are not propagated reliably, so redefine them
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ # libgomp support fails to find headers without explicit -I
+ # furthermore, it provides only syntax checking
+ -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+ -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+ -DCLANG_ENABLE_LIBXML2=$(usex xml)
+ -DCLANG_ENABLE_OBJC_REWRITER=ON
+ -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+ # TODO: CLANG_ENABLE_HLSL?
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if ! use elibc_musl; then
+ mycmakeargs+=(
+ -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
+ )
+ fi
+
+ use test && mycmakeargs+=(
+ -DLLVM_BUILD_TESTS=ON
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=ON
+ -DLLVM_ENABLE_SPHINX=ON
+ -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ if use extra; then
+ mycmakeargs+=(
+ -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
+ )
+ fi
+ fi
+ mycmakeargs+=(
+ -DCLANG_INCLUDE_DOCS=${build_docs}
+ )
+ fi
+ if multilib_native_use extra; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
+ -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
+ )
+ else
+ mycmakeargs+=(
+ -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
+ )
+ fi
+
+ if tc-is-cross-compiler; then
+ has_version -b llvm-core/clang:${LLVM_MAJOR} ||
+ die "llvm-core/clang:${LLVM_MAJOR} is required on the build host."
+ local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
+ mycmakeargs+=(
+ -DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
+ -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
+ )
+ fi
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local test_targets=( check-clang )
+ if multilib_native_use extra; then
+ test_targets+=(
+ check-clang-tools
+ check-clangd
+ )
+ fi
+ cmake_build "${test_targets[@]}"
+}
+
+src_install() {
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/clang/Config/config.h
+ )
+
+ multilib-minimal_src_install
+
+ # Move runtime headers to /usr/lib/clang, where they belong
+ mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
+ # move (remaining) wrapped headers back
+ if use extra; then
+ mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
+ fi
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+
+ # Apply CHOST and version suffix to clang tools
+ local clang_tools=( clang clang++ clang-cl clang-cpp )
+ local abi i
+
+ # cmake gives us:
+ # - clang-X
+ # - clang -> clang-X
+ # - clang++, clang-cl, clang-cpp -> clang
+ # we want to have:
+ # - clang-X
+ # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
+ # - clang, clang++, clang-cl, clang-cpp -> clang*-X
+ # also in CHOST variant
+ for i in "${clang_tools[@]:1}"; do
+ rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
+ dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
+ dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
+ done
+
+ # now create target symlinks for all supported ABIs
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ for i in "${clang_tools[@]}"; do
+ dosym "${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
+ dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
+ done
+ done
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping & ABI mismatch checks
+ # (also drop the version suffix from runtime headers)
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
+ if multilib_native_use extra; then
+ # don't wrap clang-tidy headers, the list is too long
+ # (they're fine for non-native ABI but enabling the targets is problematic)
+ mv "${ED}"/usr/include/clang-tidy "${T}/" || die
+ fi
+}
+
+multilib_src_install_all() {
+ python_fix_shebang "${ED}"
+ if use static-analyzer; then
+ python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
+ fi
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+ # match 'html' non-compression
+ use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
+ # +x for some reason; TODO: investigate
+ use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow update all
+ fi
+
+ elog "You can find additional utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
+ if use extra; then
+ elog "Some of them are vim integration scripts (with instructions inside)."
+ elog "The run-clang-tidy.py script requires the following additional package:"
+ elog " dev-python/pyyaml"
+ fi
+}
+
+pkg_postrm() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow clean all
+ fi
+}
diff --git a/llvm-core/flang/Manifest b/llvm-core/flang/Manifest
index b08882e179ec..fde391316c7c 100644
--- a/llvm-core/flang/Manifest
+++ b/llvm-core/flang/Manifest
@@ -4,5 +4,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/flang/flang-22.1.4.ebuild b/llvm-core/flang/flang-22.1.4.ebuild
new file mode 100644
index 000000000000..9773d4d961ea
--- /dev/null
+++ b/llvm-core/flang/flang-22.1.4.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="LLVM's Fortran frontend"
+HOMEPAGE="https://flang.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+clang debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/clang-${PV}[debug=]
+ ~llvm-core/llvm-${PV}[debug=]
+ ~llvm-core/mlir-${PV}[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+PDEPEND="
+ >=llvm-runtimes/flang-rt-${PV}:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? ( llvm-core/clang )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( flang cmake )
+LLVM_TEST_COMPONENTS=( clang/test/Driver mlir/test/lib )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && tc-is-gcc; then
+ ewarn "Building using GCC requires lots of memory (up to 10 GiB per process)."
+ ewarn "Consider enabling USE=clang."
+ ewarn "See https://gcc.gnu.org/PR119705"
+ fi
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ if use clang; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ # flang does not feature a dylib, so do not install libraries
+ # or headers
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+ # installed by llvm-runtimes/flang-rt
+ -DFLANG_INCLUDE_RUNTIME=OFF
+
+ # TODO: always enable to obtain reproducible tools
+ -DFLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-flang
+}
diff --git a/llvm-core/libclc/Manifest b/llvm-core/libclc/Manifest
index 26ff3209a956..b318b3f6a830 100644
--- a/llvm-core/libclc/Manifest
+++ b/llvm-core/libclc/Manifest
@@ -14,5 +14,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/libclc/libclc-22.1.4.ebuild b/llvm-core/libclc/libclc-22.1.4.ebuild
new file mode 100644
index 000000000000..019e48c89ad9
--- /dev/null
+++ b/llvm-core/libclc/libclc-22.1.4.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 22 )
+PYTHON_COMPAT=( python3_{10..14} )
+inherit cmake llvm.org llvm-r1 python-any-r1
+
+DESCRIPTION="OpenCL C library"
+HOMEPAGE="https://libclc.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+IUSE="+spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ ')
+ spirv? (
+ >=dev-util/spirv-llvm-translator-22:*
+ )
+"
+
+LLVM_COMPONENTS=( libclc )
+llvm.org_set_globals
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local libclc_targets=(
+ "clspv--"
+ "clspv64--"
+ )
+
+ use spirv && libclc_targets+=(
+ "spirv-mesa3d-"
+ "spirv64-mesa3d-"
+ )
+ use video_cards_nvidia && libclc_targets+=(
+ "nvptx64--"
+ "nvptx64--nvidiacl"
+ "nvptx64-nvidia-cuda"
+ )
+ use video_cards_r600 && libclc_targets+=(
+ "r600--"
+ )
+ use video_cards_radeonsi && libclc_targets+=(
+ "amdgcn--"
+ "amdgcn-amd-amdhsa"
+ "amdgcn-mesa-mesa3d"
+ )
+
+ libclc_targets=${libclc_targets[*]}
+ local mycmakeargs=(
+ -DLIBCLC_TARGETS_TO_BUILD="${libclc_targets// /;}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-core/libclc/libclc-23.0.0.9999.ebuild b/llvm-core/libclc/libclc-23.0.0.9999.ebuild
index 76c0bedc0882..e98c0d92714d 100644
--- a/llvm-core/libclc/libclc-23.0.0.9999.ebuild
+++ b/llvm-core/libclc/libclc-23.0.0.9999.ebuild
@@ -64,6 +64,7 @@ my_configure() {
local mycmakeargs=(
-DCMAKE_CLC_COMPILER="$(type -P clang-${LLVM_MAJOR})"
-DLLVM_RUNTIMES_TARGET="${MULTIBUILD_VARIANT}"
+ -DLLVM_INCLUDE_TESTS="$(usex test)"
)
use test && mycmakeargs+=(
diff --git a/llvm-core/lld/Manifest b/llvm-core/lld/Manifest
index e55fe6611605..3288b9a29df0 100644
--- a/llvm-core/lld/Manifest
+++ b/llvm-core/lld/Manifest
@@ -15,5 +15,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/lld/lld-22.1.4.ebuild b/llvm-core/lld/lld-22.1.4.ebuild
new file mode 100644
index 000000000000..053a9ea727f6
--- /dev/null
+++ b/llvm-core/lld/lld-22.1.4.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit cmake flag-o-matic 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="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,zstd=]
+ virtual/zlib:=
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+ ${DEPEND}
+ !llvm-core/lld:0
+"
+BDEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+PDEPEND="
+ >=llvm-core/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+LLVM_TEST_COMPONENTS=( llvm/utils/dtlto )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+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}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DBUILD_SHARED_LIBS=ON
+ -DLLVM_INCLUDE_TESTS=$(usex test)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+
+ 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/llvm-core/lldb/Manifest b/llvm-core/lldb/Manifest
index aeb52d0a71bb..e87ced09e387 100644
--- a/llvm-core/lldb/Manifest
+++ b/llvm-core/lldb/Manifest
@@ -15,5 +15,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/lldb/lldb-22.1.4.ebuild b/llvm-core/lldb/lldb-22.1.4.ebuild
new file mode 100644
index 000000000000..4cf5992a16fb
--- /dev/null
+++ b/llvm-core/lldb/lldb-22.1.4.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit cmake flag-o-matic llvm.org python-single-r1
+
+DESCRIPTION="The LLVM debugger"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86"
+IUSE="debug debuginfod +libedit lzma ncurses +python test +xml"
+RESTRICT="test"
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+DEPEND="
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ libedit? ( dev-libs/libedit:0= )
+ lzma? ( app-arch/xz-utils:= )
+ ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
+ xml? ( dev-libs/libxml2:= )
+ ~llvm-core/clang-${PV}
+ ~llvm-core/llvm-${PV}[debuginfod=]
+"
+RDEPEND="
+ ${DEPEND}
+ python? (
+ ${PYTHON_DEPS}
+ )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ python? (
+ >=dev-lang/swig-3.0.11
+ )
+ test? (
+ $(python_gen_cond_dep "
+ ~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
+ dev-python/psutil[\${PYTHON_USEDEP}]
+ ")
+ llvm-core/lld
+ )
+"
+
+LLVM_COMPONENTS=( lldb cmake llvm/utils )
+LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+src_configure() {
+ # bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DClang_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLDB_ENABLE_CURSES=$(usex ncurses)
+ -DLLDB_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLDB_ENABLE_PYTHON=$(usex python)
+ -DLLDB_ENABLE_LUA=OFF
+ -DLLDB_ENABLE_LZMA=$(usex lzma)
+ -DLLDB_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
+
+ -DLLDB_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ # TODO: fix upstream to detect this properly
+ -DHAVE_LIBDL=ON
+ -DHAVE_LIBPTHREAD=ON
+
+ # normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO
+ # and TERMINFO_LIBS... so just force FindCurses.cmake to use
+ # ncurses with complete library set (including autodetection
+ # of -ltinfo)
+ -DCURSES_NEED_NCURSES=ON
+
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lldb-{shell,unit}
+ # failures + hangs
+ #use python && cmake_build check-lldb-api
+}
+
+src_install() {
+ cmake_src_install
+ find "${D}" -name '*.a' -delete || die
+
+ use python && python_optimize
+}
diff --git a/llvm-core/llvm-common/Manifest b/llvm-core/llvm-common/Manifest
index 26ff3209a956..b318b3f6a830 100644
--- a/llvm-core/llvm-common/Manifest
+++ b/llvm-core/llvm-common/Manifest
@@ -14,5 +14,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/llvm-common/llvm-common-22.1.4.ebuild b/llvm-core/llvm-common/llvm-common-22.1.4.ebuild
new file mode 100644
index 000000000000..27828503be34
--- /dev/null
+++ b/llvm-core/llvm-common/llvm-common-22.1.4.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common 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="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="emacs"
+
+RDEPEND="
+ !llvm-core/llvm:0
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+
+LLVM_COMPONENTS=( llvm/utils )
+llvm.org_set_globals
+
+SITEFILE="50llvm-gentoo.el"
+BYTECOMPFLAGS="-L emacs"
+
+src_compile() {
+ default
+
+ use emacs && elisp-compile emacs/*.el
+}
+
+src_install() {
+ insinto /usr/share/vim/vimfiles
+ doins -r vim/*/
+ # some users may find it useful
+ newdoc vim/README README.vim
+ dodoc vim/vimrc
+
+ if use emacs ; then
+ elisp-install llvm emacs/*.{el,elc}
+ elisp-make-site-file "${SITEFILE}" llvm
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/llvm/Manifest b/llvm-core/llvm/Manifest
index f8aee64b9d41..8c391ee56acd 100644
--- a/llvm-core/llvm/Manifest
+++ b/llvm-core/llvm/Manifest
@@ -24,5 +24,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/llvm/llvm-22.1.4.ebuild b/llvm-core/llvm/llvm-22.1.4.ebuild
new file mode 100644
index 000000000000..ae2a164573c0
--- /dev/null
+++ b/llvm-core/llvm/llvm-22.1.4.ebuild
@@ -0,0 +1,569 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
+inherit 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="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="
+ +binutils-plugin debug debuginfod doc exegesis libedit +libffi
+ test xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ virtual/zlib:=[${MULTILIB_USEDEP}]
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ exegesis? ( dev-libs/libpfm:= )
+ libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+ libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+ 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
+ sys-devel/gnuconfig
+ kernel_Darwin? (
+ <llvm-runtimes/libcxx-${LLVM_VERSION}.9999
+ )
+ libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+ ${RDEPEND}
+ !llvm-core/llvm:0
+"
+PDEPEND="
+ llvm-core/llvm-common
+ llvm-core/llvm-toolchain-symlinks:${LLVM_MAJOR}
+ binutils-plugin? ( >=llvm-core/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake third-party )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_any_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+python_check_deps() {
+ llvm_are_manpages_built || return 0
+
+ python_has_version -b "dev-python/myst-parser[${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
+
+ local outdated
+ if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eerror "Expected: ${exp_targets[*]}"
+ eerror
+ outdated=1
+ fi
+
+ if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eerror "Expected: ${prod_targets[*]}"
+ outdated=1
+ fi
+
+ [[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
+}
+
+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|LLVMSupportLSP|LLVMTableGen)
+ ;;
+ # for mlir-tblgen
+ LLVMCodeGenTypes)
+ ;;
+ # used by lldb
+ LLVMDebuginfod)
+ ;;
+ # testing libraries
+ LLVMTestingAnnotations|LLVMTestingSupport)
+ ;;
+ # static libs
+ LLVM*)
+ continue
+ ;;
+ # meta-targets
+ distribution|llvm-libraries)
+ continue
+ ;;
+ # used only w/ USE=doc
+ docs-llvm-html)
+ use doc || continue
+ ;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || continue
+ ;;
+ # used only w/ USE=xml
+ llvm-mt)
+ use xml || continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+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
+
+ # Disable lit tests (we run them in dev-python/lit).
+ > utils/lit/CMakeLists.txt || 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
+ # mlir-tblgen
+ LLVMCodeGenTypes
+ LLVMSupportLSP
+
+ # testing libraries
+ llvm_gtest
+ llvm_gtest_main
+ LLVMTestingAnnotations
+ LLVMTestingSupport
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # library used by lldb
+ LLVMDebuginfod
+
+ # utilities
+ llvm-tblgen
+ llvm-test-mustache-spec
+ FileCheck
+ llvm-PerfectShuffle
+ count
+ not
+ yaml-bench
+ UnicodeNameMappingGenerator
+
+ # tools
+ bugpoint
+ clang-offload-packager
+ dsymutil
+ llc
+ lli
+ lli-child-target
+ llvm-addr2line
+ llvm-ar
+ llvm-as
+ llvm-bcanalyzer
+ llvm-bitcode-strip
+ llvm-c-test
+ llvm-cas
+ llvm-cat
+ llvm-cfi-verify
+ llvm-cgdata
+ llvm-config
+ llvm-cov
+ llvm-ctxprof-util
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ 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-ir2vec
+ 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-ml64
+ llvm-modextract
+ llvm-nm
+ llvm-objcopy
+ llvm-objdump
+ llvm-offload-binary
+ llvm-offload-wrapper
+ llvm-opt-report
+ llvm-otool
+ llvm-pdbutil
+ llvm-profdata
+ llvm-profgen
+ llvm-ranlib
+ llvm-rc
+ llvm-readelf
+ llvm-readobj
+ llvm-readtapi
+ llvm-reduce
+ llvm-remarkutil
+ llvm-rtdyld
+ llvm-sim
+ llvm-size
+ llvm-split
+ llvm-stress
+ llvm-strings
+ llvm-strip
+ llvm-symbolizer
+ llvm-tli-checker
+ llvm-undname
+ llvm-windres
+ llvm-xray
+ obj2yaml
+ opt
+ reduce-chunk-list
+ 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
+ )
+ use debuginfod && out+=(
+ llvm-debuginfod
+ )
+ use xml && out+=(
+ llvm-mt
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ # ODR violations (bug #917536, bug #926529). Just do it for GCC for now
+ # to avoid people grumbling. GCC is, anecdotally, more likely to miscompile
+ # LLVM with LTO anyway (which is not necessarily its fault).
+ tc-is-gcc && filter-lto
+
+ 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=ON
+ -DLLVM_BUILD_TESTS=$(usex test)
+ -DLLVM_INSTALL_GTEST=ON
+
+ -DLLVM_ENABLE_FFI=$(usex libffi)
+ -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLVM_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+ -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_ENABLE_CURL=$(usex debuginfod)
+ -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod)
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # disable OCaml bindings (now in dev-ml/llvm)
+ -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
+
+ use kernel_Darwin && mycmakeargs+=(
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+
+ # 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_MAIN_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/llvm-core/llvm/llvm-23.0.0.9999.ebuild b/llvm-core/llvm/llvm-23.0.0.9999.ebuild
index 13db67b64601..dcb91c9cdc85 100644
--- a/llvm-core/llvm/llvm-23.0.0.9999.ebuild
+++ b/llvm-core/llvm/llvm-23.0.0.9999.ebuild
@@ -140,7 +140,7 @@ check_distribution_components() {
LLVMCodeGenTypes)
;;
# used by lldb
- LLVMDebuginfod)
+ LLVMDebuginfod|LLVMHTTP)
;;
# testing libraries
LLVMTestingAnnotations|LLVMTestingSupport)
@@ -248,6 +248,7 @@ get_distribution_components() {
out+=(
# library used by lldb
LLVMDebuginfod
+ LLVMHTTP
# utilities
llvm-tblgen
diff --git a/llvm-core/mlir/Manifest b/llvm-core/mlir/Manifest
index b08882e179ec..fde391316c7c 100644
--- a/llvm-core/mlir/Manifest
+++ b/llvm-core/mlir/Manifest
@@ -4,5 +4,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/mlir/mlir-22.1.4.ebuild b/llvm-core/mlir/mlir-22.1.4.ebuild
new file mode 100644
index 000000000000..4c0685c064d9
--- /dev/null
+++ b/llvm-core/mlir/mlir-22.1.4.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit cmake llvm.org multilib-minimal python-any-r1
+
+DESCRIPTION="Multi-Level Intermediate Representation (library only)"
+HOMEPAGE="https://mlir.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm64"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( mlir cmake )
+# tablegen tests use *.td files there
+LLVM_TEST_COMPONENTS=( llvm/include )
+llvm.org_set_globals
+
+python_check_deps() {
+ if use test; then
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+ fi
+}
+
+src_prepare() {
+ llvm.org_src_prepare
+
+ # https://github.com/llvm/llvm-project/issues/120902
+ sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \
+ lib/ExecutionEngine/CMakeLists.txt || die
+}
+
+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
+ mlir-libraries|distribution)
+ continue
+ ;;
+ # dylib
+ MLIR)
+ ;;
+ # installed test libraries
+ MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR)
+ ;;
+ MLIROpenACCTestPasses)
+ ;;
+ # static libraries
+ MLIR*)
+ 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=(
+ mlir-cmake-exports
+ mlir-headers
+
+ # the dylib
+ MLIR
+
+ # shared libraries
+ mlir_apfloat_wrappers
+ mlir_arm_runner_utils
+ mlir_arm_sme_abi_stubs
+ mlir_async_runtime
+ mlir_c_runner_utils
+ mlir_float16_utils
+ mlir_runner_utils
+
+ # test libraries required by flang
+ MLIROpenACCTestPasses
+ MLIRTestAnalysis
+ MLIRTestDialect
+ MLIRTestIR
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # tools
+ mlir-linalg-ods-yaml-gen
+ mlir-lsp-server
+ mlir-opt
+ mlir-pdll
+ mlir-pdll-lsp-server
+ mlir-query
+ mlir-reduce
+ mlir-rewrite
+ mlir-runner
+ mlir-tblgen
+ mlir-translate
+ tblgen-lsp-server
+ tblgen-to-irdl
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ # this controls building libMLIR.so
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DMLIR_BUILD_MLIR_C_DYLIB=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ -DMLIR_INCLUDE_TESTS=ON
+ -DMLIR_INCLUDE_INTEGRATION_TESTS=OFF
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ # this enables installing mlir-tblgen and mlir-pdll
+ -DLLVM_BUILD_UTILS=ON
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ -DLLVM_BUILD_TOOLS=ON
+ # TODO
+ -DMLIR_ENABLE_CUDA_RUNNER=0
+ -DMLIR_ENABLE_ROCM_RUNNER=0
+ -DMLIR_ENABLE_SYCL_RUNNER=0
+ -DMLIR_ENABLE_SPIRV_CPU_RUNNER=0
+ -DMLIR_ENABLE_VULKAN_RUNNER=0
+ -DMLIR_ENABLE_BINDINGS_PYTHON=0
+ -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ local known_xfail=(
+ # https://github.com/llvm/llvm-project/pull/157885#issuecomment-3288095032
+ mlir-pdll-lsp-server/view-output.test
+ )
+
+ case ${ABI} in
+ arm|ppc|x86)
+ known_xfail+=(
+ # MLIR is full of 64-bit assumptions, sigh
+ # https://github.com/llvm/llvm-project/issues/124541
+ Conversion/MemRefToLLVM/memref-to-llvm.mlir
+ Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir
+ Dialect/LLVMIR/sroa-statistics.mlir
+ Dialect/Linalg/vectorize-tensor-extract.mlir
+ Dialect/MemRef/mem2reg-statistics.mlir
+ Dialect/Tensor/fold-tensor-subset-ops.mlir
+ Dialect/Tensor/tracking-listener.mlir
+ Pass/pipeline-stats-nested.mlir
+ Pass/pipeline-stats.mlir
+ )
+ ;;
+ esac
+
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local -x LIT_XFAIL="${known_xfail[*]}"
+ LIT_XFAIL=${LIT_XFAIL// /;}
+ cmake_build check-mlir
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+}
diff --git a/llvm-core/polly/Manifest b/llvm-core/polly/Manifest
index f3948bff9b54..d8bb4e78607b 100644
--- a/llvm-core/polly/Manifest
+++ b/llvm-core/polly/Manifest
@@ -6,5 +6,7 @@ DIST llvm-project-22.1.2.src.tar.xz 167026580 BLAKE2B f838277e2bb47c273e8c709940
DIST llvm-project-22.1.2.src.tar.xz.sig 119 BLAKE2B 4ca084feb2d99ca6d763048244305408400fd9e1fb08a4314112d4d0318e4a2f3337858217c6d09fc136e0dd48f5bed7e88ecd3510116a3777dedec013f915f3 SHA512 dba272f935aa5ff3e93e538ac8877a79fdd3d2bf0efa61266c3caa85ac3aab167213a76759ed9531b539cdfd57c96a9c890807c4a04ba65a4d80b0c3dff044f2
DIST llvm-project-22.1.3.src.tar.xz 167045212 BLAKE2B 4ee4a2ab5ac5f93b7d727ec4b44af86d42eb728e36ae7eeb183e47b949da61a5c31b714516fcef0c3f43dd5529d239059af84daa66dde9ae5fc5e3ea1b03e944 SHA512 3557a955d55471671ae2f7b9c809affd59a29a6fb1e70a2a5d040dc1c6376246deb0635be8ca36cae09112981760e9afb128c822e5554bd722589fb8dee3f0df
DIST llvm-project-22.1.3.src.tar.xz.sig 119 BLAKE2B b732e64dc681f12815c10ab1c83e492b172189717653f0503c6633e0b3844a57fc39de9cb8fa83cf141f9e8b0736c384b9f04275f025889ed0b466da8448b2f1 SHA512 153a0d174492a0facd061b5cfa3e18dbf946cc0c7d1fb50f4d961410d41cea1f355515fd3e892be676b8b34d61a21962c48acb90aa5d310d05cf6452053e52ad
+DIST llvm-project-22.1.4.src.tar.xz 167028880 BLAKE2B cd867371fecc8b4771c919a4d966cec25539dbaff5398e9c62ab5fe2f82b97bcc097f2319194cb796f6ee874b83c001ece5dc2d2e41c8807f88d91e67b71cf61 SHA512 9f9e84110a4bb0f0dd296eaed4acb4fd3a58838efe62bb88671399440ba4750ba8bd7e6d072e61a9946e38e5c9d5e50575b95964850769c51cd517bdf7425bb8
+DIST llvm-project-22.1.4.src.tar.xz.sig 119 BLAKE2B ff8004fd03f1d5be9da33ddf19b9c4d9408f0dfb0e9e141eeb3cffec4fd285017f913b8f624a7aa1316c228928abb95832aabea43712507f4f644cf59e757bc8 SHA512 29287637e8c2e40666c6cca054622f894a132925d532017c0f3144573757cce50f85dcc356f48b335dee7115627ff249b287ad821075835314dce0dfbc733b8a
DIST llvm-project-af6521fb3a36149cd69d83bfdf87ed26e59a14a2.tar.gz 265801058 BLAKE2B 3bbaee50354a8c67f4ebfbcbd0ed5d8658af082602a821d1e6d716d0c2f2952c817d594a1d8f573f0b54176ad18b23742db07d6471c72cca6f1082038ea95419 SHA512 70d3b9f95a3a895450da1d77657108a70d4910f0d78c7310b340bed2a2571b0bf5631dee21e8b4c57ebfc756a9e44cc34c2b6a0ac5354a3d500fcfe198a25849
DIST llvm-project-dd0c5ebe69e580066de100c8c2ba5430a1aeee44.tar.gz 266653424 BLAKE2B db934eaffdaa71d472f6a83b60a0663027f4ecec1e335e296fddbe1c1e6bc4652014c4009a78a4a96f57c61b0976f554d410fde63a582a29b716a75a89a1e850 SHA512 8700d97ef327fae8e124c578537033a72cbc9cfade9a283d59e0b99e7c8a5a9a8427ec93c1324d284547f173967b911d0e4535751fca04d35f92250139970ce1
diff --git a/llvm-core/polly/polly-22.1.4.ebuild b/llvm-core/polly/polly-22.1.4.ebuild
new file mode 100644
index 000000000000..0aee11671377
--- /dev/null
+++ b/llvm-core/polly/polly-22.1.4.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit cmake llvm.org python-any-r1
+
+DESCRIPTION="Polyhedral optimizations for LLVM"
+HOMEPAGE="https://polly.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+# vendored isl (fork?)
+LICENSE+=" MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( polly cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-polly
+}