diff options
| author | root <root@alpha.trunkmasters.com> | 2026-07-08 03:04:43 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-07-08 03:04:43 -0500 |
| commit | 897a58deb079b5691d4424cc15517aea6e422808 (patch) | |
| tree | 80a1bb0faff7f0506f36a09342191dffd2e1d3bb /llvm-core | |
| parent | cab4bebbee5e50ac2d5275d645904cef772fcc17 (diff) | |
| download | baldeagleos-repo-897a58deb079b5691d4424cc15517aea6e422808.tar.gz baldeagleos-repo-897a58deb079b5691d4424cc15517aea6e422808.tar.xz baldeagleos-repo-897a58deb079b5691d4424cc15517aea6e422808.zip | |
Adding metadata
Diffstat (limited to 'llvm-core')
| -rw-r--r-- | llvm-core/clang-common/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/clang-common/clang-common-23.0.0_pre20260707.ebuild | 339 | ||||
| -rw-r--r-- | llvm-core/clang/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/clang/clang-23.0.0_pre20260707.ebuild | 467 | ||||
| -rw-r--r-- | llvm-core/flang/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/flang/flang-23.0.0_pre20260707.ebuild | 101 | ||||
| -rw-r--r-- | llvm-core/lld/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/lld/lld-23.0.0_pre20260707.ebuild | 95 | ||||
| -rw-r--r-- | llvm-core/lldb/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/lldb/lldb-23.0.0_pre20260707.ebuild | 116 | ||||
| -rw-r--r-- | llvm-core/llvm-common/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/llvm-common/llvm-common-23.0.0_pre20260707.ebuild | 53 | ||||
| -rw-r--r-- | llvm-core/llvm/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/llvm/llvm-23.0.0_pre20260707.ebuild | 572 | ||||
| -rw-r--r-- | llvm-core/mlir/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/mlir/mlir-23.0.0_pre20260707.ebuild | 232 | ||||
| -rw-r--r-- | llvm-core/polly/Manifest | 1 | ||||
| -rw-r--r-- | llvm-core/polly/polly-23.0.0_pre20260707.ebuild | 59 |
18 files changed, 2043 insertions, 0 deletions
diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest index 94dc93200034..243c20f956b6 100644 --- a/llvm-core/clang-common/Manifest +++ b/llvm-core/clang-common/Manifest @@ -12,5 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/clang-common/clang-common-23.0.0_pre20260707.ebuild b/llvm-core/clang-common/clang-common-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..f13d8a9f1158 --- /dev/null +++ b/llvm-core/clang-common/clang-common-23.0.0_pre20260707.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" +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) + # elif defined(_GENTOO_NO_FORTIFY_SOURCE) + # 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 bb6831c3bda0..2be55fae7cd7 100644 --- a/llvm-core/clang/Manifest +++ b/llvm-core/clang/Manifest @@ -22,5 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/clang/clang-23.0.0_pre20260707.ebuild b/llvm-core/clang/clang-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..4faeb489339c --- /dev/null +++ b/llvm-core/clang/clang-23.0.0_pre20260707.ebuild @@ -0,0 +1,467 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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} +" +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 mlir/utils/pygments utils/docs ) +LLVM_TEST_COMPONENTS=( llvm/utils ) +LLVM_MANPAGES=1 +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-ssaf-analyzer + clang-ssaf-format + clang-ssaf-linker + 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 7d2332f37147..2d8bf8d9a5f7 100644 --- a/llvm-core/flang/Manifest +++ b/llvm-core/flang/Manifest @@ -2,5 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/flang/flang-23.0.0_pre20260707.ebuild b/llvm-core/flang/flang-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..8e496f9376c1 --- /dev/null +++ b/llvm-core/flang/flang-23.0.0_pre20260707.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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/lld/Manifest b/llvm-core/lld/Manifest index 6f7ea211fe69..b3f4e170e790 100644 --- a/llvm-core/lld/Manifest +++ b/llvm-core/lld/Manifest @@ -13,5 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/lld/lld-23.0.0_pre20260707.ebuild b/llvm-core/lld/lld-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..c91ec8e98967 --- /dev/null +++ b/llvm-core/lld/lld-23.0.0_pre20260707.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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" + + # https://gcc.gnu.org/PR121495 (bug #958469) + use arm64 && tc-is-gcc && [[ $(gcc-major-version) -ge 14 ]] && append-flags -mearly-ra=none + + 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 82d0f553d86a..40512bb711bf 100644 --- a/llvm-core/lldb/Manifest +++ b/llvm-core/lldb/Manifest @@ -13,5 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/lldb/lldb-23.0.0_pre20260707.ebuild b/llvm-core/lldb/lldb-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..482a225e5f5d --- /dev/null +++ b/llvm-core/lldb/lldb-23.0.0_pre20260707.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +IUSE="+debug debuginfod +libedit lzma ncurses +python test +tree-sitter +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= ) + tree-sitter? ( dev-libs/tree-sitter:= ) + 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) + -DLLVM_ENABLE_TREESITTER=$(usex tree-sitter) + + -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 94dc93200034..243c20f956b6 100644 --- a/llvm-core/llvm-common/Manifest +++ b/llvm-core/llvm-common/Manifest @@ -12,5 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/llvm-common/llvm-common-23.0.0_pre20260707.ebuild b/llvm-core/llvm-common/llvm-common-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..4548489cd9bc --- /dev/null +++ b/llvm-core/llvm-common/llvm-common-23.0.0_pre20260707.ebuild @@ -0,0 +1,53 @@ +# 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" +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 bb6831c3bda0..2be55fae7cd7 100644 --- a/llvm-core/llvm/Manifest +++ b/llvm-core/llvm/Manifest @@ -22,5 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/llvm/llvm-23.0.0_pre20260707.ebuild b/llvm-core/llvm/llvm-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..8ae42de064ab --- /dev/null +++ b/llvm-core/llvm/llvm-23.0.0_pre20260707.ebuild @@ -0,0 +1,572 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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 libc mlir/utils/pygments third-party utils/docs ) +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|LLVMHTTP) + ;; + # 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 + LLVMHTTP + + # utilities + llvm-tblgen + llvm-test-mustache-spec + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + clang-offload-packager + dsymutil + llc + lli + lli-child-target + llubi + 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-extract-bundle-entry + llvm-gpu-loader + 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_UNREACHABLE_OPTIMIZE=OFF + + -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/mlir/Manifest b/llvm-core/mlir/Manifest index 7d2332f37147..2d8bf8d9a5f7 100644 --- a/llvm-core/mlir/Manifest +++ b/llvm-core/mlir/Manifest @@ -2,5 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/mlir/mlir-23.0.0_pre20260707.ebuild b/llvm-core/mlir/mlir-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..b93f132d90ae --- /dev/null +++ b/llvm-core/mlir/mlir-23.0.0_pre20260707.ebuild @@ -0,0 +1,232 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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 + + # this test is completely unpredictable, no clue why + rm test/mlir-pdll-lsp-server/view-output.test || 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=() + + case ${ABI} in + arm|ppc|x86) + known_xfail+=( + # MLIR is full of 64-bit assumptions, sigh + # https://github.com/llvm/llvm-project/issues/124541 + 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 a5509e4e487e..31c27d7c3d0e 100644 --- a/llvm-core/polly/Manifest +++ b/llvm-core/polly/Manifest @@ -4,5 +4,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15 +DIST llvm-project-43ccdbc84774da0ae4cb5131f2245a9633d977b9.tar.gz 276747748 BLAKE2B 874e5d95e8f3a8401ec989f093095be6203fa77c9729ef66981a13cbff91e6937a9925257f051650c820ea82f6ab8c03884a5a3599e2b450bed11b95c54cc440 SHA512 a84e2f97abc92bdf4da8a00cc89f22d28adef44b316f02992708ee2ebb78f0d4ce38254389a1408caa4b0846134af47ca4bccbfe987f014fefe439495bed3848 DIST llvm-project-49de424f45389cb757c3cc8c50daf38d024e2314.tar.gz 275619907 BLAKE2B de59729b44763de1fba07280d09059f3cb716aa1a8de51b8d8fd6e385378facdf5357845ed9f372f4e613fb8d098b75933c0eff290a42a4803a24ba2afe01a86 SHA512 8ea319751d4bbae866deb77710487f492c3f73f5fd853dc1a3373239e17916f2cbead3042b64d72731db6dd83c43b9827f2f671034f48491e3ce86e8863ce195 DIST llvm-project-6d4cd34d861baec5a761d15b81395fbe88f4391b.tar.gz 273781215 BLAKE2B 9ca9896ac0cfcb9449bd0975e16aca725e14ce5a4c3afd859799ef056a0e1341d63fa21b9bfd3ec1bee2a8482c5cecdd59482d373db72f083d399748a2396e15 SHA512 407e7d2ae1df19bf6095a953a1506583de91e203c4d0461b85a87f86d2069f2b23114b65c5c7f0065d9fbbf8d657bec6ef489ba9310b89f0bddab22c86cccb04 diff --git a/llvm-core/polly/polly-23.0.0_pre20260707.ebuild b/llvm-core/polly/polly-23.0.0_pre20260707.ebuild new file mode 100644 index 000000000000..09e649cc972e --- /dev/null +++ b/llvm-core/polly/polly-23.0.0_pre20260707.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..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}" +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 +} |
