summaryrefslogtreecommitdiff
path: root/sys-devel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/Manifest.gzbin7860 -> 7867 bytes
-rw-r--r--sys-devel/clang-common/Manifest4
-rw-r--r--sys-devel/clang-common/clang-common-20.0.0.9999.ebuild19
-rw-r--r--sys-devel/clang-common/clang-common-20.0.0_pre20240917.ebuild305
-rw-r--r--sys-devel/clang-runtime/Manifest1
-rw-r--r--sys-devel/clang-runtime/clang-runtime-20.0.0_pre20240917.ebuild39
-rw-r--r--sys-devel/clang/Manifest2
-rw-r--r--sys-devel/clang/clang-20.0.0_pre20240917.ebuild471
-rw-r--r--sys-devel/gcc/Manifest8
-rw-r--r--sys-devel/gcc/gcc-12.4.1_p20240912.ebuild64
-rw-r--r--sys-devel/gcc/gcc-13.3.1_p20240913.ebuild65
-rw-r--r--sys-devel/gcc/gcc-14.2.1_p20240914.ebuild53
-rw-r--r--sys-devel/gcc/gcc-15.0.0_pre20240915.ebuild52
-rw-r--r--sys-devel/lld/Manifest2
-rw-r--r--sys-devel/lld/lld-20.0.0_pre20240917.ebuild93
-rw-r--r--sys-devel/llvm-common/Manifest2
-rw-r--r--sys-devel/llvm-common/llvm-common-20.0.0_pre20240917.ebuild53
-rw-r--r--sys-devel/llvm/Manifest2
-rw-r--r--sys-devel/llvm/llvm-20.0.0_pre20240917.ebuild554
-rw-r--r--sys-devel/mold/Manifest4
-rw-r--r--sys-devel/mold/files/mold-2.33.0-icf.patch41
-rw-r--r--sys-devel/mold/mold-2.33.0-r1.ebuild106
-rw-r--r--sys-devel/mold/mold-9999.ebuild7
-rw-r--r--sys-devel/reflex/Manifest3
-rw-r--r--sys-devel/reflex/reflex-20240906.ebuild25
25 files changed, 1962 insertions, 13 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz
index c346a3f543a5..3eedfda11823 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 5f8ce43892ff..ac3991e18785 100644
--- a/sys-devel/clang-common/Manifest
+++ b/sys-devel/clang-common/Manifest
@@ -8,6 +8,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85
EBUILD clang-common-15.0.7-r8.ebuild 5482 BLAKE2B 20e8744166a852b4dbc233f128807e60bb204f14558d2cc1691b1a87777be2775d1a6c82a108945f795b02919bc47bf213b1a85e45f423c49a6009aed0fbbc3b SHA512 bf1f5cdf47c6772266117e9545994dcfb27cfd263a5e7749604106686d8e56b8b45ddab7073d6baf73e966304162f3aad755075c11dbb16bb42b88fa78e6face
@@ -16,7 +17,8 @@ EBUILD clang-common-17.0.6-r5.ebuild 9010 BLAKE2B cbb5c5094ca6e99fc9ce1734acf02e
EBUILD clang-common-17.0.6-r6.ebuild 9035 BLAKE2B 4e18fbf5bb39238603a6d490eb3e17012f510b859272331826e43fa3c14bdb57af0d63cadcac45dc3cac5a89dcdd401242022f130c681d17fb74c1339aa4dd69 SHA512 5b592d886f4b6d7ffdc67593d994f89a3202710633b61e0ee2d709052edd75ecc2f32e66668902901f5d5d21d08992f085b6f6a054a0f887d3a691f714a59caf
EBUILD clang-common-18.1.8-r1.ebuild 9157 BLAKE2B 14774bfe075203448411b3d83aceba598af166c371ad6d3c4747c7143d108d932e1226a96a5ede74125aea7a43a85b466fb1e9d81055d8ca330c34a48524cd30 SHA512 26cabdd8801a1bc2bfaf9e4a489d766f686ea6c93c2e572c778bd13c5b769130bce7f8790ffe7f0d0977fbfb9ad73b18863137c84cda9788c231eddabef3d57c
EBUILD clang-common-19.1.0_rc4.ebuild 9042 BLAKE2B 7fc18661a55e2c223cc3c4e6c8477a913a0ed025b013f4407e58682f00f389cc2961c8cd5ee20d13e75b51f1c8a0b79569a0bb35da6a2028703f9fee553ed4c0 SHA512 212b4035d367e465de90d6b89c81388e45023257aec550dfe81c7ca71ea0a8d59b2ece092c8cbc4b5eadf4d29a3fbde6a49e6fdbce3fde8ccd1300dc7fafdf58
-EBUILD clang-common-20.0.0.9999.ebuild 9042 BLAKE2B 7fc18661a55e2c223cc3c4e6c8477a913a0ed025b013f4407e58682f00f389cc2961c8cd5ee20d13e75b51f1c8a0b79569a0bb35da6a2028703f9fee553ed4c0 SHA512 212b4035d367e465de90d6b89c81388e45023257aec550dfe81c7ca71ea0a8d59b2ece092c8cbc4b5eadf4d29a3fbde6a49e6fdbce3fde8ccd1300dc7fafdf58
+EBUILD clang-common-20.0.0.9999.ebuild 9095 BLAKE2B c824cf0506658344508219b79606f7183a9a99a87fd8932e3085977f8705229aad380305587abbb5ddf5c24abd7addff8472ed335c988afed8c560bda7bad510 SHA512 501f17a8caa08e8470c1a189e63cbfb7b2b8f5cc16c39203f94734a81c5c34bd2a19cf724c0d24f373676790d72fa6c1d92bbab3126fc0e8e89c7d6e87573ecb
EBUILD clang-common-20.0.0_pre20240830.ebuild 9042 BLAKE2B 7fc18661a55e2c223cc3c4e6c8477a913a0ed025b013f4407e58682f00f389cc2961c8cd5ee20d13e75b51f1c8a0b79569a0bb35da6a2028703f9fee553ed4c0 SHA512 212b4035d367e465de90d6b89c81388e45023257aec550dfe81c7ca71ea0a8d59b2ece092c8cbc4b5eadf4d29a3fbde6a49e6fdbce3fde8ccd1300dc7fafdf58
EBUILD clang-common-20.0.0_pre20240910.ebuild 9042 BLAKE2B 7fc18661a55e2c223cc3c4e6c8477a913a0ed025b013f4407e58682f00f389cc2961c8cd5ee20d13e75b51f1c8a0b79569a0bb35da6a2028703f9fee553ed4c0 SHA512 212b4035d367e465de90d6b89c81388e45023257aec550dfe81c7ca71ea0a8d59b2ece092c8cbc4b5eadf4d29a3fbde6a49e6fdbce3fde8ccd1300dc7fafdf58
+EBUILD clang-common-20.0.0_pre20240917.ebuild 9095 BLAKE2B c824cf0506658344508219b79606f7183a9a99a87fd8932e3085977f8705229aad380305587abbb5ddf5c24abd7addff8472ed335c988afed8c560bda7bad510 SHA512 501f17a8caa08e8470c1a189e63cbfb7b2b8f5cc16c39203f94734a81c5c34bd2a19cf724c0d24f373676790d72fa6c1d92bbab3126fc0e8e89c7d6e87573ecb
MISC metadata.xml 1248 BLAKE2B d9c542ec74a08857a87a42927feef909c343b5b672145e471ebc69753a3f93432d2ae93ed2659a67d504e2c5ff4212640e4208b173d96e5a173a1043766b66f8 SHA512 eb6d4be1dfbdf6b70b774d42493f6b3015472d5e4bba9386254f6e4ae92307169fe1ac6f0f613d452a9c21c6d61ed57ab50efb54813146983f4d6809b32ddacb
diff --git a/sys-devel/clang-common/clang-common-20.0.0.9999.ebuild b/sys-devel/clang-common/clang-common-20.0.0.9999.ebuild
index 090a45690818..56db34cffe17 100644
--- a/sys-devel/clang-common/clang-common-20.0.0.9999.ebuild
+++ b/sys-devel/clang-common/clang-common-20.0.0.9999.ebuild
@@ -227,19 +227,20 @@ src_install() {
# define __GENTOO_HAS_FEATURE(x) 0
# endif
#
- # if defined(__STDC_HOSTED__) && __STDC_HOSTED__ == 1
- # define __GENTOO_NOT_FREESTANDING 1
+ # if !defined(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
# else
- # define __GENTOO_NOT_FREESTANDING 0
+ # define _FORTIFY_SOURCE ${fortify_level}
# 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
diff --git a/sys-devel/clang-common/clang-common-20.0.0_pre20240917.ebuild b/sys-devel/clang-common/clang-common-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..56db34cffe17
--- /dev/null
+++ b/sys-devel/clang-common/clang-common-20.0.0_pre20240917.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"
+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(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
+ # else
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ #
+ # undef __GENTOO_HAS_FEATURE
+ #endif
+ EOF
+
+ # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
+ # non-hardened?
+ if use hardened ; then
+ cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ -Xarch_host -D_GLIBCXX_ASSERTIONS
+
+ # Analogue to GLIBCXX_ASSERTIONS
+ # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+ # https://libcxx.llvm.org/Hardening.html#using-hardened-mode
+ -Xarch_host -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
+ EOF
+
+ cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ EOF
+ fi
+
+ # We only install config files for supported ABIs because unprefixed tools
+ # might be used for crosscompilation where e.g. PIE may not be supported.
+ # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug #912685.
+ local abi
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ doclang_cfg "${abi_chost}"
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ # Gentoo Prefix on Darwin
+ -Wl,-search_paths_first
+ -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 a9e2b7bc9314..5bf621fd2ce2 100644
--- a/sys-devel/clang-runtime/Manifest
+++ b/sys-devel/clang-runtime/Manifest
@@ -6,4 +6,5 @@ EBUILD clang-runtime-19.1.0_rc4.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df04886
EBUILD clang-runtime-20.0.0.9999.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-20.0.0_pre20240830.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-20.0.0_pre20240910.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
+EBUILD clang-runtime-20.0.0_pre20240917.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
MISC metadata.xml 661 BLAKE2B 24688c511713ea102b83c71d226d519981b3aee0e05ef7a56d6a80be829efd843194e45cb4fd801f0bb976b6f1976386d6a2b05d2bc907fe2aa42b22b85b7d1f SHA512 2b5ab8783c90795f2e7d1673d876048ed9745f4911fb7a860df56deac13a6dfeba4581a84562eae54eff757c45042ca3fab75c7800313ae61df9ce69780a9294
diff --git a/sys-devel/clang-runtime/clang-runtime-20.0.0_pre20240917.ebuild b/sys-devel/clang-runtime/clang-runtime-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..323c0b62c062
--- /dev/null
+++ b/sys-devel/clang-runtime/clang-runtime-20.0.0_pre20240917.ebuild
@@ -0,0 +1,39 @@
+# 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%%.*}"
+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 c8f66d541c38..f948cba2f6d4 100644
--- a/sys-devel/clang/Manifest
+++ b/sys-devel/clang/Manifest
@@ -15,6 +15,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85
EBUILD clang-15.0.7-r3.ebuild 12523 BLAKE2B 0e3f9d4506a1b98e96ff98ea52f8bb10f8ab4c91db2868f786bb1761a027e73708a10dce904192a9024ef5819ebf66af07ae6dcdc7186d4b2e04e8cc5978fc7a SHA512 7eeb3ab398c79d0931dedffd5c44d4f69b98b8b9717749a5d7373f6fef49fd337579ea2ab1d05e934b8e526d3f5a43a8911abeb32d956bed9c532b32cff0dbe3
@@ -25,4 +26,5 @@ EBUILD clang-19.1.0_rc4.ebuild 11899 BLAKE2B 4ec92be5b4185157408680503931e7bc4c5
EBUILD clang-20.0.0.9999.ebuild 11943 BLAKE2B a186ad2e553c9fe1f76a659a1bb8d015f777ef76f100d0400b18c755ebfa80380cad8426c27c69255531b2a321b1bd62ea7a22301616133442604398c92c136c SHA512 2f2a4f0dd70bbeffc174a1213733dddfaaf34b5ef247fde9bd4248361d3561227a66ff10aa87ff0a627ac472bea36455ddba50387ebd5d3fdd7e50d4fd751995
EBUILD clang-20.0.0_pre20240830.ebuild 11943 BLAKE2B a186ad2e553c9fe1f76a659a1bb8d015f777ef76f100d0400b18c755ebfa80380cad8426c27c69255531b2a321b1bd62ea7a22301616133442604398c92c136c SHA512 2f2a4f0dd70bbeffc174a1213733dddfaaf34b5ef247fde9bd4248361d3561227a66ff10aa87ff0a627ac472bea36455ddba50387ebd5d3fdd7e50d4fd751995
EBUILD clang-20.0.0_pre20240910.ebuild 11943 BLAKE2B a186ad2e553c9fe1f76a659a1bb8d015f777ef76f100d0400b18c755ebfa80380cad8426c27c69255531b2a321b1bd62ea7a22301616133442604398c92c136c SHA512 2f2a4f0dd70bbeffc174a1213733dddfaaf34b5ef247fde9bd4248361d3561227a66ff10aa87ff0a627ac472bea36455ddba50387ebd5d3fdd7e50d4fd751995
+EBUILD clang-20.0.0_pre20240917.ebuild 11943 BLAKE2B a186ad2e553c9fe1f76a659a1bb8d015f777ef76f100d0400b18c755ebfa80380cad8426c27c69255531b2a321b1bd62ea7a22301616133442604398c92c136c SHA512 2f2a4f0dd70bbeffc174a1213733dddfaaf34b5ef247fde9bd4248361d3561227a66ff10aa87ff0a627ac472bea36455ddba50387ebd5d3fdd7e50d4fd751995
MISC metadata.xml 1318 BLAKE2B 704c1a64297b25da1b2e0eec23cbdf4791273da1babf23292160b6163d43438e62fe214df7afa09232893599951918440954c17a9bfa0c6f829a7d706f564192 SHA512 4677ad146739dd41e025a2335eec353a3d35ac8db7482948fee611566d84b41c4e6bdd75bc3d78f8933d4d9818a36bf222e1aa89e52f945501ff918479fea3b6
diff --git a/sys-devel/clang/clang-20.0.0_pre20240917.ebuild b/sys-devel/clang/clang-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..857f7b1ed5a2
--- /dev/null
+++ b/sys-devel/clang/clang-20.0.0_pre20240917.ebuild
@@ -0,0 +1,471 @@
+# 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}"
+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_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
+ 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
+ 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-installapi
+ clang-linker-wrapper
+ clang-nvlink-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
+
+ -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 5fcb41dba960..cfa03a24b24a 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -11,6 +11,7 @@ DIST gcc-11.5.0.tar.xz 82399864 BLAKE2B f4a61faad32aac9e9cb553c1a1a011df0a057f6e
DIST gcc-12-20240209.tar.xz 79824868 BLAKE2B 1ae5a646da470f06648c4766c77475ceb287c5f6647d5102f1aef6590f973233d5e7f83b5e0241488d49dba59dd605c211938379e68a393a2dccb3834103ae4b SHA512 9f9a04f4477f41bb2a5662aedef2af75b039de50c2dc99310e504e6080cb7aae06a1255337ea2e563975cb108ddc6766adbbaf4e3d5d5712801d7ba9a5209dbd
DIST gcc-12-20240829.tar.xz 79907788 BLAKE2B d50f01fc6dc5962696062d0c5e0c12753e59030dc44e7b04f37a9a58cf675320151ada22f9d2796e15c3aa3d8e130afb4a8ab03112f8eeed5e57ab51c66e5cb4 SHA512 58cfef9a0c8bf40ec8ccbaeff1460c2e97fdfb76931e06e37fe067b14d52a6c0554e5b9706b937e1f1328c18a133ac61837d9ac52ec2591cd16353009b07aa6a
DIST gcc-12-20240905.tar.xz 79894592 BLAKE2B 81e2633f138d19d4f96f2e9eb8f908183a9a172d422f1b4381909aadd2e3fb5302f5bb49bcc8b38cc0d32042a6c84141000423a701fabe8f4213c2e144539531 SHA512 f2d8fb19179d330300939c9441fd53f00b4e2595e4b1d85e818d40fd0908ae9867d314d9169597bd10db3655641790129d3c194ceff9a00cde441391d64b0c03
+DIST gcc-12-20240912.tar.xz 79889436 BLAKE2B 1ede51ba36e06cd3daa344c80e8ba1ddb9418080151692f6e687166262b60c41843ddf25b7860d5a5324b916052f7746cfadd99ad54b72fc08dd9564f83d4a0d SHA512 cdcd07cab2d6f41ca56fa2bad3633b0a5b3ae9a8cea769343bfbf2054f21ed28a7a71a8f0396dbe873e4264076a43a52e9289c76b1e1148050b64869bf9735c3
DIST gcc-12.3.0-musl-patches-1.tar.xz 3572 BLAKE2B c7bf65f7c9ea8023ddaac821ee2b778622fa310ac72a72b2f7032494a8f304eac86217f9204622e6c21aaef9952bece0d09bc126facd4f42b602927909815ab5 SHA512 babc279fea2c1fd4c018815f2f5630214fd46015ce9f365c28af242681d51818eaca30ce298eddcab1eed5ac5f2759e2b47b2335afab9d722b4469a6d4fec326
DIST gcc-12.3.0-patches-3.tar.xz 14852 BLAKE2B 7a5f1f43063b15f424099afd72096212fbbbc5151ff01f2de15dfb6e7cf274981c8cfaedba9ef61576c9096fb172fc550a7deb5cd7d9366fd249fd5dd3951f76 SHA512 aa89e4c2ae02f4fb42229ad5167f2eaa3a8fae51118645bf07199fe2124b9c83948590662b053d08002ef709fa870ea88315fd4ccbe4441a74e9cb62edcb82fb
DIST gcc-12.4.0.tar.xz 83377372 BLAKE2B 0d5aa9995bf53fa2dc976a846240cfb8fafd125ad6c54f45dc9d770215eae3e9ea0db82a9a4f79c51b4d5f8461a1d730c17db6841bc31bd96dba11d9ed7544ae SHA512 5bd29402cad2deb5d9388d0236c7146414d77e5b8d5f1c6c941c7a1f47691c3389f08656d5f6e8e2d6717bf2c81f018d326f632fb468f42925b40bd217fc4853
@@ -18,6 +19,7 @@ DIST gcc-13-20240210.tar.xz 84354416 BLAKE2B 5807623d3f7dd751b6dfe164cfd50d57b2f
DIST gcc-13-20240614.tar.xz 84463660 BLAKE2B a1b551ff633c31d6972fed173f248ba5f6696eb1566801e180b78a7c7e20933b1aaae40839b4f1529d61166de55125395d4f9a812511c088e73f975bf1d2167f SHA512 1a543ddfb56e793367a43895a7ce4f97daeca6ffd5234ce50e8a7ae0f8db1071e01bdd653fda40d00eb7a680faead8f1d8d1295f983086a33a4c75e4affa2ea5
DIST gcc-13-20240830.tar.xz 84496796 BLAKE2B af34dc5ec6a38948fce25b60860be2b87a381bb43dd4159fe174d0ea4566d2ca1b1830c3847139336ac34deeaac9d4f80832caf94f25622013f83c3c161e6b65 SHA512 3d8a531145062a22bca483452a08cc5218cb3af9a76828ff706d966c0cd122cf01b61705aa5cceb9364cf0fd0434ad9d32416d079638e1937513ef52d6a3b6dd
DIST gcc-13-20240906.tar.xz 84500124 BLAKE2B 28c54c9df7fef6778f86edd4bc07c214666ad548e6e3ef30bfaf09df7f1dc6f1d4b6c51589746dff1ca2074f2fd63375c30c1c1b0e7e8b70c21e8db78af9de5a SHA512 32552c971aff250080815f3defce554529aafed4fbbd3486bdcf5895458d096260fc5eb7db451be581f888d93958c5fcf35e4ed14fa06fc990b2845e7f4fe9e3
+DIST gcc-13-20240913.tar.xz 84477732 BLAKE2B 72834bd1bb48f2809f639d9bed7f4a18d06fa1a7ddbcf882bd9e04aed4234667c048ede6da1e5f3d860fdc47b3d742bcab7021e8b20d85121ee888f92ba14f05 SHA512 beaa0d93800e20de1d1e69aadb911c8f28371db0cc96d36f6adf56985ed091223b0c2e698d72779677d0e0b6683a1bb6999db0db0d5df5dde2979325978519f6
DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69
DIST gcc-13.2.0-patches-14.tar.xz 46928 BLAKE2B fce23bc5315f35b04a4976550c4b44578944a1b17e40c7553351eeb8a1ef0f3a2538da5a5e1ae6f37b784ff11bbd8a44b8f6eec542be63e34d984dee69e1cd81 SHA512 d7d52bb2915fd89c06b0134bede8db939cadbb1f2dcddf923bee2c3f9f577ff9e5e986b60420d892539edf82867a0d1bd635807814bc618b06a2b37cdaca893a
DIST gcc-13.2.0-patches-16.tar.xz 44792 BLAKE2B 0b6b584d68e69685638695596b780249ca0119ad362747a82d886fd10f77ceb05d02e033e906a090c67f44b1977f40df6a95206d81a32dd15e2f5413c6c92496 SHA512 324d9e63d16c35d55edde20de049162c01b0d487b4548d06c49f0da04a761ec255bc5e020cc2e7f60d12f5d129768afdcf7c86a59126f71f388ab375c34be6de
@@ -28,6 +30,7 @@ DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7
DIST gcc-14-20240817.tar.xz 88024252 BLAKE2B 994b3e263246e344c6898943a17feb63f07b3de02777a77c689e001343119bd451e1ed5c6958f368077f10b4778c65fa492c55d164e2a0b1bbd65b275aae3cd1 SHA512 31de06694efeb2be49b64e9e8314a766d36c3d5f5f2d52d1e0419ba69262b7c344ef0700957eff11007ba5b81bd5e74dea2a2c0286990cb33927bac4a7db9756
DIST gcc-14-20240831.tar.xz 88125404 BLAKE2B 947ce02f545ad93d0ee4afcdc7cf7b64ef1cea2cdcea2120789d82370bb8fd0e7e34daf5d7a85e10318147367ef18059cdd0efa232cb4d409e8b4317ee4df800 SHA512 3d92b29c2a0f3c0e6fe043bf5d67d5928daf045538d4925aa6bc0bcc77a9e8bb3667f9d1b2337c56de35ca19203972a770c5afd077f69381371e7072313744db
DIST gcc-14-20240907.tar.xz 88136648 BLAKE2B 0590ede2cedf9df429ba5c6fe385dbbdd82431160d1c4e779bfdb621b781df6e53bf8865effea62b2438a2e98476ba69a73f3dd81c40c86ad572e17c0fda0971 SHA512 fbcb917982f1abd96f12d63c058f49ae7f90e75294eb80532d4b9da1c601857a2874568274e8210d1538c6d5c3f37e67514d5d55525c2745006875930a1ceb0f
+DIST gcc-14-20240914.tar.xz 88136020 BLAKE2B 7872654740e60b2e7690fa3d8909ae278fdee398f8e982f7c0492ca8d04739ebaaa0b38ca6c3513ef0c5a0eef559fafa2fb168dcd91813dd0f964178f0468291 SHA512 9f63ebf77a1fc18fe71681e1f97d667c077c87342bbf892510796cb6c0988c4cc2d99a5f6cbb46a10d4280012cc519604e1331648e2bba9449b6d5be580a1bf8
DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25
DIST gcc-14.1.0-patches-4.tar.xz 11620 BLAKE2B c819fbdea1f3bf10c8d4214d4c33cf28c1410171d2833b6f8c1225eeefe749ddb815067b3fdb750e5839761aee8d39ffc51ffb492f88e630076818a61b18362b SHA512 0d6e1b04591607dfc8022124b186ce499467c32db7667ee1a640fe2e07706597edc0e4ad5c7ebcb75c8f5fc6e45e9b9ef715402c71ff9ab21fe380007fe5d84f
DIST gcc-14.1.0-patches-5.tar.xz 12504 BLAKE2B 9453bb75c195e43e9b95cee89eee0722dadb8088ce258ae3334ad1023742b41fc0efea45ca4dbd73a20834aa09f72b5fd2d771e1bc58c0cff89a9d2b16ae8dd1 SHA512 b30b5ff1c0234ccfd440ede9e2c13c5fe3d72711ac94996694b3b325ec47f23c6549c41a70f7e08aea16e10fd45d348dcaaef7a7e49a981622d50b21a0971a30
@@ -35,6 +38,7 @@ DIST gcc-14.2.0.tar.xz 92306460 BLAKE2B 87baf2a06dfa75d8fb6cd62c747ef1f57d3b9bbb
DIST gcc-15-20240825.tar.xz 89745112 BLAKE2B 983b2f3fbcc8cea6b145f58d8015bf4f848f102f8b196fb363940c7fd556bf2ca07eaff676f0a38a78c0105d2f804e75b2c85f98d2fa3626704b706c227919c9 SHA512 eb106d150988c3350ad2524519b497a5305ef92c09d1322738d6fa91ed382500eeac0a206e8eacd900f85d5ea39b4510783c77f9340e35a948009a2766ddad90
DIST gcc-15-20240901.tar.xz 89393580 BLAKE2B 5d52cc331aa7dfee416b84112415c60cd03f93855fa46e7c8f55aad22cd39de6e41c77e8870bfe0c67bd38308eb1b99dfe2def0a0e03007ef92fde01923d12c9 SHA512 c6a0885047492f83915c7e13ea7a028c439deaf1390374498be84c55c1d5613f53533a0daa4cd8748b0792f32666f6e472b0e57b8021ba4def23eea91141d4ec
DIST gcc-15-20240908.tar.xz 89408188 BLAKE2B bd8e48c9f4bde4091c1d0196220873e4b312ee7c62c3ad74d29c1110e24055d0806b51ad3e1be28a17b28199cf4169b23892b43b29cf0791d27a6daab827102e SHA512 e249c638a0bc9c114a2a54c9836b71c93964394a497264556a3ac515e48659582876d18ce4b703c9d5dfad2d0afcf8bdf763be55bde4c18ece2c228b3513c276
+DIST gcc-15-20240915.tar.xz 89475916 BLAKE2B 544761cc41adac4a680941c3775348b3c0a9cc28a8e1a2c75c33b7c5583a35cd15d6b2f6abc7c0fe6553d5538a632ac0d074e7d23c19a7572f69101fc6b8dac1 SHA512 7eb8229f7dad11614c8526b139567e0c8fb5d20416b0190a7b4a76a2755475363c0621454c950d7e3afa9b0283ba32ebf9e15f4a616be367368cc5fd34f4733f
DIST gcc-15.0.0-musl-patches-2.tar.xz 3076 BLAKE2B 0073248fe4f7dd827980559017b5aa1fb5c4c46acc9ad5c410dc152fd1e44966d3066bf7152338573cb45b1c36027de5f0c519abd414d97a37bccef07f6a5281 SHA512 295f1a669020bbe2874e9b03afd46b5d083073b276fca3543f3767a2d74f35df81cf0a67abad50c200cf7a3af36ec98ff9977cb7d5c19f334af7d3bb1926a3de
DIST gcc-15.0.0-patches-11.tar.xz 14880 BLAKE2B ff720e0bf6e1ca18582b9f69e1406af4d226a9427df33be38c58cef0989403c001b2d247799e7b3883ce294242725f116a6a6bf84317f93b47b64abc5d86281e SHA512 78619a8cb6174d99954296e5c79c0eaa0ebe9df13560e1e6c8ce158f50f42cb801849995e465e2d200f999ef1c26f80ae580654841420ec77012e6551e801458
DIST gcc-15.0.0-patches-12.tar.xz 12980 BLAKE2B 325743e1d4264e80ce91e866bb3cbb9d0e72e186fee0d29e6dace6c48b975992dcd7081fe2a924519d5c1503dedc14a4b41f584dd7d97924664bcc6f6537a8bc SHA512 e18401c517b05e13c203b147f9ba6991c867a8c0a50a7e1a67ea497243d46cbbac674c3498651946f941423241d36b6bc55571a8131fc3604c92604be288f60d
@@ -50,22 +54,26 @@ EBUILD gcc-12.3.1_p20240209.ebuild 1593 BLAKE2B 30015d249c5d6d8461761c98dc112a93
EBUILD gcc-12.4.0.ebuild 1593 BLAKE2B 30015d249c5d6d8461761c98dc112a93ca4bf69134b01eea558657de4bb48684e53ba2952d7a2d212f6d2cd8f5d20f0cd2767e23df02bf2b0701d04cc3a20cc8 SHA512 cb49fca279c6e471fe31ab560a50fc09ad2c9c817b60ec9f831a6ddc41bc2962867641130793521c33b5671a7a801baf40ff5011b83acff1d77700d569f1f88f
EBUILD gcc-12.4.1_p20240829.ebuild 1602 BLAKE2B 5a41e2e6c313217a39a41e2197eac5da04d9eb357667b83a6acb37b9eb339dd69428f7d30132381ccc669edff0682b0f3f0210eb5a8b0ebd6b106500ec1e956b SHA512 78ac916dadce5972b8bdc118dd384f40494b6d431f01c34d00a5c23c7620865fc8261c41bffdc7320713d3f5099cef1873870418f5744c6051d2e0a38dd90048
EBUILD gcc-12.4.1_p20240905.ebuild 1602 BLAKE2B 5a41e2e6c313217a39a41e2197eac5da04d9eb357667b83a6acb37b9eb339dd69428f7d30132381ccc669edff0682b0f3f0210eb5a8b0ebd6b106500ec1e956b SHA512 78ac916dadce5972b8bdc118dd384f40494b6d431f01c34d00a5c23c7620865fc8261c41bffdc7320713d3f5099cef1873870418f5744c6051d2e0a38dd90048
+EBUILD gcc-12.4.1_p20240912.ebuild 1602 BLAKE2B 5a41e2e6c313217a39a41e2197eac5da04d9eb357667b83a6acb37b9eb339dd69428f7d30132381ccc669edff0682b0f3f0210eb5a8b0ebd6b106500ec1e956b SHA512 78ac916dadce5972b8bdc118dd384f40494b6d431f01c34d00a5c23c7620865fc8261c41bffdc7320713d3f5099cef1873870418f5744c6051d2e0a38dd90048
EBUILD gcc-12.5.9999.ebuild 1570 BLAKE2B 1eacce91b781c3d60f8499b6631ff8cf5cb6a1195df388438523ff0dc990de2fb0cb57196329fcd0c63c3f9ce6e9c150777a23edf1996a8158eac04498790e8a SHA512 7c50b93fcadc4eb6ec6c5988415dcd13c04674e9e16afd8cc31f82a606738cd10845ce82c05d1bdc717ca508fae5f9bda98e307dd27b33d21342e86f32cca9d7
EBUILD gcc-13.2.0.ebuild 1660 BLAKE2B c27c55afd20c530d902a0cb031681200b25b4d87e16c1f8967fd8813f41eab79688780446d214b8f788589bbc9b9dd066708ddd9e91a3a8efd97c54f1251797e SHA512 4bf1fb1aa4d5f7a29ca780953aa039523729915d61f22b19523bdb415c44b00944eee7c9dbba708a342de18f8f693659106274fcfd373459fd0494db725b6479
EBUILD gcc-13.2.1_p20240210.ebuild 1653 BLAKE2B 22e64c2d6634c6ad90add5d3a26138f4f1d213b6091f9246e9719720f92476088ace04058c171b87b4fedec6e0d5b45de6a16a9186322666f00d6c37aa14f8f7 SHA512 a7d42b046563ee812819cec8688ae64abecb13d7a6d7bf325f6830066da6a17f369f72dcea06f8c178c1c5fa470afdbb200c000fc60cf64f22795945f1410da1
EBUILD gcc-13.3.1_p20240614.ebuild 1653 BLAKE2B 741dbfad192df6bdeeb6015ac5435ff00ea94b1c6ffdd6e105b49644ad6d03f818770f5fa9e2a145f82ca338cb880858c6637f95a59d11e6d3c1751f07a43ed6 SHA512 2ee888364e3650c492230c29239870d3b2d2a1cb5798bd2aa40dced35eab853a0a5c4c364789af6a715b28c72349138ba8cbbe10602479e7e2a734f61dd09c70
EBUILD gcc-13.3.1_p20240830.ebuild 1662 BLAKE2B f52bd39c3d63082ce545e94671d373e00e0d5908c2d4db18a1391b7500e63aa465378d31653661dff57a81b95bf529642af64be1e553ee9f47567a33f8926c8d SHA512 eb24e88a5ab69abbbf08bfda223fe6cbbf26f683a4598227e770d13987a17c97bd5fc64d7d3b06c9af542f3a236f8d640f0bac07d4c765096cbc4e88e2e1a304
EBUILD gcc-13.3.1_p20240906.ebuild 1662 BLAKE2B f52bd39c3d63082ce545e94671d373e00e0d5908c2d4db18a1391b7500e63aa465378d31653661dff57a81b95bf529642af64be1e553ee9f47567a33f8926c8d SHA512 eb24e88a5ab69abbbf08bfda223fe6cbbf26f683a4598227e770d13987a17c97bd5fc64d7d3b06c9af542f3a236f8d640f0bac07d4c765096cbc4e88e2e1a304
+EBUILD gcc-13.3.1_p20240913.ebuild 1662 BLAKE2B f52bd39c3d63082ce545e94671d373e00e0d5908c2d4db18a1391b7500e63aa465378d31653661dff57a81b95bf529642af64be1e553ee9f47567a33f8926c8d SHA512 eb24e88a5ab69abbbf08bfda223fe6cbbf26f683a4598227e770d13987a17c97bd5fc64d7d3b06c9af542f3a236f8d640f0bac07d4c765096cbc4e88e2e1a304
EBUILD gcc-13.4.9999.ebuild 1657 BLAKE2B 7e088b6dd4b6235d0826faed2f799730bc0d431607d4dfd00d733314a03c9cdca549ff328d199c1bacffe4cb3e4a0321a7f725454f50353f7f0f20dc3d983ee3 SHA512 02e242b2f3aff1c23f69469b3993a94d329a071f5d6177414f75a3ec6c2e9b5891ed9fa9d3da15ddf31a226b774bf53674a1960a9bd1c74f314db495a0b5d595
EBUILD gcc-14.2.0.ebuild 1417 BLAKE2B f91b880f3dd4b0cc47f94d3afdb8956546dcc5c921c1e7260e1e34316bbbd00f4ccdcb95ed5db7ad985a9b9940c4ebbc40044206c3ffc2548ddddc361175f8d4 SHA512 cabd523c2e89fbaafba546603523ee8224cd1159151d872dc207c234b52019a99fce163b8317e075ea975f47a576c3d14ce59deb62f62c4556f53bdc0d56c5b1
EBUILD gcc-14.2.1_p20240817-r1.ebuild 1418 BLAKE2B 95a5731666e07dd17dfee338106f7e9ad16b7a61ff154865e0e2cab95ed0d0c646ce02503ad2f9af3e88aa71373c2cd52f1fd36a07a3c893c79459064f37fb28 SHA512 87a3d9406136201461f0c9eb46b1ab708cf0e95bc192f72b4c9c8378bf2c1a69e13660dd1c0f085d74b35e5e1c40bd3c5b0a0200c2d65fe7d05a9c101f266de2
EBUILD gcc-14.2.1_p20240817.ebuild 1417 BLAKE2B f91b880f3dd4b0cc47f94d3afdb8956546dcc5c921c1e7260e1e34316bbbd00f4ccdcb95ed5db7ad985a9b9940c4ebbc40044206c3ffc2548ddddc361175f8d4 SHA512 cabd523c2e89fbaafba546603523ee8224cd1159151d872dc207c234b52019a99fce163b8317e075ea975f47a576c3d14ce59deb62f62c4556f53bdc0d56c5b1
EBUILD gcc-14.2.1_p20240831.ebuild 1418 BLAKE2B 95a5731666e07dd17dfee338106f7e9ad16b7a61ff154865e0e2cab95ed0d0c646ce02503ad2f9af3e88aa71373c2cd52f1fd36a07a3c893c79459064f37fb28 SHA512 87a3d9406136201461f0c9eb46b1ab708cf0e95bc192f72b4c9c8378bf2c1a69e13660dd1c0f085d74b35e5e1c40bd3c5b0a0200c2d65fe7d05a9c101f266de2
EBUILD gcc-14.2.1_p20240907.ebuild 1418 BLAKE2B 95a5731666e07dd17dfee338106f7e9ad16b7a61ff154865e0e2cab95ed0d0c646ce02503ad2f9af3e88aa71373c2cd52f1fd36a07a3c893c79459064f37fb28 SHA512 87a3d9406136201461f0c9eb46b1ab708cf0e95bc192f72b4c9c8378bf2c1a69e13660dd1c0f085d74b35e5e1c40bd3c5b0a0200c2d65fe7d05a9c101f266de2
+EBUILD gcc-14.2.1_p20240914.ebuild 1418 BLAKE2B 95a5731666e07dd17dfee338106f7e9ad16b7a61ff154865e0e2cab95ed0d0c646ce02503ad2f9af3e88aa71373c2cd52f1fd36a07a3c893c79459064f37fb28 SHA512 87a3d9406136201461f0c9eb46b1ab708cf0e95bc192f72b4c9c8378bf2c1a69e13660dd1c0f085d74b35e5e1c40bd3c5b0a0200c2d65fe7d05a9c101f266de2
EBUILD gcc-14.3.9999.ebuild 1388 BLAKE2B 0b3457a78989d69dc4b5dbac1fd0df32ca352e83020afc70c98adc623931c7d83427a3dd969bc2f4a3926e48224495c80b6930e7ad609df51af76299e086a926 SHA512 26fd9b78ebeb2daa54b3bd6b723828d93b8b8c877f0040634a9b2d517f554db874413758b1cbf0e321910bced573a8cee95e1d6721a091227bd51be62c8314d7
EBUILD gcc-15.0.0_pre20240825.ebuild 1338 BLAKE2B 3acc273cc50639899f649eb6f93ab9706703824f68da3f3c6c1180dc728a2ca3b1fbc70b79cb9c2e43f3df9a9021ca4852a7bf8fb54ded59f41048c3bddaae1d SHA512 bfb054f8babe18e720147583a840998623ffc55c27758a17fd6cc6684236a9c591d3f646b134dbb982f7182f44cdc8e91e22f763613e2ea0dbcdc41574a85ce1
EBUILD gcc-15.0.0_pre20240901.ebuild 1338 BLAKE2B 330c0e0748674466d9ba2098f019c998ee45ed8ee80d97e0d82ca225c30a070acc58e6676749afc30269c23ee20cda18dd282bb0c03f4b7f18c962d2e148868c SHA512 964e76edef65e18779c8b5f8db3dfe10f3abfac4ac87795f6f5c5542afa5dd05b297052de450c82355fdffef5966fceae5d0246901c71d7fa72a25d2bf1847ea
EBUILD gcc-15.0.0_pre20240908.ebuild 1338 BLAKE2B 330c0e0748674466d9ba2098f019c998ee45ed8ee80d97e0d82ca225c30a070acc58e6676749afc30269c23ee20cda18dd282bb0c03f4b7f18c962d2e148868c SHA512 964e76edef65e18779c8b5f8db3dfe10f3abfac4ac87795f6f5c5542afa5dd05b297052de450c82355fdffef5966fceae5d0246901c71d7fa72a25d2bf1847ea
+EBUILD gcc-15.0.0_pre20240915.ebuild 1338 BLAKE2B 330c0e0748674466d9ba2098f019c998ee45ed8ee80d97e0d82ca225c30a070acc58e6676749afc30269c23ee20cda18dd282bb0c03f4b7f18c962d2e148868c SHA512 964e76edef65e18779c8b5f8db3dfe10f3abfac4ac87795f6f5c5542afa5dd05b297052de450c82355fdffef5966fceae5d0246901c71d7fa72a25d2bf1847ea
EBUILD gcc-15.0.9999.ebuild 1310 BLAKE2B cda411b09e073198d9f852e65ad41498dbfd941a08c2209052cb44742c8cde989d0f6278cf5076d4d1d11dbfe6cc05df39a8ebed30a25d63b267e635b3353be7 SHA512 f76d2d4cf56be53a36247b3bf9b354518de6b5f2ac0213b2500c451eb948207befe61a09b22d0a813f7c9b73a4e58a4d4de30fd5665c9e819fc68fb20c69e909
EBUILD gcc-8.5.0-r1.ebuild 527 BLAKE2B c9564e2dc1771644f86cc8da1e8798b0afc68d02dd05619c6c3e20b118b9c47cc2f55c8becdc62d0aa8feef8c54078fe8572eea94252f4ef1f3ce3133b34b4d1 SHA512 f7336ebfbfe62b03d07606e81694d1b41b9b325f6d6e9c6aaf285583551247cbe120d675b6847d0a59e4ea07b681edd9a10652dc7e9e1985b504ed0791b76779
EBUILD gcc-9.5.0.ebuild 1235 BLAKE2B 61577267cb924209bc3cb73ab0f7aa0bcfd7ae6f0244530c5709b02580b2098a9eaaad72a150b2eb3962f26019bfa7e529ae50a66deafdc8b6d750383f99740e SHA512 874529cb3e9d79466094e82a49ba18b78c4b2718f55c6dbcb573e5ddcd8729cd83ed11507b39751c41d6c60ef0db04915fd031de646966c2da575707143d85c1
diff --git a/sys-devel/gcc/gcc-12.4.1_p20240912.ebuild b/sys-devel/gcc/gcc-12.4.1_p20240912.ebuild
new file mode 100644
index 000000000000..220fd184cf7a
--- /dev/null
+++ b/sys-devel/gcc/gcc-12.4.1_p20240912.ebuild
@@ -0,0 +1,64 @@
+# 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="12.3.0"
+PATCH_VER="3"
+MUSL_VER="1"
+MUSL_GCC_VER="12.3.0"
+PYTHON_COMPAT=( python3_{10..12} )
+
+if [[ ${PV} == *.9999 ]] ; then
+ MY_PV_2=$(ver_cut 2)
+ MY_PV_3=1
+ if [[ ${MY_PV_2} == 0 ]] ; then
+ MY_PV_2=0
+ MY_PV_3=0
+ else
+ MY_PV_2=$((${MY_PV_2} - 1))
+ fi
+
+ # e.g. 12.2.9999 -> 12.1.1
+ TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
+elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="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=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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}"
+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/gcc/gcc-13.3.1_p20240913.ebuild b/sys-devel/gcc/gcc-13.3.1_p20240913.ebuild
new file mode 100644
index 000000000000..740880e94563
--- /dev/null
+++ b/sys-devel/gcc/gcc-13.3.1_p20240913.ebuild
@@ -0,0 +1,65 @@
+# 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="13.2.0"
+MUSL_GCC_VER="13.2.0"
+PATCH_VER="18"
+MUSL_VER="2"
+PYTHON_COMPAT=( python3_{10..12} )
+
+if [[ ${PV} == *.9999 ]] ; then
+ MY_PV_2=$(ver_cut 2)
+ MY_PV_3=1
+ if [[ ${MY_PV_2} == 0 ]] ; then
+ MY_PV_2=0
+ MY_PV_3=0
+ else
+ MY_PV_2=$((${MY_PV_2} - 1))
+ fi
+
+ # e.g. 12.2.9999 -> 12.1.1
+ TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
+elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="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=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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}"
+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 "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-14.2.1_p20240914.ebuild b/sys-devel/gcc/gcc-14.2.1_p20240914.ebuild
new file mode 100644
index 000000000000..a20857ef74ba
--- /dev/null
+++ b/sys-devel/gcc/gcc-14.2.1_p20240914.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="14.1.0"
+PATCH_VER="5"
+MUSL_VER="1"
+MUSL_GCC_VER="14.1.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=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # m68k doesnt build (ICE, bug 932733)
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~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}"
+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 "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-15.0.0_pre20240915.ebuild b/sys-devel/gcc/gcc-15.0.0_pre20240915.ebuild
new file mode 100644
index 000000000000..251b75fc96ae
--- /dev/null
+++ b/sys-devel/gcc/gcc-15.0.0_pre20240915.ebuild
@@ -0,0 +1,52 @@
+# 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="12"
+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 ~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}"
+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 89ace66e9066..27f920fe575e 100644
--- a/sys-devel/lld/Manifest
+++ b/sys-devel/lld/Manifest
@@ -9,6 +9,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85
EBUILD lld-15.0.7.ebuild 2269 BLAKE2B 322d5608e3acfb87bfb720646404ed405a3113c4faf1059428663a50d5566d7842fcff57ccf3aeb5e97b1a9acd4efd862db2368f130e088944ef4f0faf3c90f8 SHA512 e50d1d99fe18b6aba57c06eb6853f3212be1f7b7f2f3c70dcd226a69a4defc753eafcce77eb74f30eaa31b010fa094738718c1cdb23e584ef6e33eb72e536719
@@ -19,4 +20,5 @@ EBUILD lld-19.1.0_rc4.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e
EBUILD lld-20.0.0.9999.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
EBUILD lld-20.0.0_pre20240830.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
EBUILD lld-20.0.0_pre20240910.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
+EBUILD lld-20.0.0_pre20240917.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685
diff --git a/sys-devel/lld/lld-20.0.0_pre20240917.ebuild b/sys-devel/lld/lld-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..79558afa1abe
--- /dev/null
+++ b/sys-devel/lld/lld-20.0.0_pre20240917.ebuild
@@ -0,0 +1,93 @@
+# 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}"
+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 66151c640f38..d2cc2408d758 100644
--- a/sys-devel/llvm-common/Manifest
+++ b/sys-devel/llvm-common/Manifest
@@ -8,6 +8,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85
EBUILD llvm-common-15.0.7.ebuild 1014 BLAKE2B da3b7ec6cd3c1e57758312fb9ea25e693305e1ef72b350eea85fbde5a1e636269d84bd491b6f528aee8a9cb8229f6304b371f99e6ac416c661c6519706b83b61 SHA512 68b9d672372fe71e39f2b8f9d80eb1dcb5138b8b9b961f56a4eeb81b3fc4054448a51a46b3a62547ebb6262425512f39bc146e5f2c3703de10ab520f1594e7a4
@@ -18,4 +19,5 @@ EBUILD llvm-common-19.1.0_rc4.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f5
EBUILD llvm-common-20.0.0.9999.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-20.0.0_pre20240830.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-20.0.0_pre20240910.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
+EBUILD llvm-common-20.0.0_pre20240917.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685
diff --git a/sys-devel/llvm-common/llvm-common-20.0.0_pre20240917.ebuild b/sys-devel/llvm-common/llvm-common-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..2d8f35a84179
--- /dev/null
+++ b/sys-devel/llvm-common/llvm-common-20.0.0_pre20240917.ebuild
@@ -0,0 +1,53 @@
+# 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"
+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 7e2c014f7b2e..0e25fdf2a05f 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -21,6 +21,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85
EBUILD llvm-15.0.7-r3.ebuild 12592 BLAKE2B 81cd473990810203c4e8a47ceb0189ed399c869b85fab3181724dbd1429063cdaad1f6b6cb1ab5b392f531b0b4907cc61f266558b873b236f9a3ff439045aa37 SHA512 2321f9e6da93af22d5f074175a6a92b7dcd271e2b9b92128d268dd777a9c3bdd876010740153734e2593b90d26a58d4f784b2256a6b1e18160d13b3c10441fb3
@@ -36,4 +37,5 @@ EBUILD llvm-19.1.0_rc4.ebuild 13041 BLAKE2B 914b33f85966c0b7ce92bc3ada3219ab7f67
EBUILD llvm-20.0.0.9999.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
EBUILD llvm-20.0.0_pre20240830.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
EBUILD llvm-20.0.0_pre20240910.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
+EBUILD llvm-20.0.0_pre20240917.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
MISC metadata.xml 2835 BLAKE2B 07816d714509d62c0e0a443cc4af1f1f049497de75431f80a981f662b4f2281a16655be3e733a26099d0d814d5ce26d80cee13aa7a4e8d079168846a8e02670f SHA512 292ccb0a05a0239b5b00c6a84be11b4b385900d6467a6a139af03588c61aff9ac0e4bbcd23e89b2a7d7947f7d8cf8ba9323f2539a6c563a338b73f5ac6ffd00f
diff --git a/sys-devel/llvm/llvm-20.0.0_pre20240917.ebuild b/sys-devel/llvm/llvm-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..d01575f39051
--- /dev/null
+++ b/sys-devel/llvm/llvm-20.0.0_pre20240917.ebuild
@@ -0,0 +1,554 @@
+# 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}"
+IUSE="
+ +binutils-plugin +debug debuginfod doc exegesis libedit +libffi
+ 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}] )
+ 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
+
+ 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|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
+ ;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || 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
+
+ # 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-cgdata
+ llvm-config
+ llvm-cov
+ llvm-ctxprof-util
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ llvm-debuginfod-find
+ llvm-diff
+ llvm-dis
+ llvm-dlltool
+ llvm-dwarfdump
+ llvm-dwarfutil
+ llvm-dwp
+ llvm-exegesis
+ llvm-extract
+ llvm-gsymutil
+ llvm-ifs
+ llvm-install-name-tool
+ llvm-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
+ 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
+ )
+ 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_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+=(
+ # 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 5adb023ddcd2..cfdeb9bba320 100644
--- a/sys-devel/mold/Manifest
+++ b/sys-devel/mold/Manifest
@@ -1,9 +1,11 @@
AUX mold-2.32.1-libdl.patch 632 BLAKE2B db9a5911f5587c33d27a38347a027c3d93cbca41a0328e6a290760c32a4738db4a7241eb3b041d81c1ebb6e20bd9b752573d4e13e1812925adf07dcda2fe5d4f SHA512 6fd38910d1d7cd1126579b15c7442ceccc8c06ba1c439d647334316b035e2dc7b073239b27d29ae94b7dd83b2b8ba7c6e19377d905530fa9118fcb463985b2d3
+AUX mold-2.33.0-icf.patch 1618 BLAKE2B 3c1953a854874218b532fa6db91b20a0625bb71d4ed154a0b7f86a19691d99257db6bd28ab174452830749b66ad0dcdddcc8f7292ce4de2fa9553d67ea21ec88 SHA512 86d74a1e00789552606493d469e7fae7ca8b2022bfb3542aecf8478a7ebf49dcf123b57e8e536dfe4e3004a2b42ece7ee3a7b73170db8585fb0012112313d407
DIST mold-2.1.0.tar.gz 9278811 BLAKE2B b31e13f92177553adf5069cf35c8c75c7bc28f0af4d1726cdc0c6abc1c9d3baaa5be512c3a8fb9bc3c3110096a79e1c6751c701171769595a2234fc1fa8c441a SHA512 f1c98d349b35b4042109d71f7db6eb8d7d089dc3241735bbd7b5402d513dcc85ca17904828779e5fc8234650fa9fb97f47c3a2f3e89cc2fb3cb9e9110439e5a2
DIST mold-2.32.1.tar.gz 10010384 BLAKE2B b020d57df25d91fac9b6ef994e9f7f73b6736d18a73be3caebe03a851a1db1986abe395b5481a1e30e01f38362c3705cb5903251b7201c0003c745dee37a5148 SHA512 d38b12faf81ba8015fc0cdb52944ac94366877c3033871a92610087e036d75b3d072baf9bbf107a9029495521e067fb36c0809b5138f90976492547b39c33085
DIST mold-2.33.0.tar.gz 10061838 BLAKE2B 65c460035f3bdbc101120a27e30b70982d549a4222cf4beb1b7228c0c961afd3eb8928cacde5be20734a80a80765eb60e6d961bd5cb001ecaef1aba1152730b9 SHA512 67c41ae33f8a229f32aabf32ffb8bcb261eff047dedd189b8751e5de43ef12a2dbd05f45632c8baeac2ceff99c40256256d7d5c790cc12e4fecf1dc3cfebeb11
EBUILD mold-2.1.0.ebuild 2169 BLAKE2B b91dec8fb9890052e06cf40124f7647833a6ea786d95d44863848bfff17c0ba335f28aaac08d6971a619dbb845b9091d1134bae47f70bd811d2fde0f9ca11066 SHA512 5d27926e5003e6bd24ee3baf8258ab043aa660b7a36918500283bbec9d991ad8ea6971add52579ba6ee10a7eeeb97a6dff3a7e065c7292ced42d2f0043e33d1e
EBUILD mold-2.32.1.ebuild 2448 BLAKE2B 88d6d168b5de620f787abf540531759dcba0be4830a71ee43bf23beb011d465b2a98f036365583dad411772a6ba1332d8d7dae3632592b7d8cd22424934b2991 SHA512 a5485b242d40e43ffcd2dfff62df1f54ca31b154acb98df4b90f23135cc61ef23d9e0950da47983d3f2362ca7d4435d3108f2c8f54814ce4730bbdc008c64dd3
+EBUILD mold-2.33.0-r1.ebuild 2520 BLAKE2B eaffd7dd7ebe40218d9749a2a0032d7d220cab021b6c45720971f7f5561d6d11fa8eb4234b0503c57e5b2fd3d6db178d780359f353dc6f488a4359b1e8c42e17 SHA512 534ccf4969ccadc73691f04e1c466f1048ce4c076dd9166f40b4e138ee68b0cfc766f488e35109ab35d39cf0e054fdfe5087ceb15cbcc5de0eaeb52629001dfb
EBUILD mold-2.33.0.ebuild 2409 BLAKE2B 770982e41dec11dd488e13a581c75744239897bacc5f8742491f19d4fefe6718971e54ef274ce61e6cff9f83df0b97320a15aac26a6d970c11f1d6953ecce4bf SHA512 7f8968d75136cf5c763e5127a5f26cd60ab4bce97dc5048292393053788de2b17858738b67c43fffe9920f28b9694a7f54fc17da95bc6efd30c477b5ae6260f6
-EBUILD mold-9999.ebuild 2380 BLAKE2B 8a84a1645f1b912deb00f67f65191c7dbb5d467889e71460c0ec5a693800c1ecefbc5a1e41b1e1f3fb7afe08165be06603e59fd350d524bb7a42b21eba062e7d SHA512 db3d64d4c4366b61e5e1400ae783443538bce18b74b832e0ccbe5410a9314c1cb78245d49eb43264f367dcfa9f9258d666fce9a732d9b47ad587ad3d0fd5c21a
+EBUILD mold-9999.ebuild 2453 BLAKE2B 4764d3061876d7c287d7114c3b259255b1250f82fb49d249b28af22f9d25acd0b4328d800464bb262893519bc0e577f36ab4abedf2c7710d249fa99ab05655ae SHA512 9b080e79c9fa25000747f3f12f3b147be137537335986919170f4e2eee1e66e5d4a2e99a8a198aba9e2b714f67c51c1acbf5fd929b68e5954fa018b80c2e8e2d
MISC metadata.xml 424 BLAKE2B a1c0cbdcb86c323fa1e6143c9665ec548f7713e74002a25b2fc26c51b60dae00922d3448a5aaecd5027a8cb026a681386ca7dea90657a3e10b25fb194dafc0d3 SHA512 1adc934e78ca0210743a1aa7479ebc4b5ea0b66a348c4408423460f02b404b885d3a8eca6e89ea8ac53ac9c76e85116965f1eef79e3f3e1f0451c8cf5ce0dfd6
diff --git a/sys-devel/mold/files/mold-2.33.0-icf.patch b/sys-devel/mold/files/mold-2.33.0-icf.patch
new file mode 100644
index 000000000000..e5b90fbfd9e3
--- /dev/null
+++ b/sys-devel/mold/files/mold-2.33.0-icf.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/938009
+https://github.com/rui314/mold/issues/1326
+https://github.com/rui314/mold/commit/5a9919b43344b4fb92ea701f0b32a7e20857b9ca
+
+From 5a9919b43344b4fb92ea701f0b32a7e20857b9ca Mon Sep 17 00:00:00 2001
+From: Rui Ueyama <ruiu@cs.stanford.edu>
+Date: Fri, 9 Aug 2024 12:08:03 +0900
+Subject: [PATCH] Fix a crash bug
+
+Fixes https://github.com/rui314/mold/issues/1326
+--- a/elf/output-chunks.cc
++++ b/elf/output-chunks.cc
+@@ -1730,21 +1730,18 @@ ElfSym<E> to_output_esym(Context<E> &ctx, Symbol<E> &sym, u32 st_name,
+ esym.st_type = STT_FUNC;
+ esym.st_visibility = sym.visibility;
+ esym.st_value = sym.get_plt_addr(ctx);
+- } else if (!isec->output_section) {
++ } else if ((isec->shdr().sh_flags & SHF_MERGE) &&
++ !(isec->shdr().sh_flags & SHF_ALLOC)) {
+ // Symbol in a mergeable non-SHF_ALLOC section, such as .debug_str
+- assert(!(isec->shdr().sh_flags & SHF_ALLOC));
+- assert(isec->shdr().sh_flags & SHF_MERGE);
+- assert(!sym.file->is_dso);
+-
+ ObjectFile<E> *file = (ObjectFile<E> *)sym.file;
+- MergeableSection<E> *m =
+- file->mergeable_sections[file->get_shndx(sym.esym())].get();
++ MergeableSection<E> &m =
++ *file->mergeable_sections[file->get_shndx(sym.esym())];
+
+ SectionFragment<E> *frag;
+ i64 frag_addend;
+- std::tie(frag, frag_addend) = m->get_fragment(sym.esym().st_value);
++ std::tie(frag, frag_addend) = m.get_fragment(sym.esym().st_value);
+
+- shndx = m->parent.shndx;
++ shndx = m.parent.shndx;
+ esym.st_visibility = sym.visibility;
+ esym.st_value = frag->get_addr(ctx) + frag_addend;
+ } else {
+
diff --git a/sys-devel/mold/mold-2.33.0-r1.ebuild b/sys-devel/mold/mold-2.33.0-r1.ebuild
new file mode 100644
index 000000000000..d9e220971d81
--- /dev/null
+++ b/sys-devel/mold/mold-2.33.0-r1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic 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 ~ppc ~riscv ~sparc ~x86"
+fi
+
+# mold (MIT)
+# - xxhash (BSD-2)
+# - siphash ( MIT CC0-1.0 )
+LICENSE="MIT BSD-2 CC0-1.0"
+SLOT="0"
+IUSE="debug"
+
+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}"/${P}-icf.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() {
+ use debug || append-cppflags "-DNDEBUG"
+
+ 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 d13290655de3..53b3beaf330c 100644
--- a/sys-devel/mold/mold-9999.ebuild
+++ b/sys-devel/mold/mold-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit cmake toolchain-funcs
+inherit cmake flag-o-matic toolchain-funcs
DESCRIPTION="A Modern Linker"
HOMEPAGE="https://github.com/rui314/mold"
@@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]] ; then
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"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~riscv ~sparc ~x86"
fi
# mold (MIT)
@@ -20,6 +20,7 @@ fi
# - siphash ( MIT CC0-1.0 )
LICENSE="MIT BSD-2 CC0-1.0"
SLOT="0"
+IUSE="debug"
RDEPEND="
app-arch/zstd:=
@@ -65,6 +66,8 @@ src_prepare() {
}
src_configure() {
+ use debug || append-cppflags "-DNDEBUG"
+
local mycmakeargs=(
-DMOLD_ENABLE_QEMU_TESTS=OFF
-DMOLD_LTO=OFF # Should be up to the user to decide this with CXXFLAGS.
diff --git a/sys-devel/reflex/Manifest b/sys-devel/reflex/Manifest
index ffa78c77625c..3de6626e09a2 100644
--- a/sys-devel/reflex/Manifest
+++ b/sys-devel/reflex/Manifest
@@ -1,4 +1,7 @@
DIST reflex-20230523.tgz 480999 BLAKE2B a7306367bdf5bfb542a44f29c382a5d889a176059d95539916ab3132de06401edfd0c6a476ec66f433d56398039524d79c6879e1f24b4e813ebbba98ea434ed3 SHA512 9704b6dc3327bc017175bef21f34f53ff6614a76692deacb4af99c29bd4330e5fb7f71af6497d233acceab148bc8a7911d41d3ca224110812e5883c90cc801f2
DIST reflex-20230523.tgz.asc 729 BLAKE2B 0249d1bc4f6d6395be0f51f90e1f9834bc63cd7e4b5565e71ff0502746f45ea04b611c8db70d62513dfe95d492512cf1935f4e70d582c960f38d11e06853f54f SHA512 48e2f84c8932a038366159ea6a26eac73510bb69b6bc3c5027195682ade4ef3a33ade082b41e4d08af0c23c6692abc8ee46b261796d72709aa9568070c16c20b
+DIST reflex-20240906.tgz 483570 BLAKE2B bb3c853b94eb2027473dcc409518a27f5d1fa650c41a04a607679bedf7ba3d446f5b038a20e47c023583bac00c65c854414dbafe4cbf1bf996753d9bd8cb3bf0 SHA512 bb676bc2c92657ef0488be106a651f89fc0db4b2d17f091f697e76a3686434f5d346049c8a573cec0cd29356d4fd458d178aafeee5cab6f124b35218343f0ec5
+DIST reflex-20240906.tgz.asc 729 BLAKE2B 3a48b951bfa8db8a9fe4626e6ea4f1093c1fb73fcecd1118f7d75bc78bfe9e1297ba6c9d1948a5ea3e2cbcf8c72083338833f63499b9fd8ec0d4913f76881f4d SHA512 b99ac1a539596a2195e4bc98a079f270d8cc2f44d5e990aea8368fb703047ccfb481ca5efaf6739b7e921a25f11f9bc9c3bbf864c9b62a2c88825a4fef2f0cf0
EBUILD reflex-20230523.ebuild 695 BLAKE2B e43d9ae4ce54c77a6ba24d79399f054f094a138696a39e74463f904225b9a8268f1f82ce9ebe415f0dfbe4b46b2d4cdc04a9c98da8eae0118c55e88dcf6e00d6 SHA512 4de8df1b58976acb3ca809a9fba4ce7a0afb1cb870cd8ea94101dcb23693afc4340db44d0ba11c2688e768cb998972798ef4020cceb86423342018118bb3ddba
+EBUILD reflex-20240906.ebuild 729 BLAKE2B 32eec0f79dc6fe6baa607317b6efcc393df54b6c76296d04c204e1a607c14f98c35e70d96adb02126409f14183a641ac7c62f36374d916149af2aaaab159c315 SHA512 a0165762914070e94f3fd7d0d27b1b34ea478cf1dcf2cf28daf3080ffec0acd556869485cbdc259298526187bb1a10ad91476d0f0ea82fdea9f6ae359a75e89e
MISC metadata.xml 405 BLAKE2B 593dd39b5718afeb9441efadf2bf2ecf533ce076e21d7271fe6dd4a0f0c93544cf6b8bf1bd0e2b67b76213b5a0aa2687d95effd268976d378c701e49ae9404ab SHA512 a9345e50a04acc81a7f0a1213c8986d1bd068b6aceb0170a6a1bc8772285ba6794799470739a8c9f4ee6b2dfb7fdb440ceb1f0c639f3d0775a77db500b55ef2b
diff --git a/sys-devel/reflex/reflex-20240906.ebuild b/sys-devel/reflex/reflex-20240906.ebuild
new file mode 100644
index 000000000000..36f8378e686e
--- /dev/null
+++ b/sys-devel/reflex/reflex-20240906.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit verify-sig
+
+DESCRIPTION="This is a variant of the flex fast lexical scanner"
+HOMEPAGE="https://invisible-island.net/reflex/"
+SRC_URI="https://invisible-island.net/archives/${PN}/${P}.tgz"
+SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.asc )"
+
+LICENSE="FLEX"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ app-alternatives/yacc
+ verify-sig? ( sec-keys/openpgp-keys-thomasdickey )
+"
+
+src_configure() {
+ econf --with-manpage-format=formatted
+}