summaryrefslogtreecommitdiff
path: root/sys-devel
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-01 02:06:43 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-01 02:06:43 +0000
commitc635a4b7ddb6105bfc6fef130b188a087726677b (patch)
tree6707959596af4883f9621a0cdf56d35c06dbc63e /sys-devel
parent080d89feff80cae2fc974ff2f24d463141c20635 (diff)
gentoo auto-resync : 01:12:2024 - 02:06:42
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/Manifest.gzbin7873 -> 7874 bytes
-rw-r--r--sys-devel/autogen/Manifest2
-rw-r--r--sys-devel/autogen/autogen-5.18.16-r3.ebuild83
-rw-r--r--sys-devel/autogen/autogen-5.18.16-r4.ebuild82
-rw-r--r--sys-devel/clang-common/Manifest2
-rw-r--r--sys-devel/clang-common/clang-common-20.0.0_pre20241130.ebuild310
-rw-r--r--sys-devel/clang-runtime/Manifest1
-rw-r--r--sys-devel/clang-runtime/clang-runtime-20.0.0_pre20241130.ebuild39
-rw-r--r--sys-devel/clang/Manifest2
-rw-r--r--sys-devel/clang/clang-20.0.0_pre20241130.ebuild464
-rw-r--r--sys-devel/crossdev/Manifest6
-rw-r--r--sys-devel/crossdev/crossdev-20241130.2.ebuild40
-rw-r--r--sys-devel/crossdev/crossdev-20241130.3.ebuild40
-rw-r--r--sys-devel/crossdev/crossdev-20241130.ebuild40
-rw-r--r--sys-devel/gcc/Manifest3
-rw-r--r--sys-devel/gcc/gcc-14.2.1_p20241130.ebuild55
-rw-r--r--sys-devel/lld/Manifest2
-rw-r--r--sys-devel/lld/lld-20.0.0_pre20241130.ebuild90
-rw-r--r--sys-devel/llvm-common/Manifest2
-rw-r--r--sys-devel/llvm-common/llvm-common-20.0.0_pre20241130.ebuild53
-rw-r--r--sys-devel/llvm/Manifest2
-rw-r--r--sys-devel/llvm/llvm-20.0.0_pre20241130.ebuild554
-rw-r--r--sys-devel/nvptx-tools/Manifest6
-rw-r--r--sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild52
-rw-r--r--sys-devel/nvptx-tools/nvptx-tools-0_pre20240809.ebuild2
-rw-r--r--sys-devel/nvptx-tools/nvptx-tools-9999.ebuild6
-rw-r--r--sys-devel/reflex/Manifest2
-rw-r--r--sys-devel/reflex/reflex-20240906.ebuild2
28 files changed, 1713 insertions, 229 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz
index ede437225c53..ae04ebc82138 100644
--- a/sys-devel/Manifest.gz
+++ b/sys-devel/Manifest.gz
Binary files differ
diff --git a/sys-devel/autogen/Manifest b/sys-devel/autogen/Manifest
index da0f76a6c13e..62be03786279 100644
--- a/sys-devel/autogen/Manifest
+++ b/sys-devel/autogen/Manifest
@@ -9,6 +9,4 @@ AUX autogen-5.18.16-rpath.patch 2990 BLAKE2B 8374f788feee898f35f6baae40d0a42a042
DIST autogen-5.18.16-gnulib-3b57ddee0acffd23cc51bc8910a15cf879f90619-lib-verify.h 11231 BLAKE2B 4f38f6ae84cf5cc4ba47d8a7da3b38b06f58e30ac8b70f2b10936cbb7a775179b67f22ca8e636588515c4ace7410f98835218e3222d4a793378cdafc4aa84d0f SHA512 b8ff80fd764a3f21040b0054e71a443e3d9ec18dd631843f2de999aa54776964b36366b35fd158dbbe5f2ece146fab12c6ff5008e18c52188b718c89972f867b
DIST autogen-5.18.16.tar.xz 1046276 BLAKE2B 23f9e0948f24ada715fb2bcbbfecba768cf51d169ea3ff4724a97b18f598d2d7fb2ffa7e23919ec8dcc0e352f9d3280f3740dab279a0af1412919cf10c6cb0bf SHA512 5f12c982dbe27873f5649a96049bf019ff183c90cc0c8a9196556b0ca02e72940cd422f6d6601f68cc7d8763b1124f2765c3b1a6335fc92ba07f84b03d2a53a1
EBUILD autogen-5.18.16-r101.ebuild 2433 BLAKE2B 4a7566f7923de6d4d18fd207c0a12ea3fbd89b5c46b5c3c3384281e8ca1268b597c4299cb5080e2c699a0a687b20c2e21d2cbd7b6547f1461f82d0d8ac2e05ac SHA512 8a0c8f5b0273bbfd4d6ffdc1701f3d31bf86127f273ba908807d6a3f2148c95b5cc7070a5931d1caafa39b6a935c1eab876180c9319c2837d3d2d29c07254899
-EBUILD autogen-5.18.16-r3.ebuild 2321 BLAKE2B 9c8bf2072d6c76e261d1f83eb361f118817328253c0e2df2d327c313c3f86265520534869c25494301d7fdb694575d1b4957222c5bce76fc4641d1e429a2b745 SHA512 81b7c723d1e37a37c98822dacb3a597f134c1d87128edd40d5effe1764538cfe63c63f17e347d212c28bfdd992f8c82582386087a24aedc2416c277c9e85b999
-EBUILD autogen-5.18.16-r4.ebuild 2308 BLAKE2B d71e9838a0becaf92ccb1fa53fd8a926d96dc1a2c5f65532de326685265aff32249e92ecffa44bb8b7c5912826f6b0a09f24c281529d0ad4c29b005c05febc72 SHA512 372a512b35105b107cfa009f64c0147797a96104592521fad824f255b0d62be41a27c2a96b3d36a7821498981e3f631c52367d1b95e1e49e8283bd4156aacfc5
MISC metadata.xml 465 BLAKE2B d749ac3e74b39a006006e3f8d09ca2e8dd392f05385ffaf4d4d4cc95af4571c48e6ff6383e5f582ed6158d3536c9d9447c8f9587a8dc8ad9bce3ea3d5f8b2b5a SHA512 da4398891bf5ddd30545e5ca15b1591da5126d0ae22d00a5d5851864351c43465e6eac9010a9e35a029eb3009727fcd3264cb4fa87fd1f6545639f90b9cf2a47
diff --git a/sys-devel/autogen/autogen-5.18.16-r3.ebuild b/sys-devel/autogen/autogen-5.18.16-r3.ebuild
deleted file mode 100644
index ecb7672f0777..000000000000
--- a/sys-devel/autogen/autogen-5.18.16-r3.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic autotools toolchain-funcs
-
-DESCRIPTION="Program and text file generation"
-HOMEPAGE="https://www.gnu.org/software/autogen/"
-SRC_URI="
- mirror://gnu/${PN}/rel${PV}/${P}.tar.xz
- https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=lib/verify.h;h=3b57ddee0acffd23cc51bc8910a15cf879f90619;hb=537a5511ab0b1326e69b32f87593a50aedb8a589 -> ${P}-gnulib-3b57ddee0acffd23cc51bc8910a15cf879f90619-lib-verify.h
-"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="libopts static-libs"
-
-RDEPEND="
- >=dev-scheme/guile-2.0:=
- dev-libs/libxml2
-"
-DEPEND="${RDEPEND}"
-# TODO: investigate & drop this!
-BDEPEND="sys-apps/which"
-
-# We don't pass the flag explicitly, bug #796776.
-# Let's fix it upstream after next autogen release if it happens.
-QA_CONFIGURE_OPTIONS+=" --enable-snprintfv-convenience"
-
-QA_CONFIG_IMPL_DECL_SKIP+=(
- # libgen.h is legacy and linux doesn't include -lgen nor nonstandard
- # functions. bug #924961
- pathfind
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.18.16-no-werror.patch
- "${FILESDIR}"/${PN}-5.18.16-rpath.patch
- "${FILESDIR}"/${PN}-5.18.16-respect-TMPDIR.patch
- "${FILESDIR}"/${PN}-5.18.16-make-4.3.patch
- "${FILESDIR}"/${PN}-5.18.16-guile-3.patch
- "${FILESDIR}"/${PN}-5.18.16-configure-c99.patch
- "${FILESDIR}"/${PN}-5.18.16-FORTIFY_SOURCE.patch
-)
-
-src_prepare() {
- default
-
- # missing tarball file
- cp "${DISTDIR}"/${P}-gnulib-3b57ddee0acffd23cc51bc8910a15cf879f90619-lib-verify.h autoopts/verify.h || die
-
- # May be able to drop this on next release (>5.18.16)
- eautoreconf
-}
-
-src_configure() {
- # suppress possibly incorrect -R flag
- export ag_cv_test_ldflags=
-
- # autogen requires run-time sanity of regex and string functions.
- # Use defaults of linux-glibc until we need somethig more advanced.
- if tc-is-cross-compiler ; then
- export ag_cv_run_strcspn=no
- export libopts_cv_with_libregex=yes
- fi
-
- # bug 920174
- use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE
-
- econf $(use_enable static-libs static)
-}
-
-src_install() {
- default
-
- find "${ED}" -name '*.la' -delete || die
-
- if ! use libopts ; then
- rm "${ED}"/usr/share/autogen/libopts-*.tar.gz || die
- fi
-}
diff --git a/sys-devel/autogen/autogen-5.18.16-r4.ebuild b/sys-devel/autogen/autogen-5.18.16-r4.ebuild
deleted file mode 100644
index 6cf60c1863b1..000000000000
--- a/sys-devel/autogen/autogen-5.18.16-r4.ebuild
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic autotools toolchain-funcs
-
-DESCRIPTION="Program and text file generation"
-HOMEPAGE="https://www.gnu.org/software/autogen/"
-SRC_URI="
- mirror://gnu/${PN}/rel${PV}/${P}.tar.xz
- https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=lib/verify.h;h=3b57ddee0acffd23cc51bc8910a15cf879f90619;hb=537a5511ab0b1326e69b32f87593a50aedb8a589 -> ${P}-gnulib-3b57ddee0acffd23cc51bc8910a15cf879f90619-lib-verify.h
-"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="libopts static-libs"
-
-RDEPEND="
- >=dev-scheme/guile-2.0:=
- dev-libs/libxml2
-"
-DEPEND="${RDEPEND}"
-
-# We don't pass the flag explicitly, bug #796776.
-# Let's fix it upstream after next autogen release if it happens.
-QA_CONFIGURE_OPTIONS+=" --enable-snprintfv-convenience"
-
-QA_CONFIG_IMPL_DECL_SKIP+=(
- # libgen.h is legacy and linux doesn't include -lgen nor nonstandard
- # functions. bug #924961
- pathfind
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-5.18.16-no-werror.patch
- "${FILESDIR}"/${PN}-5.18.16-rpath.patch
- "${FILESDIR}"/${PN}-5.18.16-respect-TMPDIR.patch
- "${FILESDIR}"/${PN}-5.18.16-make-4.3.patch
- "${FILESDIR}"/${PN}-5.18.16-guile-3.patch
- "${FILESDIR}"/${PN}-5.18.16-configure-c99.patch
- "${FILESDIR}"/${PN}-5.18.16-FORTIFY_SOURCE.patch
- "${FILESDIR}"/${PN}-5.18.16-no-which.patch
-)
-
-src_prepare() {
- default
-
- # missing tarball file
- cp "${DISTDIR}"/${P}-gnulib-3b57ddee0acffd23cc51bc8910a15cf879f90619-lib-verify.h autoopts/verify.h || die
-
- # May be able to drop this on next release (>5.18.16)
- eautoreconf
-}
-
-src_configure() {
- # suppress possibly incorrect -R flag
- export ag_cv_test_ldflags=
-
- # autogen requires run-time sanity of regex and string functions.
- # Use defaults of linux-glibc until we need somethig more advanced.
- if tc-is-cross-compiler ; then
- export ag_cv_run_strcspn=no
- export libopts_cv_with_libregex=yes
- fi
-
- # bug 920174
- use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE
-
- econf $(use_enable static-libs static)
-}
-
-src_install() {
- default
-
- find "${ED}" -name '*.la' -delete || die
-
- if ! use libopts ; then
- rm "${ED}"/usr/share/autogen/libopts-*.tar.gz || die
- fi
-}
diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest
index ce3fd69b6428..aee84781e500 100644
--- a/sys-devel/clang-common/Manifest
+++ b/sys-devel/clang-common/Manifest
@@ -9,6 +9,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19ddafafdf131aed40abbdaf5af1fb7b59c1e8ac.tar.gz 223281446 BLAKE2B 68f8e9bbae78938f424f566bf60db489e5c8afc4ae307cce11adb4b9b6dd48f1c54f1ef69b81051a702cb213012a0e5e03f602a29b11488d79a6bc5e49aa3402 SHA512 6355dd6f8992c6d14f20ce1976fc588f198a42c3c7eaa6c463e63b5110759decdebb80ea357c5e29620d8c33b6da752cbb8d2853159dc0e887f6c3d733c80eca
+DIST llvm-project-a348f223cab54b21a7b1c38dec7bc6aa2f81c949.tar.gz 223630067 BLAKE2B 3c2121a8d13e3a84a9ee98d17c58e5fd5a31d5870ac21c633c78c49b4af0c401310f7e91f64ff3b7cf7f6e8d205c730458b8b1101b1255f422659974d48e2ecb SHA512 33cc09a904e4fe0d529611a1d71d764e6d49f014cea903aadc0755d0420f65cfc763fdcfd4bb9a96adad79ce1c4475d8c005dcac37c4fe130a1fb3665172f1db
DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
EBUILD clang-common-15.0.7-r10.ebuild 5469 BLAKE2B 3d05e1a5136c75731b5b5ed4f1ad21272f1e224d8b27439e19e6268edb716bf01e789803880bbd9f4e9cf65e036e5dec42ee34914b3cc6e6d4b4b9e64aa70db0 SHA512 03a2e624e1ffe63a2e0d133a9cb2f64c56596a244706b538943e9c008054e967af6e595f8aa4ec53ab5555240bd1871bd5a50561af16adaeb501de83e8791202
EBUILD clang-common-16.0.6-r6.ebuild 5721 BLAKE2B cb0a6256eeeda5c8978f9fce4205429c8252612a64a3b5eb3464f321d70704291cccfff1d1126c56acf4b134be57655380741212a7a4cf968728c913f8653c3f SHA512 274ba0e7bca181d1e593fedbac5129e87e2e04a3e47679a9d37dfc0047de78ef0f0dbd5d116dae56abad95ff4b09cdefacc36e853c6f76ad397cd6155c491ab6
@@ -19,4 +20,5 @@ EBUILD clang-common-19.1.4.ebuild 9400 BLAKE2B 3f253f751ba999a6b33e69e9691e0fb8c
EBUILD clang-common-20.0.0.9999.ebuild 9331 BLAKE2B c567a5078934eb7a0320c813c96f8615645ad12e338d903d69552a589e8cde33c6cc4d8b4a0b8365a7cb6099a43ac8208cf0577e69b662181a3c6cef2c322d98 SHA512 5f9a3ecd614f67e58fb83ccac11cd65d2e1cccdaa1a6bf6770172a34750399c93d78adffb35dcae1be5649408c12bcd440b820512ce43c1f4e89ef07a34ab18d
EBUILD clang-common-20.0.0_pre20241118.ebuild 9331 BLAKE2B c567a5078934eb7a0320c813c96f8615645ad12e338d903d69552a589e8cde33c6cc4d8b4a0b8365a7cb6099a43ac8208cf0577e69b662181a3c6cef2c322d98 SHA512 5f9a3ecd614f67e58fb83ccac11cd65d2e1cccdaa1a6bf6770172a34750399c93d78adffb35dcae1be5649408c12bcd440b820512ce43c1f4e89ef07a34ab18d
EBUILD clang-common-20.0.0_pre20241123.ebuild 9331 BLAKE2B c567a5078934eb7a0320c813c96f8615645ad12e338d903d69552a589e8cde33c6cc4d8b4a0b8365a7cb6099a43ac8208cf0577e69b662181a3c6cef2c322d98 SHA512 5f9a3ecd614f67e58fb83ccac11cd65d2e1cccdaa1a6bf6770172a34750399c93d78adffb35dcae1be5649408c12bcd440b820512ce43c1f4e89ef07a34ab18d
+EBUILD clang-common-20.0.0_pre20241130.ebuild 9331 BLAKE2B c567a5078934eb7a0320c813c96f8615645ad12e338d903d69552a589e8cde33c6cc4d8b4a0b8365a7cb6099a43ac8208cf0577e69b662181a3c6cef2c322d98 SHA512 5f9a3ecd614f67e58fb83ccac11cd65d2e1cccdaa1a6bf6770172a34750399c93d78adffb35dcae1be5649408c12bcd440b820512ce43c1f4e89ef07a34ab18d
MISC metadata.xml 1248 BLAKE2B d9c542ec74a08857a87a42927feef909c343b5b672145e471ebc69753a3f93432d2ae93ed2659a67d504e2c5ff4212640e4208b173d96e5a173a1043766b66f8 SHA512 eb6d4be1dfbdf6b70b774d42493f6b3015472d5e4bba9386254f6e4ae92307169fe1ac6f0f613d452a9c21c6d61ed57ab50efb54813146983f4d6809b32ddacb
diff --git a/sys-devel/clang-common/clang-common-20.0.0_pre20241130.ebuild b/sys-devel/clang-common/clang-common-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..0351c7b25564
--- /dev/null
+++ b/sys-devel/clang-common/clang-common-20.0.0_pre20241130.ebuild
@@ -0,0 +1,310 @@
+# 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="
+ default-compiler-rt? (
+ sys-devel/clang-runtime:${LLVM_MAJOR}[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
+ EOF
+ if use bootstrap-prefix ; then
+ # bootstrap-prefix is only set during stage2 of bootstrapping
+ # Prefix, where EPREFIX is set to EPREFIX/tmp.
+ # Here we need to point it at the future lib dir of the stage3's
+ # EPREFIX.
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/../usr/lib
+ -Wl,-L,${EPREFIX}/../usr/lib
+ -isystem ${EPREFIX}/../usr/include
+ EOF
+ fi
+ # Using -Wl,-L instead of -L to trick compiler driver to put it
+ # after -isysroot's internal -L
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -Wl,-L,${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ EOF
+ fi
+}
+
+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 ff2c9ef0b6b1..e0beadc8df6b 100644
--- a/sys-devel/clang-runtime/Manifest
+++ b/sys-devel/clang-runtime/Manifest
@@ -6,4 +6,5 @@ EBUILD clang-runtime-19.1.4.ebuild 1461 BLAKE2B 5f477947ea7a07f9f341baa7c0e0df31
EBUILD clang-runtime-20.0.0.9999.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-20.0.0_pre20241118.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
EBUILD clang-runtime-20.0.0_pre20241123.ebuild 1339 BLAKE2B 4a5ee8a332faf2da21256df048867b1458a5ccb2d733d00ee3788bfbc28b3daf4ce2ae2455ab03c9ebb192d964feae2cd5806b5fef23eaa9401d57b35386aa57 SHA512 fac3e259b5a7b5e105b3d5fd2f8e9a9b6236642867e4c4a67106ec999dfaf0a30a97a3905685043a0ab9f38b15b7b8a5a814a97921e37029b9d0beac7ba7085a
+EBUILD clang-runtime-20.0.0_pre20241130.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_pre20241130.ebuild b/sys-devel/clang-runtime/clang-runtime-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..323c0b62c062
--- /dev/null
+++ b/sys-devel/clang-runtime/clang-runtime-20.0.0_pre20241130.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 87622b749d88..8a0d44d79501 100644
--- a/sys-devel/clang/Manifest
+++ b/sys-devel/clang/Manifest
@@ -18,6 +18,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19ddafafdf131aed40abbdaf5af1fb7b59c1e8ac.tar.gz 223281446 BLAKE2B 68f8e9bbae78938f424f566bf60db489e5c8afc4ae307cce11adb4b9b6dd48f1c54f1ef69b81051a702cb213012a0e5e03f602a29b11488d79a6bc5e49aa3402 SHA512 6355dd6f8992c6d14f20ce1976fc588f198a42c3c7eaa6c463e63b5110759decdebb80ea357c5e29620d8c33b6da752cbb8d2853159dc0e887f6c3d733c80eca
+DIST llvm-project-a348f223cab54b21a7b1c38dec7bc6aa2f81c949.tar.gz 223630067 BLAKE2B 3c2121a8d13e3a84a9ee98d17c58e5fd5a31d5870ac21c633c78c49b4af0c401310f7e91f64ff3b7cf7f6e8d205c730458b8b1101b1255f422659974d48e2ecb SHA512 33cc09a904e4fe0d529611a1d71d764e6d49f014cea903aadc0755d0420f65cfc763fdcfd4bb9a96adad79ce1c4475d8c005dcac37c4fe130a1fb3665172f1db
DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
EBUILD clang-15.0.7-r3.ebuild 12523 BLAKE2B 0e3f9d4506a1b98e96ff98ea52f8bb10f8ab4c91db2868f786bb1761a027e73708a10dce904192a9024ef5819ebf66af07ae6dcdc7186d4b2e04e8cc5978fc7a SHA512 7eeb3ab398c79d0931dedffd5c44d4f69b98b8b9717749a5d7373f6fef49fd337579ea2ab1d05e934b8e526d3f5a43a8911abeb32d956bed9c532b32cff0dbe3
EBUILD clang-16.0.6.ebuild 12452 BLAKE2B 446a354b58fc0535b81596a9a3785a4cd5d7b7ad52a461baa3b6b7beacdc12161f62da588cd837b8b9c8f35307b1a2c885b9d01bf8edc4af1b551efaab09ebe8 SHA512 58b5694a7d28a03edd4a71e3a99b0b2678285e616cdaab82bb196f092a8726e9cd3787ab07d724680113b4f6683e89103cab2478e49a85e7b5c75a633fb1ca51
@@ -28,4 +29,5 @@ EBUILD clang-19.1.4.ebuild 11912 BLAKE2B e03d8cf99f76ca7cad2b8f9979708aff71b141e
EBUILD clang-20.0.0.9999.ebuild 11834 BLAKE2B 46f903311baca65f0fc029cb4ee7d2c0f6fa604c0b903f2642ebbfaa36f22660716801dcec571e1d51c794493fd298ae089422ebb00b46e88ea5fb97334fb556 SHA512 6f5545955a805e82584f902d38bad6fb159290c96a59db59311c44846f17cf4aa0a9190247f152a70395de01019e5738f9f8865c2846731ea9dc7d335fee038b
EBUILD clang-20.0.0_pre20241118.ebuild 11834 BLAKE2B 46f903311baca65f0fc029cb4ee7d2c0f6fa604c0b903f2642ebbfaa36f22660716801dcec571e1d51c794493fd298ae089422ebb00b46e88ea5fb97334fb556 SHA512 6f5545955a805e82584f902d38bad6fb159290c96a59db59311c44846f17cf4aa0a9190247f152a70395de01019e5738f9f8865c2846731ea9dc7d335fee038b
EBUILD clang-20.0.0_pre20241123.ebuild 11834 BLAKE2B 46f903311baca65f0fc029cb4ee7d2c0f6fa604c0b903f2642ebbfaa36f22660716801dcec571e1d51c794493fd298ae089422ebb00b46e88ea5fb97334fb556 SHA512 6f5545955a805e82584f902d38bad6fb159290c96a59db59311c44846f17cf4aa0a9190247f152a70395de01019e5738f9f8865c2846731ea9dc7d335fee038b
+EBUILD clang-20.0.0_pre20241130.ebuild 11834 BLAKE2B 46f903311baca65f0fc029cb4ee7d2c0f6fa604c0b903f2642ebbfaa36f22660716801dcec571e1d51c794493fd298ae089422ebb00b46e88ea5fb97334fb556 SHA512 6f5545955a805e82584f902d38bad6fb159290c96a59db59311c44846f17cf4aa0a9190247f152a70395de01019e5738f9f8865c2846731ea9dc7d335fee038b
MISC metadata.xml 1318 BLAKE2B 704c1a64297b25da1b2e0eec23cbdf4791273da1babf23292160b6163d43438e62fe214df7afa09232893599951918440954c17a9bfa0c6f829a7d706f564192 SHA512 4677ad146739dd41e025a2335eec353a3d35ac8db7482948fee611566d84b41c4e6bdd75bc3d78f8933d4d9818a36bf222e1aa89e52f945501ff918479fea3b6
diff --git a/sys-devel/clang/clang-20.0.0_pre20241130.ebuild b/sys-devel/clang/clang-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..302925ded5b2
--- /dev/null
+++ b/sys-devel/clang/clang-20.0.0_pre20241130.ebuild
@@ -0,0 +1,464 @@
+# 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-scan-deps
+ clang-sycl-linker
+ 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-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 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/crossdev/Manifest b/sys-devel/crossdev/Manifest
index f1c1000a2e25..a6ee53bf2a8e 100644
--- a/sys-devel/crossdev/Manifest
+++ b/sys-devel/crossdev/Manifest
@@ -1,4 +1,10 @@
DIST crossdev-20240921.tar.xz 31008 BLAKE2B 9daeabcbeefa32624d71b86c5ddeb1f6bf6ccdf4e6f590bf7517388d4d68b73ae2651ca09d122f128f002568127bd5d7d767db9d6c043e5330b62c3104929848 SHA512 6b7f0bce309d2b0a8fdf9b28cf72098de9dafaf7f338a8308e94e2068cefc15cd2407eee39a9eeb0ea0a1bc46569cedc69a51bb01f140faebe374b660cb1cdf6
+DIST crossdev-20241130.2.tar.xz 32856 BLAKE2B ffcca5a7743fa6217ad23c97c5b122628a5950558f16413c1f52457d6fdd942dd2207c8f01e4a7c57712c051e5d0b66eff586d1d3141bc6d917aed4151df561c SHA512 28f7e914d56f7a9658292be8e5fdc57d1d0c1d57c8f4f00cfad493261ad94fb2edf19b4c34b926a1ea7b9da12c4f6be5fb8fee338074c5c8c554f15e996e670b
+DIST crossdev-20241130.3.tar.xz 32916 BLAKE2B 6bac26d79850f5ba0d12ef904e40d8540082e2bd58d7ecaf175dccea13bfb90f6cf41950b4bf3443fad8ec37e77dc8a2767aa6bd278306cedc0a48b6484c689c SHA512 b157d0b2b49fbd7b31d764ddfeeb223839cb62707b3ed88b4ce254d568640265f7dbcea96314d4fb7dd6039578450b8c0a090f5311eb22618e0c3679d77c8649
+DIST crossdev-20241130.tar.xz 32832 BLAKE2B eaf14cf139abf73816f9facd090846c92d3056e34eb4d7f9bca2c2f4b22e9d3f342e93dac70b462b252b64eb86270f666d151170a6474961342a26f152919f69 SHA512 59054ba5015c18c9b80e2258391f667ad4585644009ab74b631557e8c6550270e188967515a13ab0dd8e27272c6e5f0650a77e8c100dadbc2686cd8796a62c00
EBUILD crossdev-20240921.ebuild 954 BLAKE2B 5ae957db542f8ff8fcadc1dbb054e241c4ae3fe46d9a186941c135f54b41bcb4813f3185f79bfe138a8389b23088c030f6d193c60b78ce2dcf9a84eddb6b40cb SHA512 e2a45deb36b708337c9e717026351de14d455a2feb405ca047b5ab105305ce31b41d7c405cfbc42b0d39526f8fafdbb854caeb7e51fc660885c28256599ebcef
+EBUILD crossdev-20241130.2.ebuild 960 BLAKE2B 8185c5b3e25bbe2da71f42d925602de6e4f04ea7a2c15c4a52258ddff3ac8872d672f28a1faa5f85894ba4432fdb40ec968d1d75494ef4b83b28f28e7c571536 SHA512 cf1b30624f9cb8b5f48d0f040139c70356a3b92d939932ce9a0767b2956c1b29e30a3eeaeb8b08cabe4c6ad91fa71b4982bf8e51e2697c2680019f712190fb20
+EBUILD crossdev-20241130.3.ebuild 960 BLAKE2B 8185c5b3e25bbe2da71f42d925602de6e4f04ea7a2c15c4a52258ddff3ac8872d672f28a1faa5f85894ba4432fdb40ec968d1d75494ef4b83b28f28e7c571536 SHA512 cf1b30624f9cb8b5f48d0f040139c70356a3b92d939932ce9a0767b2956c1b29e30a3eeaeb8b08cabe4c6ad91fa71b4982bf8e51e2697c2680019f712190fb20
+EBUILD crossdev-20241130.ebuild 960 BLAKE2B 8185c5b3e25bbe2da71f42d925602de6e4f04ea7a2c15c4a52258ddff3ac8872d672f28a1faa5f85894ba4432fdb40ec968d1d75494ef4b83b28f28e7c571536 SHA512 cf1b30624f9cb8b5f48d0f040139c70356a3b92d939932ce9a0767b2956c1b29e30a3eeaeb8b08cabe4c6ad91fa71b4982bf8e51e2697c2680019f712190fb20
EBUILD crossdev-99999999.ebuild 960 BLAKE2B 8e9e752d6c74cc8812ba110c018607fde79945f487d8f7915c2a61e112d56c3c3a7a23d6ca64a149d34f10753467162a2e52d03e44bcf869350d32a857b63756 SHA512 a233556b61751d4c0b10c66b6cb1390a879e2e619c3f9d7329c20ce2c5252060760b4d0c59f961ec3994e298c587ba8d24097fa54f5b99a6332c5988485a9219
MISC metadata.xml 624 BLAKE2B 3f6609db4ad549927d9e7c0f259926de694435707aba7fabd2d08333294bc38bad42b59b7ab9f6372bec292708ebfdb88d88ee0e8dca1ed29389e33427a1d46e SHA512 4605364fe155bb8facae233aa29fadae23fe3d1f012451f8611933252f81aa3d3337ac9d68feabe059c959e2a94a67a85e6d88f7fa08d6d31e2418034b60010a
diff --git a/sys-devel/crossdev/crossdev-20241130.2.ebuild b/sys-devel/crossdev/crossdev-20241130.2.ebuild
new file mode 100644
index 000000000000..398d083f2a5c
--- /dev/null
+++ b/sys-devel/crossdev/crossdev-20241130.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+if [[ ${PV} == "99999999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/crossdev.git
+ https://github.com/gentoo/crossdev
+ "
+else
+ SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Gentoo Cross-toolchain generator"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND="
+ >=sys-apps/portage-2.1
+ app-shells/bash
+ sys-apps/gentoo-functions
+ sys-apps/config-site
+"
+BDEPEND="app-arch/xz-utils"
+
+src_install() {
+ default
+
+ if [[ ${PV} == "99999999" ]] ; then
+ sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die
+ fi
+
+ dodir /usr/share/config.site.d
+ mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die
+}
diff --git a/sys-devel/crossdev/crossdev-20241130.3.ebuild b/sys-devel/crossdev/crossdev-20241130.3.ebuild
new file mode 100644
index 000000000000..398d083f2a5c
--- /dev/null
+++ b/sys-devel/crossdev/crossdev-20241130.3.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+if [[ ${PV} == "99999999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/crossdev.git
+ https://github.com/gentoo/crossdev
+ "
+else
+ SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Gentoo Cross-toolchain generator"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND="
+ >=sys-apps/portage-2.1
+ app-shells/bash
+ sys-apps/gentoo-functions
+ sys-apps/config-site
+"
+BDEPEND="app-arch/xz-utils"
+
+src_install() {
+ default
+
+ if [[ ${PV} == "99999999" ]] ; then
+ sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die
+ fi
+
+ dodir /usr/share/config.site.d
+ mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die
+}
diff --git a/sys-devel/crossdev/crossdev-20241130.ebuild b/sys-devel/crossdev/crossdev-20241130.ebuild
new file mode 100644
index 000000000000..398d083f2a5c
--- /dev/null
+++ b/sys-devel/crossdev/crossdev-20241130.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+if [[ ${PV} == "99999999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/crossdev.git
+ https://github.com/gentoo/crossdev
+ "
+else
+ SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Gentoo Cross-toolchain generator"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND="
+ >=sys-apps/portage-2.1
+ app-shells/bash
+ sys-apps/gentoo-functions
+ sys-apps/config-site
+"
+BDEPEND="app-arch/xz-utils"
+
+src_install() {
+ default
+
+ if [[ ${PV} == "99999999" ]] ; then
+ sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die
+ fi
+
+ dodir /usr/share/config.site.d
+ mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die
+}
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index a33d2e7f3b89..19d9e0e93513 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -28,8 +28,10 @@ DIST gcc-13.3.0-patches-1.tar.xz 45084 BLAKE2B 4a4b2db25de2f17115e08b50d67449bb1
DIST gcc-13.3.0-patches-2.tar.xz 44440 BLAKE2B ebde73f6c3cd1a5fdc5bbce36414a59dda0925cba9d422d3689fc9c14fece44ee2391982a674411aa99bf47ffd49200f3ce51cc908beb8298adfff78e709a84c SHA512 eb56e0d7e69b5c3cca21f4cbff21c1204cf64ede7e66d689f45cf5ff37de8a59f24eb1f4b30d9c4222fd4126654fe4ffc146851f504761014995553c1202e8fd
DIST gcc-14-20241116.tar.xz 88185956 BLAKE2B 490972004d93d8f44f8d5751674105fca8c37aaaf6a87f42d665e3a2f8b1091e31ddbe827c6b6c54951feb0e45fa180c91d805fb82c7de584c01081bb4c1d529 SHA512 65b85c23083fd07e4d216480f1e0d2e1343bcef38dfdd181f6d0086103a626736d299387e1b06f634155d32b45678d72587b340d85c57c3b5ed9d7f20613edff
DIST gcc-14-20241123.tar.xz 88234244 BLAKE2B 3975c6f6e5adbf8506136c58678a9d136386f6c89f54312ebdcd60b2709fc8502b0969e4f3e80f189ba7934f47bd0738be2d5e6d68a40ea955d5ee7c775ee530 SHA512 bf7d416382c697410cf9358ecfc5c8ff2045f8e3f8b4e5fc41e02fe211aba057c8dc4c660b05b3a57bc113845c85332d588b67dff30e05efeb5d756d401eb8c1
+DIST gcc-14-20241130.tar.xz 88209220 BLAKE2B 86cc5b455ca7a3ba53fb7c16785b7c23762c66dbc3ce27b6067cd834514464fa7057be3ebc780d909122e0220734106aeab5389eca4c372e25e7d6d52de9d3f9 SHA512 cf6ce7d4beca717637ace8fc285d771f9deb2db44dbd446b7a7ea45e1c1cf59b165d4054ea480f2e59f19af465f027cc0862f66c8088fd8fb1199e90d8486052
DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25
DIST gcc-14.2.0-patches-3.tar.xz 13920 BLAKE2B 5b3efa54671581d97ae664e73629f247c776d84eea0b10f8d3223502582f1d1086fff86a6cde6c35b6b43d134af4dad3135d3de5531cfccb320a7fc884ab39ef SHA512 d47549e902055414142f650c7098f029410549741542553b1d0c0519f046a958561f92552e44f59663a7645d42316af5dab1462f54f50f2205257be6744c2fce
+DIST gcc-14.2.0-patches-4.tar.xz 13908 BLAKE2B a4c8d0310737fb2c3ce74f0aabc845f4c825867cae92d916226c5b670d803334e5c24a9195766d0c3303be6fdf8dd47fb989c34b9cdbad1de6a4cf654fef186f SHA512 0a3367bbddcf4b777e382e3b4d496ae01d80be4c749d486c9424a896855998ddf0cb8c23ce61b3c449bbc52185683dd8c45a70c96348b905cebe832e7cef1538
DIST gcc-15-20241117.tar.xz 90065532 BLAKE2B 22ffd82f77871df3c90667d3fbc08ff721586c851aea6e79a34bf065468307c132d62581b7cceaf9b2bc6cc54be8d6ec1dbde241e01454a343e2c48c804a4cea SHA512 70fb8dbdf5a98e3216a5c64c544d9208dd153a71266312e12189ea8ef03abf8b4d29153e0550a556b93e47ef2315e60bf2f5e080db82ffb3c6bb3dc2a3c8aa10
DIST gcc-15-20241124.tar.xz 90251704 BLAKE2B d9c2a4342ca2229e345e163a8781e7ea8f4682734f5b1f4c9783272e0a362bc4fb0c5b5042363d996ea0473836c53cbf437761389062d076ce5595c1cdb2bcf2 SHA512 36e30e658f45b3b6cd5968cdae15216d6d874349349dce30f7d8c7c7bda1eff841d4d1eb4471956acfab04300c7169872210d26a5d05dd1ae0167d601a2adeed
DIST gcc-15.0.0-musl-patches-2.tar.xz 3076 BLAKE2B 0073248fe4f7dd827980559017b5aa1fb5c4c46acc9ad5c410dc152fd1e44966d3066bf7152338573cb45b1c36027de5f0c519abd414d97a37bccef07f6a5281 SHA512 295f1a669020bbe2874e9b03afd46b5d083073b276fca3543f3767a2d74f35df81cf0a67abad50c200cf7a3af36ec98ff9977cb7d5c19f334af7d3bb1926a3de
@@ -57,6 +59,7 @@ EBUILD gcc-13.3.1_p20241129.ebuild 1683 BLAKE2B 7eb388fb9b127bafecda5064246bb537
EBUILD gcc-13.4.9999.ebuild 1679 BLAKE2B 480cd313584e1170b6948893bf6eaec6fed930db66038f5e0dc60ca279e7469ba41b416cb7e0261aafda3ee704815ae8d034ee9a523a46fb96f023621bc58446 SHA512 c34bdd3646469d69bea6457c4f91107ea22c14d9a0e75e4cd1b8b75297a8a5b073adf37c8609d62d00584fe6dcfa7cf22c460210d6550bb69dcffc570e9521b0
EBUILD gcc-14.2.1_p20241116.ebuild 1431 BLAKE2B d7a80df88dd4243d6864a3c10bd7cf50bfb3ef49ed7065040970695799b897f8713099db818db45ff167ee0e7ea8d6b8e94d04274ad394685e45df3eaedbe7f6 SHA512 07910535d1bad6dad4a717f58027e9763b7bbaef6dedec6af57fdca0f68f9e77a56c7f964f531e6afa3df920ee8e73a1094fd75d38b963609169d6a136608685
EBUILD gcc-14.2.1_p20241123.ebuild 1471 BLAKE2B 604432346e6d948408a19aca8b34f5db50d399d56984ac578b3a603cbd28b3350e88a0de1a1602ed472483ffffce4c1d963fe361f5adfd9b3754e69143e1151b SHA512 7dd673e55e27d00ae4c9be3ae828f836e78d280b72e9ac954f82c0f37a9bad05b8d8f5d12a2f2a94c82f7bd55d2d9ebe29ec104426c0ad7feb13835b1aba3c66
+EBUILD gcc-14.2.1_p20241130.ebuild 1471 BLAKE2B 55e6881ccadeb2944be7f64cb3bb192741a22a8b952342fcbcfdbf1c6ae21a29927fb34ca40c75db632c9caedc4a711e6f06d4d1f1c5f04396b37cae337e06ad SHA512 f17fa93ac5a945535dfc6b4c1fd48e765c222b281a8812f667dba8063c0b61282d6ccd2bd8441cc93343047caa4fbd28b8a6a03ae9cf50f866eb583bbcee53d0
EBUILD gcc-14.3.9999.ebuild 1410 BLAKE2B 9bae23ee70f670946a0b160e4d4d8a074584097a6b9a1f41c3e08a43271539d30ce7bb3651419a6950c74d24748e8423056dbc857e5c7ae96c7e42992d7395fc SHA512 72b07844e93065dd3dea5fc96f70d9502876932f3b9b8fe898ee0911d3750b47fc7e6fce802c8d8e93481a74ba46de0f9fb15cf48de1c3b347180a4d4c1303cf
EBUILD gcc-15.0.0_pre20241117-r2.ebuild 1447 BLAKE2B 6a12ceb7b56aae61eea49ffe398edbf73768d78c50e3cce19b26adf52b04a114f62d1ffc1bd96a30b0ab12f1ff89d9820eb2b3a1c2959c56fcab9012f23d58c1 SHA512 8187e8a6fcb7fbcf20898e55efb6302331640cb874be44d699679c287575ef2e1ec7f49ed8db61d5f0d2bfcf90b6bd35ce9318841655bffff99518d8bdcdb470
EBUILD gcc-15.0.0_pre20241124.ebuild 1360 BLAKE2B 39e50bebad9adbae4866c7a6be7cc79ebdadea6c117519b9360c3cac494d04c87877e258ff180b9592e26fb1deffda73f519ae625e5f6388d7da6ec280455749 SHA512 1773a80bf4f0068130901d8287e25f9a19829f1b510fa6ac00cf430cb8fe33fb574a67bf9ddaa5a6321b445663c4ca16af5c95815c57eeca7a589684ae38e84d
diff --git a/sys-devel/gcc/gcc-14.2.1_p20241130.ebuild b/sys-devel/gcc/gcc-14.2.1_p20241130.ebuild
new file mode 100644
index 000000000000..404cbfb63726
--- /dev/null
+++ b/sys-devel/gcc/gcc-14.2.1_p20241130.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_DEV="sam"
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="14.2.0"
+PATCH_VER="4"
+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
+ 77_all_m2_docs_sandbox.patch
+ )
+ 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/lld/Manifest b/sys-devel/lld/Manifest
index fcf97e123f19..695bdc3c5ee8 100644
--- a/sys-devel/lld/Manifest
+++ b/sys-devel/lld/Manifest
@@ -10,6 +10,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19ddafafdf131aed40abbdaf5af1fb7b59c1e8ac.tar.gz 223281446 BLAKE2B 68f8e9bbae78938f424f566bf60db489e5c8afc4ae307cce11adb4b9b6dd48f1c54f1ef69b81051a702cb213012a0e5e03f602a29b11488d79a6bc5e49aa3402 SHA512 6355dd6f8992c6d14f20ce1976fc588f198a42c3c7eaa6c463e63b5110759decdebb80ea357c5e29620d8c33b6da752cbb8d2853159dc0e887f6c3d733c80eca
+DIST llvm-project-a348f223cab54b21a7b1c38dec7bc6aa2f81c949.tar.gz 223630067 BLAKE2B 3c2121a8d13e3a84a9ee98d17c58e5fd5a31d5870ac21c633c78c49b4af0c401310f7e91f64ff3b7cf7f6e8d205c730458b8b1101b1255f422659974d48e2ecb SHA512 33cc09a904e4fe0d529611a1d71d764e6d49f014cea903aadc0755d0420f65cfc763fdcfd4bb9a96adad79ce1c4475d8c005dcac37c4fe130a1fb3665172f1db
DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
EBUILD lld-15.0.7.ebuild 2269 BLAKE2B 322d5608e3acfb87bfb720646404ed405a3113c4faf1059428663a50d5566d7842fcff57ccf3aeb5e97b1a9acd4efd862db2368f130e088944ef4f0faf3c90f8 SHA512 e50d1d99fe18b6aba57c06eb6853f3212be1f7b7f2f3c70dcd226a69a4defc753eafcce77eb74f30eaa31b010fa094738718c1cdb23e584ef6e33eb72e536719
EBUILD lld-16.0.6.ebuild 2324 BLAKE2B 9b849aea16a8188e4da4cfcf0c85fb3e997007e1287ec062aee182c7955c7bc78132e761c2611198c7207283fbe930fbee6bdc9a39b922d6d5387bedadaf1b76 SHA512 a7c3d4c1508e5435ba9f6250c6b2fd3157fb4f2c205a6888736f79fa739c59eec3e901927b53af81de3a3c6d4fa5d576be3eaa6ad45c60e5d952ed4ad9706c2f
@@ -19,4 +20,5 @@ EBUILD lld-19.1.4.ebuild 2294 BLAKE2B 12bdcecea6f517f1ddcf16bd6b9d0ddfadbf89438d
EBUILD lld-20.0.0.9999.ebuild 2197 BLAKE2B 275356848520636601c33385faf7147ea7709f6578191cd3654ac8b5420d6e7052aa9f83c2c92bfded18fa223b64e6467db8ee2c43c81594fda568dec2751eba SHA512 7a0bdf68762cb5516fd1030b83288fba7364123a52833c3abde14cd13fefed3d97f6eab52148b9b32e112c7d1ccbb08fb2c5dfee5e444b26d868cc7e7bbdc68d
EBUILD lld-20.0.0_pre20241118.ebuild 2293 BLAKE2B 5825f0a471a50ec1d9e7775a82736f6369fa1e99904b30cf068f0092dce44d4e0c2e76fcb21d70b9ecb1756d19e8482a5ac940bdc25c5a1d58c9aee0c21b5d7b SHA512 86226e5f9aea8a87b022b2def7cef707fc7db0f1e026f4965ec64390708f7e2355c3e1ee991487bd0c6f9f17dc2f129a6b7a2b8abbf1e14fe48dd0e4cd73b1fa
EBUILD lld-20.0.0_pre20241123.ebuild 2197 BLAKE2B 275356848520636601c33385faf7147ea7709f6578191cd3654ac8b5420d6e7052aa9f83c2c92bfded18fa223b64e6467db8ee2c43c81594fda568dec2751eba SHA512 7a0bdf68762cb5516fd1030b83288fba7364123a52833c3abde14cd13fefed3d97f6eab52148b9b32e112c7d1ccbb08fb2c5dfee5e444b26d868cc7e7bbdc68d
+EBUILD lld-20.0.0_pre20241130.ebuild 2197 BLAKE2B 275356848520636601c33385faf7147ea7709f6578191cd3654ac8b5420d6e7052aa9f83c2c92bfded18fa223b64e6467db8ee2c43c81594fda568dec2751eba SHA512 7a0bdf68762cb5516fd1030b83288fba7364123a52833c3abde14cd13fefed3d97f6eab52148b9b32e112c7d1ccbb08fb2c5dfee5e444b26d868cc7e7bbdc68d
MISC metadata.xml 299 BLAKE2B 2feead2cd1b35b3a43335ddd7711f8181b52bc63ee7166608914260c67528add5251349063afbef4f8cf0ec09b2cd4c3ffdd90f2c14ed60bb69ebc03888f6333 SHA512 cd745c54ab18d25bdaff18582105072574103a36cfe7c175ef740f266d00e9fc6f44c332904d23b911c939cf5bdf52973b388923099d8dd5dfef3c283b5cb685
diff --git a/sys-devel/lld/lld-20.0.0_pre20241130.ebuild b/sys-devel/lld/lld-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..07358f891cd0
--- /dev/null
+++ b/sys-devel/lld/lld-20.0.0_pre20241130.ebuild
@@ -0,0 +1,90 @@
+# 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}"
+
+ # 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 5b52e57e331d..f7bff6d9b191 100644
--- a/sys-devel/llvm-common/Manifest
+++ b/sys-devel/llvm-common/Manifest
@@ -9,6 +9,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19ddafafdf131aed40abbdaf5af1fb7b59c1e8ac.tar.gz 223281446 BLAKE2B 68f8e9bbae78938f424f566bf60db489e5c8afc4ae307cce11adb4b9b6dd48f1c54f1ef69b81051a702cb213012a0e5e03f602a29b11488d79a6bc5e49aa3402 SHA512 6355dd6f8992c6d14f20ce1976fc588f198a42c3c7eaa6c463e63b5110759decdebb80ea357c5e29620d8c33b6da752cbb8d2853159dc0e887f6c3d733c80eca
+DIST llvm-project-a348f223cab54b21a7b1c38dec7bc6aa2f81c949.tar.gz 223630067 BLAKE2B 3c2121a8d13e3a84a9ee98d17c58e5fd5a31d5870ac21c633c78c49b4af0c401310f7e91f64ff3b7cf7f6e8d205c730458b8b1101b1255f422659974d48e2ecb SHA512 33cc09a904e4fe0d529611a1d71d764e6d49f014cea903aadc0755d0420f65cfc763fdcfd4bb9a96adad79ce1c4475d8c005dcac37c4fe130a1fb3665172f1db
DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
EBUILD llvm-common-15.0.7.ebuild 1014 BLAKE2B da3b7ec6cd3c1e57758312fb9ea25e693305e1ef72b350eea85fbde5a1e636269d84bd491b6f528aee8a9cb8229f6304b371f99e6ac416c661c6519706b83b61 SHA512 68b9d672372fe71e39f2b8f9d80eb1dcb5138b8b9b961f56a4eeb81b3fc4054448a51a46b3a62547ebb6262425512f39bc146e5f2c3703de10ab520f1594e7a4
EBUILD llvm-common-16.0.6.ebuild 1034 BLAKE2B 1e0a0b6cbb746a7eb45e3f553bc949b69314afc3d913cda004d395e7b322c17f976496eed074cf08718dc2d9efa7f3db81dec4f38394fe6ea2b77793b74f4371 SHA512 8fbb211a6b05d24409642fcb00a4fb798499721cc30c4c5fa2df120ed74d9da7286916cf3788ea26f2cb21e334876417b05a4336fedff99e95d1ebe358f8b311
@@ -18,4 +19,5 @@ EBUILD llvm-common-19.1.4.ebuild 1047 BLAKE2B 195324cff3d34038012504238dfbbdb44f
EBUILD llvm-common-20.0.0.9999.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-20.0.0_pre20241118.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
EBUILD llvm-common-20.0.0_pre20241123.ebuild 925 BLAKE2B 18510f8adb0e892eb63bdbf8a6154f56e23ed026ee6f0bf05bbccbafea843beb228bf57e14b01525fb0b067fdfa897faadbfd61179844a7c397c7f1d3b6fca64 SHA512 0cff75fcbabf14ba1526201d65b79486aefaf559accf5bd479a3643c4351ac997f6d55b2323328fabc4009e887e1cfe70681df5593c62a5b5bbfffb8312ea22d
+EBUILD llvm-common-20.0.0_pre20241130.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_pre20241130.ebuild b/sys-devel/llvm-common/llvm-common-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..2d8f35a84179
--- /dev/null
+++ b/sys-devel/llvm-common/llvm-common-20.0.0_pre20241130.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 148ffede9c43..fedad951dc5d 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -23,6 +23,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19ddafafdf131aed40abbdaf5af1fb7b59c1e8ac.tar.gz 223281446 BLAKE2B 68f8e9bbae78938f424f566bf60db489e5c8afc4ae307cce11adb4b9b6dd48f1c54f1ef69b81051a702cb213012a0e5e03f602a29b11488d79a6bc5e49aa3402 SHA512 6355dd6f8992c6d14f20ce1976fc588f198a42c3c7eaa6c463e63b5110759decdebb80ea357c5e29620d8c33b6da752cbb8d2853159dc0e887f6c3d733c80eca
+DIST llvm-project-a348f223cab54b21a7b1c38dec7bc6aa2f81c949.tar.gz 223630067 BLAKE2B 3c2121a8d13e3a84a9ee98d17c58e5fd5a31d5870ac21c633c78c49b4af0c401310f7e91f64ff3b7cf7f6e8d205c730458b8b1101b1255f422659974d48e2ecb SHA512 33cc09a904e4fe0d529611a1d71d764e6d49f014cea903aadc0755d0420f65cfc763fdcfd4bb9a96adad79ce1c4475d8c005dcac37c4fe130a1fb3665172f1db
DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
EBUILD llvm-15.0.7-r3.ebuild 12592 BLAKE2B 81cd473990810203c4e8a47ceb0189ed399c869b85fab3181724dbd1429063cdaad1f6b6cb1ab5b392f531b0b4907cc61f266558b873b236f9a3ff439045aa37 SHA512 2321f9e6da93af22d5f074175a6a92b7dcd271e2b9b92128d268dd777a9c3bdd876010740153734e2593b90d26a58d4f784b2256a6b1e18160d13b3c10441fb3
EBUILD llvm-15.0.7-r7.ebuild 12599 BLAKE2B 1944e6a99f5eb6d303f3d05495378956c0022076b63507cbae1a546938e8e2c2ef71c32c6323469a2d7b69d2b269a72a408723198d03fbfff5f15bb3f654ed82 SHA512 ba608bfeceddefee6834b110a538b176ba1b31135a7be939fae86dadb2de51324e653ccb2f27bf5aa93223722c21f176586f2865fc85771ce35f9dc33b259a44
@@ -37,4 +38,5 @@ EBUILD llvm-19.1.4.ebuild 13162 BLAKE2B 293856e63ed74df233a0e31d0d143ad7c950dfcd
EBUILD llvm-20.0.0.9999.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
EBUILD llvm-20.0.0_pre20241118.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
EBUILD llvm-20.0.0_pre20241123.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
+EBUILD llvm-20.0.0_pre20241130.ebuild 13152 BLAKE2B 8b157cde59f8cddf7393d5db87992e7154bb733eae7c13cfbd28a195ba0d40ccaa00b5264ba00d1c5d9be452e7d6251c74ecd38a97f49a2ac5b108392de1f2de SHA512 51b5728a89f5ff7d92af282e3b914276ddcd5e301a87d3c73f4504739cad16442271aa404c29b9cf6a0dffabf19ff0ef56c9617e5dfd333dec50118afdadce5c
MISC metadata.xml 2835 BLAKE2B 07816d714509d62c0e0a443cc4af1f1f049497de75431f80a981f662b4f2281a16655be3e733a26099d0d814d5ce26d80cee13aa7a4e8d079168846a8e02670f SHA512 292ccb0a05a0239b5b00c6a84be11b4b385900d6467a6a139af03588c61aff9ac0e4bbcd23e89b2a7d7947f7d8cf8ba9323f2539a6c563a338b73f5ac6ffd00f
diff --git a/sys-devel/llvm/llvm-20.0.0_pre20241130.ebuild b/sys-devel/llvm/llvm-20.0.0_pre20241130.ebuild
new file mode 100644
index 000000000000..d01575f39051
--- /dev/null
+++ b/sys-devel/llvm/llvm-20.0.0_pre20241130.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/nvptx-tools/Manifest b/sys-devel/nvptx-tools/Manifest
index f6c2b619a185..b91ac48368df 100644
--- a/sys-devel/nvptx-tools/Manifest
+++ b/sys-devel/nvptx-tools/Manifest
@@ -1,6 +1,4 @@
-DIST nvptx-tools-0_pre20230122.tar.gz 789116 BLAKE2B f05b922827c0215a2484c4f91f3424ca866bb91435a3d60559fc9f1f63c06559377f1c8071c9e8e5607ec4dbff1c22d095385ac86d35f43ade29d9df6699f3ff SHA512 9d3bceef2ef7942ea6ec8b6c6b1b9144f0a020bfabc2583ba4ef73db8ef299ffadbc6dbe27748c728bd16aee0ecd6f0fbe1f8bb064bde986bb4e0475b2494870
DIST nvptx-tools-0_pre20240809.tar.gz 994915 BLAKE2B eef94a55d4ec48fb3031e20d5722e4f0564e7ed5ddc217a0b88d15236d9c15bbd60d14ab537e3535c40e800d75578c21833c6f414bdf11f0fed6f7eb3721478a SHA512 b98ee6f045ec820d056ce7cf4af4d3dcabdd0e77d15f02a88dd3e7f60de6ec32ecb454787f1ef626e358cde7744c5635f8d2e8ff78b46a714f627a37ac256ddb
-EBUILD nvptx-tools-0_pre20230122.ebuild 1188 BLAKE2B 7b468ef5479c0bf8c1d552f2756598d8402d3d72653719855f8e7ad76d26c00952a7498d3d114204b1cad2b5023721ec261717bbe2f6fb59a1a80d3e291b441e SHA512 fbac3ab468f70200e1e14c2cd41de8545998ee6dd4f791c25d20fd58829017fb85854acd1342223a2a381b467cc6dd4c1ff57beeb10601f674cf86895210a56d
-EBUILD nvptx-tools-0_pre20240809.ebuild 1193 BLAKE2B 5408e67cf7d7ce2dba5ad01ec9b0ada7391db3a37a938ff4e3746b6e03439db1eb99f7332f426f81fec9709a29e8dc12d397f2ffa683da7d73711a2b260bdd45 SHA512 d690f2a67b70aaaa249fa30d7298d87155ab04dadb0bc2eeefc7ff5852ea87f41d69eb505b3005303d588d085b8f10dbb28c4acfff7a8fb7295730735b702bdc
-EBUILD nvptx-tools-9999.ebuild 1188 BLAKE2B 7b468ef5479c0bf8c1d552f2756598d8402d3d72653719855f8e7ad76d26c00952a7498d3d114204b1cad2b5023721ec261717bbe2f6fb59a1a80d3e291b441e SHA512 fbac3ab468f70200e1e14c2cd41de8545998ee6dd4f791c25d20fd58829017fb85854acd1342223a2a381b467cc6dd4c1ff57beeb10601f674cf86895210a56d
+EBUILD nvptx-tools-0_pre20240809.ebuild 1229 BLAKE2B 05fe35ca0845e1b581951ef8f6deea7ad7d27d59cbecb9edd0c539ee2d90ddfe63dd5ef4457c417eb0993c83cad2dba2d7b7be6ed56f032f187962576693edbb SHA512 e596ae1149415f7407cc8383fc7705d84c7881bfb6d1350b87f746165b2daa66d991347b8e2e8150302d55d8eb5ce5a35bfa2c00473467f5c0d3351d4571accc
+EBUILD nvptx-tools-9999.ebuild 1229 BLAKE2B 05fe35ca0845e1b581951ef8f6deea7ad7d27d59cbecb9edd0c539ee2d90ddfe63dd5ef4457c417eb0993c83cad2dba2d7b7be6ed56f032f187962576693edbb SHA512 e596ae1149415f7407cc8383fc7705d84c7881bfb6d1350b87f746165b2daa66d991347b8e2e8150302d55d8eb5ce5a35bfa2c00473467f5c0d3351d4571accc
MISC metadata.xml 352 BLAKE2B 8dcbda9f328d426459c543132a16db279e1a465f7d326c40b6226019a29f2f424109f000bd8de621ae1f76dc85d6e29a8b3609cd716387265edc776ff5a08d62 SHA512 74343cb4485819287ddf2eab706647f373d6fb574b0a6ebe52b6cafa391185da583aad6a669872d0e4132b64afd3fb84b511cbd8091986c10ec3939e2c25abed
diff --git a/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild b/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild
deleted file mode 100644
index a73728161032..000000000000
--- a/sys-devel/nvptx-tools/nvptx-tools-0_pre20230122.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Collection of tools for use with nvptx-none GCC toolchains"
-HOMEPAGE="https://github.com/SourceryTools/nvptx-tools https://gcc.gnu.org/wiki/nvptx"
-
-if [[ ${PV} == 9999 ]] ; then
- EGIT_REPO_URI="https://github.com/SourceryTools/nvptx-tools"
- inherit git-r3
-else
- MY_COMMIT="93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b"
- SRC_URI="https://github.com/SourceryTools/nvptx-tools/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}"/${PN}-${MY_COMMIT}
-
- KEYWORDS="~amd64"
-fi
-
-LICENSE="GPL-3"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY} == cross-* ]] ; then
- export CTARGET=${CATEGORY#cross-}
- fi
-fi
-
-BDEPEND="
- test? (
- dev-python/lit
- dev-util/dejagnu
- )
-"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-pkg_setup() {
- # Reject newlib-on-glibc type installs
- if [[ ${CTARGET} == ${CHOST} ]] ; then
- case ${CHOST} in
- *-newlib|nvptx-*) ;;
- *) die "Use sys-devel/crossdev to build a nvptx(-none) toolchain" ;;
- esac
- fi
-}
diff --git a/sys-devel/nvptx-tools/nvptx-tools-0_pre20240809.ebuild b/sys-devel/nvptx-tools/nvptx-tools-0_pre20240809.ebuild
index e76b4259f828..b6308a59af98 100644
--- a/sys-devel/nvptx-tools/nvptx-tools-0_pre20240809.ebuild
+++ b/sys-devel/nvptx-tools/nvptx-tools-0_pre20240809.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DESCRIPTION="Collection of tools for use with nvptx-none GCC toolchains"
-HOMEPAGE="https://github.com/SourceryTools/nvptx-tools https://gcc.gnu.org/wiki/nvptx"
+HOMEPAGE="https://github.com/SourceryTools/nvptx-tools https://gcc.gnu.org/wiki/nvptx https://gcc.gnu.org/wiki/Offloading"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/SourceryTools/nvptx-tools"
diff --git a/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild b/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild
index a73728161032..b6308a59af98 100644
--- a/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild
+++ b/sys-devel/nvptx-tools/nvptx-tools-9999.ebuild
@@ -1,16 +1,16 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Collection of tools for use with nvptx-none GCC toolchains"
-HOMEPAGE="https://github.com/SourceryTools/nvptx-tools https://gcc.gnu.org/wiki/nvptx"
+HOMEPAGE="https://github.com/SourceryTools/nvptx-tools https://gcc.gnu.org/wiki/nvptx https://gcc.gnu.org/wiki/Offloading"
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/SourceryTools/nvptx-tools"
inherit git-r3
else
- MY_COMMIT="93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b"
+ MY_COMMIT="a0c1fff6534a4df9fb17937c3c4a4b1071212029"
SRC_URI="https://github.com/SourceryTools/nvptx-tools/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${MY_COMMIT}
diff --git a/sys-devel/reflex/Manifest b/sys-devel/reflex/Manifest
index 68fde1504009..1024d5a18601 100644
--- a/sys-devel/reflex/Manifest
+++ b/sys-devel/reflex/Manifest
@@ -3,5 +3,5 @@ DIST reflex-20230523.tgz.asc 729 BLAKE2B 0249d1bc4f6d6395be0f51f90e1f9834bc63cd7
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 722 BLAKE2B b13bc217dd37aebc3a50950643255a1b541aaef7a5bbea91e7c29fd4c91388619f56a40818a364556ea2bb821fae6565799a44b3dc6964f2975532ba6f517901 SHA512 7716246d707233312c375373a6836ab41f4f4989f13aeb55dc4bb261a641561d7055d6df8bcb368bcabd16a7bbdb1fad6fea54ef73889cfb06c145582e8b4a3f
+EBUILD reflex-20240906.ebuild 721 BLAKE2B 06aa75cf981e87fcb8671582c5d05ae0321d78ac0f9ad2df6463410803658a22fa8810339a6afc521447aeb3d411620d36f07a092997c79a0cac8ea16ff9f4c8 SHA512 4307aa945a2d4abec92f89623b748fc5275190108dcec8bbbe3ec4e7af83fa6cac9ca3e25d544365f0233f60600ad7abb4ee0782e43ccdda715d207ec80d440a
MISC metadata.xml 405 BLAKE2B 593dd39b5718afeb9441efadf2bf2ecf533ce076e21d7271fe6dd4a0f0c93544cf6b8bf1bd0e2b67b76213b5a0aa2687d95effd268976d378c701e49ae9404ab SHA512 a9345e50a04acc81a7f0a1213c8986d1bd068b6aceb0170a6a1bc8772285ba6794799470739a8c9f4ee6b2dfb7fdb440ceb1f0c639f3d0775a77db500b55ef2b
diff --git a/sys-devel/reflex/reflex-20240906.ebuild b/sys-devel/reflex/reflex-20240906.ebuild
index a4bba5868907..669c54565b3e 100644
--- a/sys-devel/reflex/reflex-20240906.ebuild
+++ b/sys-devel/reflex/reflex-20240906.ebuild
@@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.as
LICENSE="FLEX"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86"
BDEPEND="
app-alternatives/yacc