summaryrefslogtreecommitdiff
path: root/sys-devel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/Manifest.gzbin7699 -> 7700 bytes
-rw-r--r--sys-devel/clang-common/Manifest3
-rw-r--r--sys-devel/clang-common/clang-common-18.1.8.ebuild305
-rw-r--r--sys-devel/clang-runtime/Manifest1
-rw-r--r--sys-devel/clang-runtime/clang-runtime-18.1.8.ebuild40
-rw-r--r--sys-devel/clang/Manifest3
-rw-r--r--sys-devel/clang/clang-18.1.8.ebuild476
-rw-r--r--sys-devel/gcc/Manifest2
-rw-r--r--sys-devel/gcc/gcc-15.0.0_pre20240623.ebuild53
-rw-r--r--sys-devel/lld/Manifest3
-rw-r--r--sys-devel/lld/lld-18.1.8.ebuild94
-rw-r--r--sys-devel/llvm-common/Manifest3
-rw-r--r--sys-devel/llvm-common/llvm-common-18.1.8.ebuild54
-rw-r--r--sys-devel/llvm/Manifest3
-rw-r--r--sys-devel/llvm/llvm-18.1.8.ebuild548
-rw-r--r--sys-devel/mold/Manifest9
-rw-r--r--sys-devel/mold/files/mold-2.3.0-no-pch.patch12
-rw-r--r--sys-devel/mold/mold-2.32.0.ebuild (renamed from sys-devel/mold/mold-2.4.1.ebuild)3
-rw-r--r--sys-devel/mold/mold-2.4.0.ebuild102
-rw-r--r--sys-devel/mold/mold-9999.ebuild3
20 files changed, 1595 insertions, 122 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz
index 9d4349da2dc6..5224e07e9a06 100644
--- a/sys-devel/Manifest.gz
+++ b/sys-devel/Manifest.gz
Binary files differ
diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest
index 8dcf52b675b6..88729d1d137d 100644
--- a/sys-devel/clang-common/Manifest
+++ b/sys-devel/clang-common/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
@@ -13,6 +15,7 @@ EBUILD clang-common-15.0.7-r8.ebuild 5482 BLAKE2B 20e8744166a852b4dbc233f128807e
EBUILD clang-common-16.0.6-r4.ebuild 5726 BLAKE2B de26b88570bf487a2be2a59f4551c8e61b940fb84b0dc3cb5be1884252672782700b657fb63c0b7ac247ec2092b236a550b51273f73ec19fab7db6eeda0ff94e SHA512 9f2778fbb89d578e162b36c7a692219533437d9fbec407422e7aff1b11d942f09c8cf0edb5c5bd37bbf34523b1f947b418f954b632d769f836baa7d2493bc527
EBUILD clang-common-17.0.6-r5.ebuild 9010 BLAKE2B cbb5c5094ca6e99fc9ce1734acf02e2e35b792173f84b71e19b25e687f7a93a6fca31e4461fc580d92c0eadabe1400359bec3938fc0cba2cac9bc28a4b8d66be SHA512 ea66877912d34f11a0b788a0d188caf03a5c06098507e7bbb3fa609f594d7b9397ac8fa21c7b502238e36b1ede7bf32dc173b9a6d74a3be1e5d3f25babac9165
EBUILD clang-common-18.1.7.ebuild 9134 BLAKE2B ffad8a93bd8838dc8c22880e7cd195d777e960b4a4469ea6a3febb3507b324b582ed3109fc47685a759c9b06c6be98ecb04a56302b30ad723fe14b23989df9c8 SHA512 edddf1740383db3344500eada2484f2f1aa97bd8e3ad1142c23e4df43ee32df0cc21e085601294d4b0d02fd544e8983c1388c259af7e5d950f8fae44a1b093f6
+EBUILD clang-common-18.1.8.ebuild 9134 BLAKE2B ffad8a93bd8838dc8c22880e7cd195d777e960b4a4469ea6a3febb3507b324b582ed3109fc47685a759c9b06c6be98ecb04a56302b30ad723fe14b23989df9c8 SHA512 edddf1740383db3344500eada2484f2f1aa97bd8e3ad1142c23e4df43ee32df0cc21e085601294d4b0d02fd544e8983c1388c259af7e5d950f8fae44a1b093f6
EBUILD clang-common-19.0.0.9999.ebuild 9018 BLAKE2B 5f055aeaec9b6ebdfbfe9b84aa65dc6de8ffac3003235d3aef66e48b2f0f4daff56f38a574de61f9abb0a12e4728b27f99f726f840528ba279e7334b85d5bee4 SHA512 5463729ed67144428d5a154a91083efa2006e0d449b31f8870650097dd0b1322f4bd5ec7a7b2884ffd906a976ffa310e36dacd3c9dba519c1d5c26b3879cbd85
EBUILD clang-common-19.0.0_pre20240608.ebuild 9018 BLAKE2B 5f055aeaec9b6ebdfbfe9b84aa65dc6de8ffac3003235d3aef66e48b2f0f4daff56f38a574de61f9abb0a12e4728b27f99f726f840528ba279e7334b85d5bee4 SHA512 5463729ed67144428d5a154a91083efa2006e0d449b31f8870650097dd0b1322f4bd5ec7a7b2884ffd906a976ffa310e36dacd3c9dba519c1d5c26b3879cbd85
EBUILD clang-common-19.0.0_pre20240615.ebuild 9018 BLAKE2B 5f055aeaec9b6ebdfbfe9b84aa65dc6de8ffac3003235d3aef66e48b2f0f4daff56f38a574de61f9abb0a12e4728b27f99f726f840528ba279e7334b85d5bee4 SHA512 5463729ed67144428d5a154a91083efa2006e0d449b31f8870650097dd0b1322f4bd5ec7a7b2884ffd906a976ffa310e36dacd3c9dba519c1d5c26b3879cbd85
diff --git a/sys-devel/clang-common/clang-common-18.1.8.ebuild b/sys-devel/clang-common/clang-common-18.1.8.ebuild
new file mode 100644
index 000000000000..b7d4720e0e22
--- /dev/null
+++ b/sys-devel/clang-common/clang-common-18.1.8.ebuild
@@ -0,0 +1,305 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 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 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ default-compiler-rt default-libcxx default-lld
+ bootstrap-prefix cet hardened llvm-libunwind
+"
+
+PDEPEND="
+ sys-devel/clang:*
+ default-compiler-rt? (
+ sys-devel/clang-runtime[compiler-rt]
+ llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=sys-libs/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( >=sys-devel/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+"
+IDEPEND="
+ !default-compiler-rt? ( sys-devel/gcc-config )
+ !default-libcxx? ( sys-devel/gcc-config )
+"
+
+LLVM_COMPONENTS=( clang/utils )
+llvm.org_set_globals
+
+pkg_pretend() {
+ [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
+
+ local flag missing_flags=()
+ for flag in default-{compiler-rt,libcxx,lld}; do
+ if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; then
+ missing_flags+=( "${flag}" )
+ fi
+ done
+
+ if [[ ${missing_flags[@]} ]]; then
+ eerror "It seems that you have the following flags set on sys-devel/clang:"
+ eerror
+ eerror " ${missing_flags[*]}"
+ eerror
+ eerror "The default runtimes are now set via flags on sys-devel/clang-common."
+ eerror "The build is being aborted to prevent breakage. Please either set"
+ eerror "the respective flags on this ebuild, e.g.:"
+ eerror
+ eerror " sys-devel/clang-common ${missing_flags[*]}"
+ eerror
+ eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+ die "Mismatched defaults detected between sys-devel/clang and sys-devel/clang-common"
+ fi
+}
+
+_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_install() {
+ newbashcomp bash-autocomplete.sh clang
+
+ insinto /etc/clang
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by sys-devel/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ --rtlib=$(usex default-compiler-rt compiler-rt libgcc)
+ --unwindlib=$(usex default-compiler-rt libunwind libgcc)
+ --stdlib=$(usex default-libcxx libc++ libstdc++)
+ -fuse-ld=$(usex default-lld lld bfd)
+ EOF
+
+ newins - gentoo-gcc-install.cfg <<-EOF
+ # This file is maintained by gcc-config.
+ # It is used to specify the selected GCC installation.
+ EOF
+
+ newins - gentoo-common.cfg <<-EOF
+ # This file contains flags common to clang, clang++ and clang-cpp.
+ @gentoo-runtimes.cfg
+ @gentoo-gcc-install.cfg
+ @gentoo-hardened.cfg
+ # 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(__STDC_HOSTED__) && __STDC_HOSTED__ == 1
+ # define __GENTOO_NOT_FREESTANDING 1
+ # else
+ # define __GENTOO_NOT_FREESTANDING 0
+ # endif
+ #
+ # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 && __GENTOO_NOT_FREESTANDING > 0
+ # if !defined(__SANITIZE_ADDRESS__) && !__GENTOO_HAS_FEATURE(address_sanitizer) && !__GENTOO_HAS_FEATURE(memory_sanitizer)
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ # endif
+ # undef __GENTOO_HAS_FEATURE
+ # undef __GENTOO_NOT_FREESTANDING
+ #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.
+ -D_GLIBCXX_ASSERTIONS
+
+ # Analogue to GLIBCXX_ASSERTIONS
+ # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+ # https://libcxx.llvm.org/Hardening.html#using-hardened-mode
+ -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
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -L ${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ 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
+ EOF
+ fi
+ 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
+}
diff --git a/sys-devel/clang-runtime/Manifest b/sys-devel/clang-runtime/Manifest
index b9789e77fb48..7ac99ab5d4aa 100644
--- a/sys-devel/clang-runtime/Manifest
+++ b/sys-devel/clang-runtime/Manifest
@@ -2,6 +2,7 @@ EBUILD clang-runtime-15.0.7.ebuild 759 BLAKE2B d7b481faffc4da0a6dc1b4e708322cd17
EBUILD clang-runtime-16.0.6.ebuild 1448 BLAKE2B be376aab09a0268444784d1a0bcb590222c9c8a118e260b15939e574687334eb476d6f66ab0f1f4fb0841a226c7b7f690666c33bec2d9c14f27a4f30f986b859 SHA512 b0b7a2f5c69890cb2fc0a9c2c8a1910669a4eae16826c0702a2ef508f91b6ec3b5607beab5b24f02951cf9b377f1d09395bd97c27f476137ef6cdf2571330578
EBUILD clang-runtime-17.0.6.ebuild 1448 BLAKE2B be376aab09a0268444784d1a0bcb590222c9c8a118e260b15939e574687334eb476d6f66ab0f1f4fb0841a226c7b7f690666c33bec2d9c14f27a4f30f986b859 SHA512 b0b7a2f5c69890cb2fc0a9c2c8a1910669a4eae16826c0702a2ef508f91b6ec3b5607beab5b24f02951cf9b377f1d09395bd97c27f476137ef6cdf2571330578
EBUILD clang-runtime-18.1.7.ebuild 1455 BLAKE2B 09d026673062eaf3251bc0ac3665217f834c0bb8b57945a138839d86bec58ef7c979a627fb2054a5166c35894e4063bd1972402516d7304c6423639f556ff29a SHA512 aefd613ab3ec054a6829b0f3471384726a05ce410a1f98ab53cca1857bbb19f3b76526ed867a93092fe29acf95078823b2ff8e6b9941705c791c9a42b6eff68c
+EBUILD clang-runtime-18.1.8.ebuild 1455 BLAKE2B 09d026673062eaf3251bc0ac3665217f834c0bb8b57945a138839d86bec58ef7c979a627fb2054a5166c35894e4063bd1972402516d7304c6423639f556ff29a SHA512 aefd613ab3ec054a6829b0f3471384726a05ce410a1f98ab53cca1857bbb19f3b76526ed867a93092fe29acf95078823b2ff8e6b9941705c791c9a42b6eff68c
EBUILD clang-runtime-19.0.0.9999.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-19.0.0_pre20240608.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-19.0.0_pre20240615.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
diff --git a/sys-devel/clang-runtime/clang-runtime-18.1.8.ebuild b/sys-devel/clang-runtime/clang-runtime-18.1.8.ebuild
new file mode 100644
index 000000000000..38042f073a24
--- /dev/null
+++ b/sys-devel/clang-runtime/clang-runtime-18.1.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-build toolchain-funcs
+
+DESCRIPTION="Meta-ebuild for clang runtime libraries"
+HOMEPAGE="https://clang.llvm.org/"
+
+LICENSE="metapackage"
+SLOT="${PV%%.*}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="+compiler-rt libcxx openmp +sanitize"
+REQUIRED_USE="sanitize? ( compiler-rt )"
+
+RDEPEND="
+ compiler-rt? (
+ ~sys-libs/compiler-rt-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ sanitize? (
+ ~sys-libs/compiler-rt-sanitizers-${PV}:${SLOT}[abi_x86_32(+)?,abi_x86_64(+)?]
+ )
+ )
+ libcxx? ( >=sys-libs/libcxx-${PV}[${MULTILIB_USEDEP}] )
+ openmp? ( >=sys-libs/libomp-${PV}[${MULTILIB_USEDEP}] )
+"
+
+pkg_pretend() {
+ if tc-is-clang; then
+ ewarn "You seem to be using clang as a system compiler. As of clang-16,"
+ ewarn "upstream has turned a few warnings that commonly occur during"
+ ewarn "configure script runs into errors by default. This causes some"
+ ewarn "configure tests to start failing, sometimes resulting in silent"
+ ewarn "breakage, missing functionality or runtime misbehavior. It is"
+ ewarn "not yet clear whether the change will remain or be reverted."
+ ewarn
+ ewarn "For more information, please see:"
+ ewarn "https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213"
+ fi
+}
diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest
index cbb96082ddab..2e259c027307 100644
--- a/sys-devel/clang/Manifest
+++ b/sys-devel/clang/Manifest
@@ -13,6 +13,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
@@ -20,6 +22,7 @@ EBUILD clang-15.0.7-r3.ebuild 12523 BLAKE2B d2f9e112d8c8d782b9d19913332445b23487
EBUILD clang-16.0.6.ebuild 12452 BLAKE2B 446a354b58fc0535b81596a9a3785a4cd5d7b7ad52a461baa3b6b7beacdc12161f62da588cd837b8b9c8f35307b1a2c885b9d01bf8edc4af1b551efaab09ebe8 SHA512 58b5694a7d28a03edd4a71e3a99b0b2678285e616cdaab82bb196f092a8726e9cd3787ab07d724680113b4f6683e89103cab2478e49a85e7b5c75a633fb1ca51
EBUILD clang-17.0.6.ebuild 12151 BLAKE2B 665280844db218824bec2add033e13e14b958ac510fb1b0b7193130a55041a5c802c57aa022a35d65a689c611ca9ed119eaf39c47f581d24f38d9c8655c5f062 SHA512 482ae07e36fb3c593d2051b2034f501fc0c94bdcaeb2a6a0701473d00f16f691c8a1584d4b1773dfd236297a12a42cb4f9443eb5c381dcb10d36f749a432ff1d
EBUILD clang-18.1.7.ebuild 12225 BLAKE2B 1909258abbc403a0cd3b9f0ecb6ad5584f6d32eec2efbf518df5e79e513848a1c13e558554fbad126bd23b1236715d641ea7fd1d4c90b6eec0766784e2aa913c SHA512 8fc2935fc58673ac8f0b59a81014be335d2e6798e0787fb81910f8d3844ff4d9f6b6c749ca47bf02b0b24c4423884872df7284fd83efc7d18f015c95b561565a
+EBUILD clang-18.1.8.ebuild 12225 BLAKE2B 1909258abbc403a0cd3b9f0ecb6ad5584f6d32eec2efbf518df5e79e513848a1c13e558554fbad126bd23b1236715d641ea7fd1d4c90b6eec0766784e2aa913c SHA512 8fc2935fc58673ac8f0b59a81014be335d2e6798e0787fb81910f8d3844ff4d9f6b6c749ca47bf02b0b24c4423884872df7284fd83efc7d18f015c95b561565a
EBUILD clang-19.0.0.9999.ebuild 11875 BLAKE2B 7521378bd8f31602184272cc6240c133c8f110ad9ffb7a922e8d2b67c53724cda8217416d5a16269cb9bd55ad8a40bd61a465d3451285223480392afdd733712 SHA512 c1c0834b083008ac6fd51adfffb770b4242e37dd2cbc51c7e9fc58e5e38faf81a737e5a586276f60672223332f011e46ef973a44e0dbcb9fa40ae47b5bba37f8
EBUILD clang-19.0.0_pre20240608.ebuild 12141 BLAKE2B 81dfb104fdbd499b5dd79780171d42b83f0e3da164c7a20a74d81589c7708c50a7900b8bded93a0e889269eab50a5a9e37fe4c135a3c05edad96cc5f33dfd431 SHA512 40f6bd91e1095a230a02f8b3a133d9a667feef5d1ef82dcb78b33e65dab75d240957bf954479fec2a73a1420497c339f93c23942b252e0fd90a74363fd922ef1
EBUILD clang-19.0.0_pre20240615.ebuild 12141 BLAKE2B 81dfb104fdbd499b5dd79780171d42b83f0e3da164c7a20a74d81589c7708c50a7900b8bded93a0e889269eab50a5a9e37fe4c135a3c05edad96cc5f33dfd431 SHA512 40f6bd91e1095a230a02f8b3a133d9a667feef5d1ef82dcb78b33e65dab75d240957bf954479fec2a73a1420497c339f93c23942b252e0fd90a74363fd922ef1
diff --git a/sys-devel/clang/clang-18.1.8.ebuild b/sys-devel/clang/clang-18.1.8.ebuild
new file mode 100644
index 000000000000..daf8ded03599
--- /dev/null
+++ b/sys-devel/clang/clang-18.1.8.ebuild
@@ -0,0 +1,476 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit cmake llvm.org llvm-utils multilib multilib-minimal
+inherit prefix python-single-r1 toolchain-funcs
+
+DESCRIPTION="C language family frontend for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+# MSVCSetupApi.h: MIT
+# sorttable.js: MIT
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~x64-macos"
+IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
+ static-analyzer? ( dev-lang/perl:* )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ${DEPEND}
+ >=sys-devel/clang-common-${PV}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? ( ~sys-devel/lld-${PV} )
+ xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+ ~sys-devel/clang-runtime-${PV}
+ sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=(
+ clang clang-tools-extra cmake
+ llvm/lib/Transforms/Hello
+)
+LLVM_MANPAGES=1
+LLVM_TEST_COMPONENTS=(
+ llvm/utils
+)
+LLVM_USE_TARGETS=llvm
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_cond_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+# Multilib notes:
+# 1. ABI_* flags control ABIs libclang* is built for only.
+# 2. clang is always capable of compiling code for all ABIs for enabled
+# target. However, you will need appropriate crt* files (installed
+# e.g. by sys-devel/gcc and sys-libs/glibc).
+# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
+# in the current profile (i.e. alike supported by sys-devel/gcc).
+#
+# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
+# multilib clang* libraries (not runtime, not wrappers).
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/clang
+
+ llvm.org_src_prepare
+
+ # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
+ eprefixify \
+ lib/Lex/InitHeaderSearch.cpp \
+ lib/Driver/ToolChains/Darwin.cpp || die
+
+ if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
+ sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
+ fi
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ clang-libraries|distribution)
+ continue
+ ;;
+ # tools
+ clang|clangd|clang-*)
+ ;;
+ # static libraries
+ clang*|findAllSymbols)
+ continue
+ ;;
+ # conditional to USE=doc
+ docs-clang-html|docs-clang-tools-html)
+ use doc || continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eqawarn "get_distribution_components() is outdated!"
+ eqawarn " Add: ${add[*]}"
+ eqawarn "Remove: ${remove[*]}"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # common stuff
+ clang-cmake-exports
+ clang-headers
+ clang-resource-headers
+ libclang-headers
+
+ aarch64-resource-headers
+ arm-common-resource-headers
+ arm-resource-headers
+ core-resource-headers
+ cuda-resource-headers
+ hexagon-resource-headers
+ hip-resource-headers
+ hlsl-resource-headers
+ mips-resource-headers
+ opencl-resource-headers
+ openmp-resource-headers
+ ppc-htm-resource-headers
+ ppc-resource-headers
+ riscv-resource-headers
+ systemz-resource-headers
+ utility-resource-headers
+ ve-resource-headers
+ webassembly-resource-headers
+ windows-resource-headers
+ x86-resource-headers
+
+ # libs
+ clang-cpp
+ libclang
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # common stuff
+ bash-autocomplete
+ libclang-python-bindings
+
+ # tools
+ amdgpu-arch
+ c-index-test
+ clang
+ clang-format
+ clang-linker-wrapper
+ clang-offload-bundler
+ clang-offload-packager
+ clang-refactor
+ clang-repl
+ clang-rename
+ clang-scan-deps
+ diagtool
+ hmaptool
+ nvptx-arch
+
+ # needed for cross-compiling Clang
+ clang-tblgen
+ )
+
+ if use extra; then
+ out+=(
+ # extra tools
+ clang-apply-replacements
+ clang-change-namespace
+ clang-doc
+ clang-include-cleaner
+ clang-include-fixer
+ clang-move
+ clang-pseudo
+ clang-query
+ clang-reorder-fields
+ clang-tidy
+ clang-tidy-headers
+ clangd
+ find-all-symbols
+ modularize
+ pp-trace
+ )
+ fi
+
+ if llvm_are_manpages_built; then
+ out+=( docs-clang-man )
+ use extra && out+=( docs-clang-tools-man )
+ fi
+
+ if use doc; then
+ out+=( docs-clang-html )
+ use extra && out+=( docs-clang-tools-html )
+ fi
+
+ use static-analyzer && out+=(
+ clang-check
+ clang-extdef-mapping
+ scan-build
+ scan-build-py
+ scan-view
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
+ local mycmakeargs=(
+ -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang"
+ # relative to bindir
+ -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ -DCLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ # these are not propagated reliably, so redefine them
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ # libgomp support fails to find headers without explicit -I
+ # furthermore, it provides only syntax checking
+ -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+ # disable using CUDA to autodetect GPU, just build for all
+ -DCMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit=ON
+ # disable linking to HSA to avoid automagic dep,
+ # load it dynamically instead
+ -DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON
+
+ -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+ -DCLANG_ENABLE_LIBXML2=$(usex xml)
+ -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
+ -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+ # TODO: CLANG_ENABLE_HLSL?
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if ! use elibc_musl; then
+ mycmakeargs+=(
+ -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
+ )
+ fi
+
+ use test && mycmakeargs+=(
+ -DLLVM_BUILD_TESTS=ON
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=ON
+ -DLLVM_ENABLE_SPHINX=ON
+ -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ if use extra; then
+ mycmakeargs+=(
+ -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
+ )
+ fi
+ fi
+ mycmakeargs+=(
+ -DCLANG_INCLUDE_DOCS=${build_docs}
+ )
+ fi
+ if multilib_native_use extra; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
+ -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
+ )
+ else
+ mycmakeargs+=(
+ -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
+ )
+ fi
+
+ if [[ -n ${EPREFIX} ]]; then
+ mycmakeargs+=(
+ -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
+ )
+ fi
+
+ if tc-is-cross-compiler; then
+ has_version -b sys-devel/clang:${LLVM_MAJOR} ||
+ die "sys-devel/clang:${LLVM_MAJOR} is required on the build host."
+ local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
+ mycmakeargs+=(
+ -DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
+ -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
+ )
+ fi
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local test_targets=( check-clang )
+ if multilib_native_use extra; then
+ test_targets+=(
+ check-clang-tools
+ check-clangd
+ )
+ fi
+ cmake_build "${test_targets[@]}"
+}
+
+src_install() {
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/clang/Config/config.h
+ )
+
+ multilib-minimal_src_install
+
+ # Move runtime headers to /usr/lib/clang, where they belong
+ mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
+ # move (remaining) wrapped headers back
+ if use extra; then
+ mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
+ fi
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+
+ # Apply CHOST and version suffix to clang tools
+ local clang_tools=( clang clang++ clang-cl clang-cpp )
+ local abi i
+
+ # cmake gives us:
+ # - clang-X
+ # - clang -> clang-X
+ # - clang++, clang-cl, clang-cpp -> clang
+ # we want to have:
+ # - clang-X
+ # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
+ # - clang, clang++, clang-cl, clang-cpp -> clang*-X
+ # also in CHOST variant
+ for i in "${clang_tools[@]:1}"; do
+ rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
+ dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
+ dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
+ done
+
+ # now create target symlinks for all supported ABIs
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ for i in "${clang_tools[@]}"; do
+ dosym "${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
+ dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
+ done
+ done
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping & ABI mismatch checks
+ # (also drop the version suffix from runtime headers)
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
+ if multilib_native_use extra; then
+ # don't wrap clang-tidy headers, the list is too long
+ # (they're fine for non-native ABI but enabling the targets is problematic)
+ mv "${ED}"/usr/include/clang-tidy "${T}/" || die
+ fi
+}
+
+multilib_src_install_all() {
+ python_fix_shebang "${ED}"
+ if use static-analyzer; then
+ python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
+ fi
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+ # match 'html' non-compression
+ use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
+ # +x for some reason; TODO: investigate
+ use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow update all
+ fi
+
+ elog "You can find additional utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
+ if use extra; then
+ elog "Some of them are vim integration scripts (with instructions inside)."
+ elog "The run-clang-tidy.py script requires the following additional package:"
+ elog " dev-python/pyyaml"
+ fi
+}
+
+pkg_postrm() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow clean all
+ fi
+}
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 381da1f25e56..f9e0970d5b0f 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -32,6 +32,7 @@ DIST gcc-14.1.0-patches-1.tar.xz 11584 BLAKE2B d483f4e3324acdc26b9837028d5e20ad0
DIST gcc-14.1.0-patches-2.tar.xz 11400 BLAKE2B 8698d9521b193a03df20b68b70bc8d2dc083e246542d95e510b86f152a4d13818162985d4728d87f74be784870595a238d195f617427ec0905919cce0ed23476 SHA512 17e97aec43dea0c131fc6c829d05b7ab56d3164a7d79715f08f54cc2cff81747d1554ca2644edcc1cbd7db3d87dba6a1c2fb71896950bd9b54c4c5c10daa3e7f
DIST gcc-15-20240609.tar.xz 88288628 BLAKE2B 25ee6b2071fd189d5099160a1b9594cd0cdf6075a733258a61c3586f043d65a3e8ec22f1c2084c50694008d647ffa43895ed58dc655c41f296b98d136951c57a SHA512 058fae65f7cd398cff43282b9697497dead93401a7da47e63561bf029284b4b890f57f2ec74ef7e3ce7d170a2e69dfd5090b6465029360ab872222db037a9127
DIST gcc-15-20240616.tar.xz 88348980 BLAKE2B 3b2cc25b55167e371687b7325de14f088cda4cef72566ffcb243cfd7584234e60fe0fa69a3b70eccd02e30dff3980ab76507fdc9003195ba806ced2aef4feade SHA512 f5ce6785f3dc17493945e48787274ce338b32e7bce95f94b17bc28ce680eb092067d065843202e1449179da09ec3b23246d7a3aa6fc61cce3cce96e1e7ba576f
+DIST gcc-15-20240623.tar.xz 88407680 BLAKE2B 4916850739131edff5a144f9c75a95d45819ce236f079096ecf2e81a63dd1760a2c761a5db822f4a643f67e85efd10e63490b88fd099c3663fa5bc05417a0b8c SHA512 e0cd49b0852841c290d8a190d75740047aa87ba2c614adc575433d3d1f2e975f5795d78af8b9c125dd600eab233abbc1e2ec4ef71abd017fa3b1c4b2a72bc601
DIST gcc-15.0.0-musl-patches-1.tar.xz 3596 BLAKE2B 48fddc723ec8282cc2704c795a50fb37a46738a555151e0430180dda61d039fe96b29a6c3e8a543386d69690302bf46dfc89aad572082b7e47c928c0ccefdeb0 SHA512 e43284d02e25b77b911ce90d57520897751e86c631bdd6beb7d2e4429000156801b8c11bd9a737ec11bc966812f13ae44b88c1893645f8e6c6f8dfddc636ec39
DIST gcc-15.0.0-musl-patches-2.tar.xz 3076 BLAKE2B 0073248fe4f7dd827980559017b5aa1fb5c4c46acc9ad5c410dc152fd1e44966d3066bf7152338573cb45b1c36027de5f0c519abd414d97a37bccef07f6a5281 SHA512 295f1a669020bbe2874e9b03afd46b5d083073b276fca3543f3767a2d74f35df81cf0a67abad50c200cf7a3af36ec98ff9977cb7d5c19f334af7d3bb1926a3de
DIST gcc-15.0.0-patches-3.tar.xz 15668 BLAKE2B 99c332c7302bba0a790192bfcd81b8a273002884a2a89fc03f61d46ef669d9ba49496806400f86131c127b960862b97296148b6a0956946cc98470397c02579e SHA512 f0effdadff0fc553835c13f0dedb903374f021d172a20f01e6e3e0a39495ead96229665ba1a82f0aa1e9b49c6ff367f5c6e2c3e336a84ca02efb96f1a373f18a
@@ -63,6 +64,7 @@ EBUILD gcc-14.1.1_p20240622.ebuild 1619 BLAKE2B 9d9c1e1af0c2f08691774a2fcb48edc1
EBUILD gcc-14.1.9999.ebuild 1453 BLAKE2B caee7ba2e0323b0953b53c822cfe76c70eebd466d80575612ae6daffdfbdb663266a9272691b33c4396bf8c70c81cf3c64035d9c5159f1ba9ed1e231ce739c1f SHA512 b1cc3de6f9f03b6e6558824cec9c19c8b4c424c769f8d02c0675c20f6c687b2ac27fb8d19646feb221570611e35248b8c22334b9207d27c401a5c34a54e34652
EBUILD gcc-15.0.0_pre20240609-r1.ebuild 1402 BLAKE2B 773dde45ccecbf9f0645b184d3f8200c2b6876ed11aaeda3e616889c4a5fc44db1a76bc640cfe4fbff094ccb93d2c89130baf4bb053cff25e794eceb88d95682 SHA512 1b2a9b20806a57fd90ff8a100c393586b70dbc308d825823c9c680c62a2334d2716678f2a6faee1f11044e8f6a7c0f4617d1bfd8b98a49c0e257f2dbe6ffecfd
EBUILD gcc-15.0.0_pre20240616.ebuild 1402 BLAKE2B 1eda966164b7979272b3be8edc7b30752c4aae2524824a2a53476d7b8e711a01f5c4f9aee5b09f4aa7c8ac43fd9e0b86e5c65dd37b8467e22eb4f52a916448a4 SHA512 79282351ebb8eeb60202388dcf812d2a41621e175efc72f3a3c8ff923087f7d2d4c8381c2622d036991cdb62b51299985543e97ce270c1712d56357d8df0400f
+EBUILD gcc-15.0.0_pre20240623.ebuild 1402 BLAKE2B 1eda966164b7979272b3be8edc7b30752c4aae2524824a2a53476d7b8e711a01f5c4f9aee5b09f4aa7c8ac43fd9e0b86e5c65dd37b8467e22eb4f52a916448a4 SHA512 79282351ebb8eeb60202388dcf812d2a41621e175efc72f3a3c8ff923087f7d2d4c8381c2622d036991cdb62b51299985543e97ce270c1712d56357d8df0400f
EBUILD gcc-15.0.9999.ebuild 1375 BLAKE2B 713f557e8ccda4a146eb0286c1d42c1ccf144937450190dff66be5a280abc345951cd43c563f3a3436cdfa5c9e6a077d59132e3f8f7fc9d472803b8024624abe SHA512 624abe83fbc0654e5f2104fa29499fc26ecdc8d5a923f653981c79f93c982c1f43bb75005b61239bd1fe8490d1cf64afd28a454a5d1bc72c51369cde1656524a
EBUILD gcc-8.5.0-r1.ebuild 533 BLAKE2B ef3368f7236352e8ddd5b56919cd2145794b0385f35e4efa50808aeafd98687eba5d32264a3fb2a34d85b5d913697e93af58eb03ce35b6b5ba45d78bb8f33d25 SHA512 528e4b7389f4053aa177b8405469963358c5d595fa257115fa94e5e26a54a6c3b1c15bb847bb97864dd387fd2681f16907aecf052fad9315dd91863ac419d10d
EBUILD gcc-9.5.0.ebuild 1241 BLAKE2B bd30abe9c99e317edcf7ae6ce8626a4c27322deaaadd510f02d0f36422d892eed896cb0ede817c1ee5bd2f5b913f2c426ed2ebb5bb8c2d455a1bbb3531f49eed SHA512 905224e69370a065c1f6b72b568418a231fa47f76085291b4eb3bdab741a64d1e454b02064d2afb4a91c1d935c58e8d299485b33fcc4fef8db3531967f6fb457
diff --git a/sys-devel/gcc/gcc-15.0.0_pre20240623.ebuild b/sys-devel/gcc/gcc-15.0.0_pre20240623.ebuild
new file mode 100644
index 000000000000..b2ef3b0ac50b
--- /dev/null
+++ b/sys-devel/gcc/gcc-15.0.0_pre20240623.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_DEV="sam"
+PATCH_GCC_VER="15.0.0"
+PATCH_VER="4"
+MUSL_VER="2"
+MUSL_GCC_VER="15.0.0"
+PYTHON_COMPAT=( python3_{10..12} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=master
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+ BDEPEND="amd64? ( >=${CATEGORY}/binutils-2.30[cet(-)?] )"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+
+ eapply_user
+}
diff --git a/sys-devel/lld/Manifest b/sys-devel/lld/Manifest
index d24522866739..1247e93d8781 100644
--- a/sys-devel/lld/Manifest
+++ b/sys-devel/lld/Manifest
@@ -7,6 +7,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
@@ -14,6 +16,7 @@ EBUILD lld-15.0.7.ebuild 2269 BLAKE2B 322d5608e3acfb87bfb720646404ed405a3113c4fa
EBUILD lld-16.0.6.ebuild 2324 BLAKE2B 9b849aea16a8188e4da4cfcf0c85fb3e997007e1287ec062aee182c7955c7bc78132e761c2611198c7207283fbe930fbee6bdc9a39b922d6d5387bedadaf1b76 SHA512 a7c3d4c1508e5435ba9f6250c6b2fd3157fb4f2c205a6888736f79fa739c59eec3e901927b53af81de3a3c6d4fa5d576be3eaa6ad45c60e5d952ed4ad9706c2f
EBUILD lld-17.0.6.ebuild 2363 BLAKE2B 8ebe513b67f3fb8efd981b97c1f77fe5de2065c363c2b9e99b8836983539fe5637b231e8be2a87713d47b48a49bfde77471ad65fa5166b606df476eca6f94fc1 SHA512 fd63e8600e393ecd95a05a28c8ac0d71b12f5aedcf273f432bea1904165b874ee913afff4aab91c2049aa1eb95c239bca217b84150133b2060f95ea66ce1944e
EBUILD lld-18.1.7.ebuild 2373 BLAKE2B 35b65cd90474db95b394ef3b041c017bf78b6650e27e7fc302e010a17c6a3ec88a6e0031842a73622bb06c3cea771193d9dc42b5f00bfd773fbf16d4dc422be0 SHA512 b7eb6f7c287ac006d80426ab160d801792f74c6b7aef02b5244763351adc96efd3e06e50aca1cd04f797d7e2aa1dfa92f4f9aea3d34c7a01c9e6c79dfe58ec8a
+EBUILD lld-18.1.8.ebuild 2373 BLAKE2B 35b65cd90474db95b394ef3b041c017bf78b6650e27e7fc302e010a17c6a3ec88a6e0031842a73622bb06c3cea771193d9dc42b5f00bfd773fbf16d4dc422be0 SHA512 b7eb6f7c287ac006d80426ab160d801792f74c6b7aef02b5244763351adc96efd3e06e50aca1cd04f797d7e2aa1dfa92f4f9aea3d34c7a01c9e6c79dfe58ec8a
EBUILD lld-19.0.0.9999.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
EBUILD lld-19.0.0_pre20240608.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
EBUILD lld-19.0.0_pre20240615.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
diff --git a/sys-devel/lld/lld-18.1.8.ebuild b/sys-devel/lld/lld-18.1.8.ebuild
new file mode 100644
index 000000000000..7052d857f918
--- /dev/null
+++ b/sys-devel/lld/lld-18.1.8.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake flag-o-matic llvm.org llvm-utils 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 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos"
+IUSE="debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~sys-devel/llvm-${PV}[debug=,zstd=]
+ sys-libs/zlib:=
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+ ${DEPEND}
+ !sys-devel/lld:0
+"
+BDEPEND="
+ sys-devel/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
+ )
+"
+PDEPEND="
+ >=sys-devel/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version ">=dev-python/lit-${PV}[${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_prepend_path "${LLVM_MAJOR}"
+
+ # ODR violations (https://github.com/llvm/llvm-project/issues/83529, bug #922353)
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DBUILD_SHARED_LIBS=ON
+ -DLLVM_INCLUDE_TESTS=$(usex test)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ tc-is-cross-compiler && mycmakeargs+=(
+ -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lld
+}
diff --git a/sys-devel/llvm-common/Manifest b/sys-devel/llvm-common/Manifest
index ac75ab89067b..1befd5a239a8 100644
--- a/sys-devel/llvm-common/Manifest
+++ b/sys-devel/llvm-common/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
@@ -13,6 +15,7 @@ EBUILD llvm-common-15.0.7.ebuild 1014 BLAKE2B da3b7ec6cd3c1e57758312fb9ea25e6933
EBUILD llvm-common-16.0.6.ebuild 1034 BLAKE2B 1e0a0b6cbb746a7eb45e3f553bc949b69314afc3d913cda004d395e7b322c17f976496eed074cf08718dc2d9efa7f3db81dec4f38394fe6ea2b77793b74f4371 SHA512 8fbb211a6b05d24409642fcb00a4fb798499721cc30c4c5fa2df120ed74d9da7286916cf3788ea26f2cb21e334876417b05a4336fedff99e95d1ebe358f8b311
EBUILD llvm-common-17.0.6.ebuild 1034 BLAKE2B 1e0a0b6cbb746a7eb45e3f553bc949b69314afc3d913cda004d395e7b322c17f976496eed074cf08718dc2d9efa7f3db81dec4f38394fe6ea2b77793b74f4371 SHA512 8fbb211a6b05d24409642fcb00a4fb798499721cc30c4c5fa2df120ed74d9da7286916cf3788ea26f2cb21e334876417b05a4336fedff99e95d1ebe358f8b311
EBUILD llvm-common-18.1.7.ebuild 1047 BLAKE2B 195324cff3d34038012504238dfbbdb44fc9a8ff2dc7d2af7165006f0b7a10dfe28439631c601d89e02a304477509ee268653a98a956936c234e3d7520574691 SHA512 00c0448fa43e250ce7a3f1c4fb20312eba3ab860387f33399eb66e50bea5029bc72c1c1f733acaf24f729a6f7b5ee6e6a6308b4532ed1ec135b99c9541c49173
+EBUILD llvm-common-18.1.8.ebuild 1047 BLAKE2B 195324cff3d34038012504238dfbbdb44fc9a8ff2dc7d2af7165006f0b7a10dfe28439631c601d89e02a304477509ee268653a98a956936c234e3d7520574691 SHA512 00c0448fa43e250ce7a3f1c4fb20312eba3ab860387f33399eb66e50bea5029bc72c1c1f733acaf24f729a6f7b5ee6e6a6308b4532ed1ec135b99c9541c49173
EBUILD llvm-common-19.0.0.9999.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-19.0.0_pre20240608.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-19.0.0_pre20240615.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
diff --git a/sys-devel/llvm-common/llvm-common-18.1.8.ebuild b/sys-devel/llvm-common/llvm-common-18.1.8.ebuild
new file mode 100644
index 000000000000..7a852f871e36
--- /dev/null
+++ b/sys-devel/llvm-common/llvm-common-18.1.8.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2024 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 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="emacs"
+
+RDEPEND="
+ !sys-devel/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/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
index 96424fe401e2..71e7eb5a888f 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -13,6 +13,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
@@ -20,6 +22,7 @@ EBUILD llvm-15.0.7-r3.ebuild 12592 BLAKE2B 81cd473990810203c4e8a47ceb0189ed399c8
EBUILD llvm-16.0.6.ebuild 12822 BLAKE2B fe0a8bca0506827f09ea9edc18e8574443af644540cec84126fa3668ca8fa538a103c76315ee7c61b0af67a1391168ae7b04201e7825958a46fe8642a327e93b SHA512 a1a861d11791cb583dc33b9c71a86bd50690ffb8b743a6bccf8b4600976f48e96a2b4171cc9b449c17c8b0516ef440cee89df8cff97a3c691968b3431a149612
EBUILD llvm-17.0.6.ebuild 13293 BLAKE2B 50e4212c63f1561f4fc8397a831f83bd3ea370349fa3b6239dfe2f9212757f6e8d5bb1921b8714680fe94d0f02ca523d289447b1396124aa94f91b539aabb17a SHA512 5b2b1d2293cf00d0c547a06111a0af706b2cad1f7cb5f2cc421f54a129c165560adbba4342d9bea486d5b2474a1eed066f1ae955a89133cd94b61a62313980bb
EBUILD llvm-18.1.7.ebuild 13359 BLAKE2B 0baff2537134709ae351f867b40e9f0a7bcb540540d9b8ef49398163efcacccc0e02791121c06752ac17d1ad961ad0d639f8d5df08d36c34f060b00bf65e3ebb SHA512 25a83a7e365d6ec933196f8356c3b1805220ac88e6e342c87b041597a67f21de479670db6d78157e0899f31f9158a6e17f730c279df1883c687f174ec9c496fa
+EBUILD llvm-18.1.8.ebuild 13359 BLAKE2B 0baff2537134709ae351f867b40e9f0a7bcb540540d9b8ef49398163efcacccc0e02791121c06752ac17d1ad961ad0d639f8d5df08d36c34f060b00bf65e3ebb SHA512 25a83a7e365d6ec933196f8356c3b1805220ac88e6e342c87b041597a67f21de479670db6d78157e0899f31f9158a6e17f730c279df1883c687f174ec9c496fa
EBUILD llvm-19.0.0.9999.ebuild 12883 BLAKE2B 7cdb711526347c7a2c378c0e52e006429021daf3d637187eb9439d70a35ab94b59b028e9dd0d832e83ca2a522a2dd701268f5dc942ef53b3bba8d9bc1942e5f0 SHA512 43b7a87422810949d8c59d97e21be87311f755f2565828dacb988e64510c4f7c16202aa50f047ddddafd0c9cec14618cfc65c38a0016a9e8aa2055f18510dc59
EBUILD llvm-19.0.0_pre20240608.ebuild 12883 BLAKE2B 7cdb711526347c7a2c378c0e52e006429021daf3d637187eb9439d70a35ab94b59b028e9dd0d832e83ca2a522a2dd701268f5dc942ef53b3bba8d9bc1942e5f0 SHA512 43b7a87422810949d8c59d97e21be87311f755f2565828dacb988e64510c4f7c16202aa50f047ddddafd0c9cec14618cfc65c38a0016a9e8aa2055f18510dc59
EBUILD llvm-19.0.0_pre20240615.ebuild 12883 BLAKE2B 7cdb711526347c7a2c378c0e52e006429021daf3d637187eb9439d70a35ab94b59b028e9dd0d832e83ca2a522a2dd701268f5dc942ef53b3bba8d9bc1942e5f0 SHA512 43b7a87422810949d8c59d97e21be87311f755f2565828dacb988e64510c4f7c16202aa50f047ddddafd0c9cec14618cfc65c38a0016a9e8aa2055f18510dc59
diff --git a/sys-devel/llvm/llvm-18.1.8.ebuild b/sys-devel/llvm/llvm-18.1.8.ebuild
new file mode 100644
index 000000000000..8b9fe8989341
--- /dev/null
+++ b/sys-devel/llvm/llvm-18.1.8.ebuild
@@ -0,0 +1,548 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit cmake 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 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+IUSE="
+ +binutils-plugin debug debuginfod doc exegesis libedit +libffi
+ ncurses test xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sys-libs/zlib:0=[${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}] )
+ ncurses? ( >=sys-libs/ncurses-5.9-r3: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? (
+ <sys-libs/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}
+ !sys-devel/llvm:0
+"
+PDEPEND="
+ sys-devel/llvm-common
+ sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
+ binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake 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
+
+ if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+ eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
+ eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eqawarn "Expected: ${exp_targets[*]}"
+ eqawarn
+ fi
+
+ if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+ eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
+ eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eqawarn "Expected: ${prod_targets[*]}"
+ fi
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # shared libs
+ LLVM|LLVMgold)
+ ;;
+ # TableGen lib + deps
+ LLVMDemangle|LLVMSupport|LLVMTableGen)
+ ;;
+ # 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
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eqawarn "get_distribution_components() is outdated!"
+ eqawarn " Add: ${add[*]}"
+ eqawarn "Remove: ${remove[*]}"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ # disable use of SDK on OSX, bug #568758
+ sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+ # Update config.guess to support more systems
+ cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+ # Verify that the ebuild is up-to-date
+ check_uptodate
+
+ llvm.org_src_prepare
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # shared libs
+ LLVM
+ LTO
+ Remarks
+
+ # tools
+ llvm-config
+
+ # common stuff
+ cmake-exports
+ llvm-headers
+
+ # libraries needed for clang-tblgen
+ LLVMDemangle
+ LLVMSupport
+ LLVMTableGen
+
+ # testing libraries
+ llvm_gtest
+ llvm_gtest_main
+ LLVMTestingAnnotations
+ LLVMTestingSupport
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # library used by lldb
+ LLVMDebuginfod
+
+ # utilities
+ llvm-tblgen
+ FileCheck
+ llvm-PerfectShuffle
+ count
+ not
+ yaml-bench
+ UnicodeNameMappingGenerator
+
+ # tools
+ bugpoint
+ dsymutil
+ llc
+ lli
+ lli-child-target
+ llvm-addr2line
+ llvm-ar
+ llvm-as
+ llvm-bcanalyzer
+ llvm-bitcode-strip
+ llvm-c-test
+ llvm-cat
+ llvm-cfi-verify
+ llvm-config
+ llvm-cov
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ llvm-debuginfod-find
+ llvm-diff
+ llvm-dis
+ llvm-dlltool
+ llvm-dwarfdump
+ llvm-dwarfutil
+ llvm-dwp
+ llvm-exegesis
+ llvm-extract
+ llvm-gsymutil
+ llvm-ifs
+ llvm-install-name-tool
+ llvm-jitlink
+ llvm-jitlink-executor
+ llvm-lib
+ llvm-libtool-darwin
+ llvm-link
+ llvm-lipo
+ llvm-lto
+ llvm-lto2
+ llvm-mc
+ llvm-mca
+ llvm-ml
+ llvm-modextract
+ llvm-mt
+ llvm-nm
+ llvm-objcopy
+ llvm-objdump
+ llvm-opt-report
+ llvm-otool
+ llvm-pdbutil
+ llvm-profdata
+ llvm-profgen
+ llvm-ranlib
+ llvm-rc
+ llvm-readelf
+ llvm-readobj
+ llvm-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
+ 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
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ if use ppc && tc-is-gcc && [[ $(gcc-major-version) -lt 14 ]]; then
+ # Workaround for bug #880677
+ append-flags $(test-flags-CXX -fno-ipa-sra -fno-ipa-modref -fno-ipa-icf)
+ fi
+
+ # 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_TERMINFO=$(usex ncurses)
+ -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}"
+
+ -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+ -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # disable OCaml bindings (now in dev-ml/llvm-ocaml)
+ -DOCAMLFIND=NO
+ )
+
+ local suffix=
+ if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+ # the ABI of the main branch is not stable, so let's include
+ # the commit id in the SOVERSION to contain the breakage
+ suffix+="git${EGIT_VERSION::8}"
+ fi
+ if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+ # Smart hack: alter version suffix -> SOVERSION when linking
+ # against libc++. This way we won't end up mixing LLVM libc++
+ # libraries with libstdc++ clang, and the other way around.
+ suffix+="+libcxx"
+ mycmakeargs+=(
+ -DLLVM_ENABLE_LIBCXX=ON
+ )
+ fi
+ mycmakeargs+=(
+ -DLLVM_VERSION_SUFFIX="${suffix}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ fi
+
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=${build_docs}
+ -DLLVM_ENABLE_OCAMLDOC=OFF
+ -DLLVM_ENABLE_SPHINX=${build_docs}
+ -DLLVM_ENABLE_DOXYGEN=OFF
+ -DLLVM_INSTALL_UTILS=ON
+ )
+ use binutils-plugin && mycmakeargs+=(
+ -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+ )
+ fi
+
+ use kernel_Darwin && mycmakeargs+=(
+ # On Macos prefix, Gentoo doesn't split sys-libs/ncurses to libtinfo and
+ # libncurses, but llvm tries to use libtinfo before libncurses, and ends up
+ # using libtinfo (actually, libncurses.dylib) from system instead of prefix
+ -DTerminfo_LIBRARIES=-lncurses
+ # 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/sys-devel/mold/Manifest b/sys-devel/mold/Manifest
index 58569836d736..fa7ae329a2bb 100644
--- a/sys-devel/mold/Manifest
+++ b/sys-devel/mold/Manifest
@@ -1,15 +1,12 @@
-AUX mold-2.3.0-no-pch.patch 457 BLAKE2B ac313a6409a2e43b6d26833231cb26c36d3d34f25b25d4217d50fbd1f39eda9d5b42a1939ca8ee48f6dfb73d3c27d7c6111da9beb67a43c72d3c2beb070303b0 SHA512 c79b3e998cbc23ca7069eed95a7d7871371da9c21b6970fe2a1d8dcd1009466e262f63febbc267d364e552b2eb4bebd5d74bc6dc8084d48d4c0e9e02e1d868bc
AUX mold-2.30.0-gcc14.patch 2419 BLAKE2B 91906617dc78f620c34a31381d74bf11551dbe8963c7ac0447acc56314026342b0583441aa1857de5f6fb2255589bb79f76451d72a8a385366ece2b2a89e8960 SHA512 2e2bf547caeddb5c4970bb8f3555e104a16b499017832df86535cfeebb2ca5178fa7ed36c7e27e64a3822aab7985266ef62143668c241a632183ba4a06a19259
AUX mold-2.30.0-which-hunt.patch 985 BLAKE2B 89d1d0ca075b1199911e63cbe87b53066557984d2ef97df89578accda4f7ca10ab279f920cce64eb1329029421750b8aa27bd482f2e6ae3655937200445ed83a SHA512 bd1ca6aba29e1cf96706153544f350a948e08e81645c2d4fb657ed8e8775b239f09f7469f2e5e8d0e6e5dde8cc6c97b938fa4441139d6c8bf5c93923db77974c
DIST mold-2.1.0.tar.gz 9278811 BLAKE2B b31e13f92177553adf5069cf35c8c75c7bc28f0af4d1726cdc0c6abc1c9d3baaa5be512c3a8fb9bc3c3110096a79e1c6751c701171769595a2234fc1fa8c441a SHA512 f1c98d349b35b4042109d71f7db6eb8d7d089dc3241735bbd7b5402d513dcc85ca17904828779e5fc8234650fa9fb97f47c3a2f3e89cc2fb3cb9e9110439e5a2
DIST mold-2.30.0.tar.gz 9957539 BLAKE2B f45924598029dabfb2c02298e1f89aae848cd64e2e87dd80f500de323517db92e62df798feee8a2cd81cb930eff0640c2b9957808a4080f0027884015994ce64 SHA512 7cfba4f0fb332799ad267d3eafb8e2f0057af4484467b3e3fbaf8044220163a2c7e26cd1786510f250844c8b57e30c15167c8dd9688af1773abc580c5605abf3
DIST mold-2.31.0.tar.gz 10031469 BLAKE2B 338f516efcb430c8393fb0d6861b913fa1dd0095226e3d13018255da4f0b4affa168928b1e5cfbd0b5a4efcf840612675f04579f0c1d3c0e2b3c6815d6bef4c0 SHA512 343c62d8c67b74988f762c46999d2d866b2e9a0c69d2b910b12384ea5abc620b30468cd1b1bacfe41474d1c97c8ce2e49d55ca70479691238fb73d83d9adc683
-DIST mold-2.4.0.tar.gz 9974233 BLAKE2B 0710d9ce0407b64b05a23e04db142d603b38d41cd9e5e322b650680ee2bd8684f57647e9a0b5efc23b2106eb1e38e38143be7d4b357b2d32e4fe0b6a99e41cca SHA512 e332d027f783dfb0a4f48b1fb7daf98e11e830f8de82b971b58ee8a7bae59eaa30b8155e7491b6057f0ce8e0b09ddd0ab1d364f01ea15517e1d089fdb292a4e5
-DIST mold-2.4.1.tar.gz 9957259 BLAKE2B 17aab84c0793dc305d53a3c2f372ddc92395b6941ffe372af55cf94f4dd65ea8d63d4e85dcdb3e76622811e5f95577d6f10612102c373835d6f75f2a3d0bcfed SHA512 d61ee4306ecaa6ba5b4ce120636e70db081bb824a482bb3014429e13294134bc2560b1a9b477c47378f1062107f1c32dba2810e41be199cd6882cd1146971245
+DIST mold-2.32.0.tar.gz 10005686 BLAKE2B a277a29498f4d6b33da49ba038ce5ef1c4a1bd3ac84ea994a2aae5d36139a2ee773e08e1a3ff0a7382da4d2319ce994575e3ed1e5be8e5f7a161045aaf4e2d58 SHA512 66cd95ec65b31749ead7604f921eebd9f8e7faad82f6aa2cd7a179e4f4cb2bd78584ec5a8de000fbd4c37bbbfeb878e40a4e93ca909d1be557d73117e4b38f4b
EBUILD mold-2.1.0.ebuild 2169 BLAKE2B b91dec8fb9890052e06cf40124f7647833a6ea786d95d44863848bfff17c0ba335f28aaac08d6971a619dbb845b9091d1134bae47f70bd811d2fde0f9ca11066 SHA512 5d27926e5003e6bd24ee3baf8258ab043aa660b7a36918500283bbec9d991ad8ea6971add52579ba6ee10a7eeeb97a6dff3a7e065c7292ced42d2f0043e33d1e
EBUILD mold-2.30.0.ebuild 2456 BLAKE2B f91748ee6adfab7956209111c5e26711db20ad701caf255cb54d04eec8e9cc862f86e43ceb79d90cefac1e427aba479f0c84a590e4d38d16442fb3bd5f5c1538 SHA512 cc2f642d0eb97d2dc35cb25d3649f74ad008dcbc40e37c140e932b20074f156e7e36f1be81c83855372fbcb779f99646a634094fc6265be8fdb0ef42d6a3d4b7
EBUILD mold-2.31.0.ebuild 2367 BLAKE2B 64476998c316857a9b39c6ffb2d7b01a7f49063aef49e9ac0227c773775e70817efdbb07b00e465f92120af627e9201a5df65761a532258f91ff7d64077eabbe SHA512 b8d94bae9cfb163d8674524e14a854b69d4c060c2404a4848857f47b1147b6fc3a9659b9ae57bb5cfb4bc9b4f3a726b287b2256c99a895438bd1fb5fe32e13ca
-EBUILD mold-2.4.0.ebuild 2419 BLAKE2B 5aae5dce0f49f7982b0367cc3d0edce8bd5afa9354d69e606cae21a665e10bee32b55071cf50ac6bc1b9f7840e885b2792383674ef546b904a0ed7369368f2d4 SHA512 f5ad699310e9a53a048850c6fdc429d17fc952045c089f1b297cd0581e0e870a94c386ef0d17580dbc36ed504f64253646d12233e4e17568cd9301db90336b5d
-EBUILD mold-2.4.1.ebuild 2367 BLAKE2B 64476998c316857a9b39c6ffb2d7b01a7f49063aef49e9ac0227c773775e70817efdbb07b00e465f92120af627e9201a5df65761a532258f91ff7d64077eabbe SHA512 b8d94bae9cfb163d8674524e14a854b69d4c060c2404a4848857f47b1147b6fc3a9659b9ae57bb5cfb4bc9b4f3a726b287b2256c99a895438bd1fb5fe32e13ca
-EBUILD mold-9999.ebuild 2367 BLAKE2B 64476998c316857a9b39c6ffb2d7b01a7f49063aef49e9ac0227c773775e70817efdbb07b00e465f92120af627e9201a5df65761a532258f91ff7d64077eabbe SHA512 b8d94bae9cfb163d8674524e14a854b69d4c060c2404a4848857f47b1147b6fc3a9659b9ae57bb5cfb4bc9b4f3a726b287b2256c99a895438bd1fb5fe32e13ca
+EBUILD mold-2.32.0.ebuild 2404 BLAKE2B e0dec3ee1e668a31d8e5155f84b60431f8bcc1fec32dbcce73e170c8617faecf2b193b235009cf5dcbeccb4d4396b2ea9a564f8cb2fbc78569ca5c05761145c2 SHA512 780ca7ac4280acf0155c73316dcfdac1dd92316330c0a071ac9ed56367c82af1c9ea07d3d9cd3f6236505912db530a17b39340e1dbe6e6111b813e1c88535260
+EBUILD mold-9999.ebuild 2404 BLAKE2B e0dec3ee1e668a31d8e5155f84b60431f8bcc1fec32dbcce73e170c8617faecf2b193b235009cf5dcbeccb4d4396b2ea9a564f8cb2fbc78569ca5c05761145c2 SHA512 780ca7ac4280acf0155c73316dcfdac1dd92316330c0a071ac9ed56367c82af1c9ea07d3d9cd3f6236505912db530a17b39340e1dbe6e6111b813e1c88535260
MISC metadata.xml 424 BLAKE2B a1c0cbdcb86c323fa1e6143c9665ec548f7713e74002a25b2fc26c51b60dae00922d3448a5aaecd5027a8cb026a681386ca7dea90657a3e10b25fb194dafc0d3 SHA512 1adc934e78ca0210743a1aa7479ebc4b5ea0b66a348c4408423460f02b404b885d3a8eca6e89ea8ac53ac9c76e85116965f1eef79e3f3e1f0451c8cf5ce0dfd6
diff --git a/sys-devel/mold/files/mold-2.3.0-no-pch.patch b/sys-devel/mold/files/mold-2.3.0-no-pch.patch
deleted file mode 100644
index e61b5df01f54..000000000000
--- a/sys-devel/mold/files/mold-2.3.0-no-pch.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-We generally disable PCH in Gentoo because of how buggy it is.
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -400,7 +400,7 @@ endif()
-
- # Add frequently included header files for pre-compiling.
- # target_precompile_headers is supported by CMake 3.16.0 or newer.
--if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
-+if(FALSE)
- if(MOLD_IS_SOLD)
- target_precompile_headers(mold PRIVATE
- "$<$<COMPILE_LANGUAGE:CXX>:${CMAKE_SOURCE_DIR}/elf/mold.h>"
diff --git a/sys-devel/mold/mold-2.4.1.ebuild b/sys-devel/mold/mold-2.32.0.ebuild
index 066b8e9902c7..638c34d50c92 100644
--- a/sys-devel/mold/mold-2.4.1.ebuild
+++ b/sys-devel/mold/mold-2.32.0.ebuild
@@ -17,7 +17,8 @@ fi
# mold (MIT)
# - xxhash (BSD-2)
-LICENSE="MIT BSD-2"
+# - siphash ( MIT CC0-1.0 )
+LICENSE="MIT BSD-2 CC0-1.0"
SLOT="0"
RDEPEND="
diff --git a/sys-devel/mold/mold-2.4.0.ebuild b/sys-devel/mold/mold-2.4.0.ebuild
deleted file mode 100644
index 39999e0ec4a8..000000000000
--- a/sys-devel/mold/mold-2.4.0.ebuild
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake toolchain-funcs
-
-DESCRIPTION="A Modern Linker"
-HOMEPAGE="https://github.com/rui314/mold"
-if [[ ${PV} == 9999 ]] ; then
- EGIT_REPO_URI="https://github.com/rui314/mold.git"
- inherit git-r3
-else
- SRC_URI="https://github.com/rui314/mold/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86"
-fi
-
-# mold (MIT)
-# - xxhash (BSD-2)
-LICENSE="MIT BSD-2"
-SLOT="0"
-
-RDEPEND="
- app-arch/zstd:=
- >=dev-cpp/tbb-2021.7.0-r1:=
- dev-libs/blake3:=
- sys-libs/zlib
- !kernel_Darwin? (
- >=dev-libs/mimalloc-2:=
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.3.0-no-pch.patch
-)
-
-pkg_pretend() {
- # Requires a c++20 compiler, see #831473
- if [[ ${MERGE_TYPE} != binary ]]; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]]; then
- die "${PN} needs at least gcc 10"
- elif tc-is-clang && [[ $(clang-major-version) -lt 12 ]]; then
- die "${PN} needs at least clang 12"
- fi
- fi
-}
-
-src_prepare() {
- cmake_src_prepare
-
- # Needs unpackaged dwarfdump
- rm test/elf/{{dead,compress}-debug-sections,compressed-debug-info}.sh || die
-
- # Heavy tests, need qemu
- rm test/elf/gdb-index-{compress-output,dwarf{2,3,4,5}}.sh || die
- rm test/elf/lto-{archive,dso,gcc,llvm,version-script}.sh || die
-
- # Sandbox sadness
- rm test/elf/run.sh || die
- sed -i 's|`pwd`/mold-wrapper.so|"& ${LD_PRELOAD}"|' \
- test/elf/mold-wrapper{,2}.sh || die
-
- # static-pie tests require glibc built with static-pie support
- if ! has_version -d 'sys-libs/glibc[static-pie(+)]'; then
- rm test/elf/{,ifunc-}static-pie.sh || die
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DMOLD_ENABLE_QEMU_TESTS=OFF
- -DMOLD_LTO=OFF # Should be up to the user to decide this with CXXFLAGS.
- -DMOLD_USE_MIMALLOC=$(usex !kernel_Darwin)
- -DMOLD_USE_SYSTEM_MIMALLOC=ON
- -DMOLD_USE_SYSTEM_TBB=ON
- )
- cmake_src_configure
-}
-
-src_install() {
- dobin "${BUILD_DIR}"/${PN}
-
- # https://bugs.gentoo.org/872773
- insinto /usr/$(get_libdir)/mold
- doins "${BUILD_DIR}"/${PN}-wrapper.so
-
- dodoc docs/{design,execstack}.md
- doman docs/${PN}.1
-
- dosym ${PN} /usr/bin/ld.${PN}
- dosym ${PN} /usr/bin/ld64.${PN}
- dosym -r /usr/bin/${PN} /usr/libexec/${PN}/ld
-}
-
-src_test() {
- export TEST_CC="$(tc-getCC)" \
- TEST_GCC="$(tc-getCC)" \
- TEST_CXX="$(tc-getCXX)" \
- TEST_GXX="$(tc-getCXX)"
- cmake_src_test
-}
diff --git a/sys-devel/mold/mold-9999.ebuild b/sys-devel/mold/mold-9999.ebuild
index 066b8e9902c7..638c34d50c92 100644
--- a/sys-devel/mold/mold-9999.ebuild
+++ b/sys-devel/mold/mold-9999.ebuild
@@ -17,7 +17,8 @@ fi
# mold (MIT)
# - xxhash (BSD-2)
-LICENSE="MIT BSD-2"
+# - siphash ( MIT CC0-1.0 )
+LICENSE="MIT BSD-2 CC0-1.0"
SLOT="0"
RDEPEND="