summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin14744 -> 14747 bytes
-rw-r--r--sys-libs/binutils-libs/Manifest2
-rw-r--r--sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild166
-rw-r--r--sys-libs/compiler-rt-sanitizers/Manifest1
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-19.0.0.9999.ebuild216
-rw-r--r--sys-libs/compiler-rt/Manifest1
-rw-r--r--sys-libs/compiler-rt/compiler-rt-19.0.0.9999.ebuild175
-rw-r--r--sys-libs/libcxx/Manifest1
-rw-r--r--sys-libs/libcxx/libcxx-19.0.0.9999.ebuild213
-rw-r--r--sys-libs/libcxxabi/Manifest1
-rw-r--r--sys-libs/libcxxabi/libcxxabi-19.0.0.9999.ebuild117
-rw-r--r--sys-libs/libomp/Manifest1
-rw-r--r--sys-libs/libomp/libomp-19.0.0.9999.ebuild157
-rw-r--r--sys-libs/llvm-libunwind/Manifest1
-rw-r--r--sys-libs/llvm-libunwind/llvm-libunwind-19.0.0.9999.ebuild131
-rw-r--r--sys-libs/zlib/Manifest8
-rw-r--r--sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch3
-rw-r--r--sys-libs/zlib/files/zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch17
-rw-r--r--sys-libs/zlib/files/zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch79
-rw-r--r--sys-libs/zlib/files/zlib-1.3.1-use-LDFLAGS-in-configure.patch74
-rw-r--r--sys-libs/zlib/zlib-1.3.1.ebuild171
21 files changed, 1534 insertions, 1 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index 7ceea0d8d582..40e6630e54b0 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest
index 6b8a386912ca..044bd7d22859 100644
--- a/sys-libs/binutils-libs/Manifest
+++ b/sys-libs/binutils-libs/Manifest
@@ -16,6 +16,7 @@ DIST binutils-2.40-patches-6.tar.xz 299212 BLAKE2B 3a68a924e9747fdd0486327a5bd24
DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
DIST binutils-2.41-patches-2.tar.xz 20288 BLAKE2B 1cc29e868ded12845856c5da567f23798fe3017961ce079325c20f456b837cab11560d896065f70953b0bab55bf565288541579e9c3e0991a87083edf2a85fa5 SHA512 75619a5e17b75d72f9bdd9d5e5ee3b566c94de64410bfc074f1a9bfb9f08db9ecf8be216efa1053263468aa8ec99b8aa3b2b095e63cb95f3566500ac0c3b9432
DIST binutils-2.41-patches-4.tar.xz 86580 BLAKE2B 32748fd0e81a7e323e9f56f0864f2a1755b8fe1b09c777075e31a292297e365c47b47003f8f1bffacc254ed8dccf1c655b7b13f61da751c9db090e56d819fbb2 SHA512 90dcf38c1ed2ae015eb9de922e946e2be62355bd51276075e7f1c0a06cd52408057c4151a2d2d4c07e33c1d2c5998001cba5509819e5722cce45f70172465ea5
+DIST binutils-2.41-patches-5.tar.xz 95176 BLAKE2B bbc94b3c7d70653a1056afe57a120b6eac9f0c8f51f05e95a1b5f80f2b7ef35e6355d740b49bc1ec2f3a13a838d5210ff4a205aa2bde5a72bc55c12100bce726 SHA512 ad293f97116f71322993f381c1af69fad1719a159f127ff16ddeca62f9b9b62aaf141abfa661985a61e9be7ae0639772148e69293a97364eebbf49182babb691
DIST binutils-2.41.tar.xz 26765692 BLAKE2B 3bccec2b52f7e82a727121bf2a2e51a6249ba63dcd74c665fd834e858645c912ffd8245d848435288b938852830b482905606f55c40df4061215fd75c52ffc75 SHA512 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374
EBUILD binutils-libs-2.34-r2.ebuild 3633 BLAKE2B 4bb2862dc364c5f64597d2fb22f867028ee85c4d8a14ab85e28c2f5dab43cdb2a690e91b43d1a7994081df9c21be6c9850b808f01d71e18b97c1439ad1890fcb SHA512 84a368c4c1ba2a3f4e1b3043f531deab5457b0169d83b38bada72b857e9a86a7ca86cb317a062216ee7d2b87e39c6648e8bbd62e676507c638ea6fcfc9efda28
EBUILD binutils-libs-2.35.2.ebuild 4055 BLAKE2B 5a2eed3c0e4a9f23742fe73258504faa0c52a975f9a53b9eaade40bd7f2af66d8524b4b08c02bf88770be79fa2163045b0721d5036860fc7b6c24e865e7da59e SHA512 da95193b41c9776c8f352c1008c3f7e64713ccf3f474f603cb390437e8ccdf0c6a32f5093281294d62441d671b7148a9955c235a8474810c8c8b029eb97d1765
@@ -27,4 +28,5 @@ EBUILD binutils-libs-2.40-r5.ebuild 5004 BLAKE2B 11e3ecd10a1893194696e22783531a1
EBUILD binutils-libs-2.40-r7.ebuild 5004 BLAKE2B 5f552b445010448c07f537f3f01a09681e0e87f7430936069252a5ed52a27492bff2f1417b02b8841514f2a46285dcde01ca60dc3bd5d92ddff521eb420f1233 SHA512 15a566ab4dcc46dd51e1c92c72bbb4d8513c8e381d052401080d9780c85ffb232c6b5a95a66fbe2af68188512570084d2cb9201af85ae10c4f5f109a62dfa613
EBUILD binutils-libs-2.41-r2.ebuild 5177 BLAKE2B f221e61cb941b51f55852d8036633cf33ffda14796e9cdf7360160932edb5c0cb0d2c9b3eef03967e59a03b0fa51808d62017bc2a8a6c7185589cc9d9491e01e SHA512 b1cba4c023724f3327b330e15421410d5f4bbc662052d8ef440ab7f5e396e34a21c7cc709d69729a1e6603a0fef5241abd4f7f07602a0ae814a214959bcce2b7
EBUILD binutils-libs-2.41-r3.ebuild 5177 BLAKE2B b0da177b9fb442eeecd02ac103d2ea0ee8c991b89aa9ad3d920b4b88fafcb0d82d234eeaa5b14dc1addb3efd5915e94a1a530ab1ff58abc13097df8f1954a37e SHA512 25333ac83759d0918813aff7c3e124e36deefbd126944c4b5a2f0e61472489d12a456225116cc1ddc9d6df5621999aee3bad6a8b472fd21039bec77e905b6662
+EBUILD binutils-libs-2.41-r5.ebuild 5181 BLAKE2B 35fcb93e6f0989b456008055cff281a70997007374fd777860482074ba2db2fbbfc4510fbf5a36ae02519fd3d968a124eac7e8a5c04d4d70f0539473498c6eb8 SHA512 1de4e9f41d184bbd245d900bd3617e9de32e2ae2317e72d26937be09cc5b2ab4241df5a78d3d07b3284e6937dae82927b38b07d6fb16cfe8a2e2ecd7df422f9e
MISC metadata.xml 612 BLAKE2B ceaafd9fd1421e9f3993e003d0029c92a78054c7a2b90bd78afc05370ad19c931c6a7c150545cfb7d57165168e0fdaf3a00dde1905b328826a91cbc70d9548a8 SHA512 c8d33bb8d1c62c7e95758624ed0febbc9d40e9f141bfd280837b3207bcd771412158d71c0cb5548d60be0b236f6fe103621daf7efa8875191982859b566ffa8d
diff --git a/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild b/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild
new file mode 100644
index 000000000000..f237bb30918c
--- /dev/null
+++ b/sys-libs/binutils-libs/binutils-libs-2.41-r5.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PATCH_VER=5
+PATCH_DEV=dilfridge
+
+inherit libtool toolchain-funcs multilib-minimal
+
+MY_PN="binutils"
+MY_P="${MY_PN}-${PV}"
+PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
+PATCH_DEV=${PATCH_DEV:-dilfridge}
+
+DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages"
+HOMEPAGE="https://sourceware.org/binutils/"
+SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_P}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
+
+LICENSE="|| ( GPL-3 LGPL-3 )"
+
+SLOT="0/${PV%_p?}.0"
+
+IUSE="64-bit-bfd cet multitarget nls static-libs test"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ nls? ( sys-devel/gettext )
+ test? ( dev-util/dejagnu )
+"
+DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]"
+# Need a newer binutils-config that'll reset include/lib symlinks for us.
+RDEPEND="${DEPEND}
+ >=sys-devel/binutils-config-5
+"
+
+S="${WORKDIR}/${MY_P%_p?}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/bfd.h
+)
+
+src_prepare() {
+ if [[ -n ${PATCH_VER} ]] ; then
+ einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
+ eapply "${WORKDIR}/patch"/*.patch
+ fi
+
+ # Fix cross-compile relinking issue, bug #626402
+ elibtoolize
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # somehow libtool/configure is messed up and (custom patch at
+ # upstream?) and misdetects (basically assumes) nm can be called
+ # with -B arg -- can't run eautoreconf (fails), so patch up
+ # manually, this would break any target that needs -B to nm
+ sed -i -e 's/lt_cv_path_NM="$tmp_nm -B"/lt_cv_path_NM="$tmp_nm"/' \
+ libctf/configure || die
+ fi
+
+ # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
+ # Avoid really confusing logs from subconfigure spam, makes logs far
+ # more legible.
+ export MAKEOPTS="--output-sync=line ${MAKEOPTS}"
+
+ default
+}
+
+pkgversion() {
+ printf "Gentoo ${PVR}"
+ [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}"
+}
+
+multilib_src_configure() {
+ local myconf=(
+ # portage's econf() does not detect presence of --d-d-t
+ # because it greps only top-level ./configure. But not
+ # libiberty's or bfd's configure.
+ --disable-dependency-tracking
+ --disable-silent-rules
+ --enable-obsolete
+ --enable-shared
+ --enable-threads
+ # Newer versions (>=2.24) make this an explicit option. #497268
+ --enable-install-libiberty
+ --disable-werror
+ --with-bugurl="https://bugs.gentoo.org/"
+ --with-pkgversion="$(pkgversion)"
+ $(use_enable static-libs static)
+ # The binutils eclass enables this flag for all bi-arch builds,
+ # but other tools often don't care about that support. Put it
+ # beyond a flag if people really want it, but otherwise leave
+ # it disabled as it can slow things down on 32bit arches. #438522
+ $(use_enable 64-bit-bfd)
+ # This only disables building in the zlib subdir.
+ # For binutils itself, it'll use the system version. #591516
+ --without-zlib
+ --with-system-zlib
+ # We only care about the libs, so disable programs. #528088
+ --disable-{binutils,etc,ld,gas,gold,gprof,gprofng}
+ # Disable modules that are in a combined binutils/gdb tree. #490566
+ --disable-{gdb,libdecnumber,readline,sim}
+ # Strip out broken static link flags.
+ # https://gcc.gnu.org/PR56750
+ --without-stage1-ldflags
+ # We pull in all USE-flags that change ABI in an incompatible
+ # way. #666100
+ # USE=multitarget change size of global arrays
+ # USE=64-bit-bfd changes data structures of exported API
+ --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def)
+
+ # avoid automagic dependency on (currently prefix) systems
+ # systems with debuginfod library, bug #754753
+ --without-debuginfod
+
+ # Revisit if it's useful, we do have binutils[zstd] though
+ --without-zstd
+
+ # Allow user to opt into CET for host libraries.
+ # Ideally we would like automagic-or-disabled here.
+ # But the check does not quite work on i686: bug #760926.
+ $(use_enable cet)
+ )
+
+ # mips can't do hash-style=gnu ...
+ if [[ $(tc-arch) != mips ]] ; then
+ myconf+=( --enable-default-hash-style=gnu )
+ fi
+
+ use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
+
+ use nls \
+ && myconf+=( --without-included-gettext ) \
+ || myconf+=( --disable-nls )
+
+ if [[ ${CHOST} == *-darwin* ]] && use nls ; then
+ # fix underlinking in opcodes
+ sed -i -e 's/@SHARED_LDFLAGS@/@SHARED_LDFLAGS@ -lintl/' \
+ "${S}"/opcodes/Makefile.in || die
+ fi
+
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
+
+ # Prevent makeinfo from running as we don't build docs here.
+ # bug #622652
+ sed -i \
+ -e '/^MAKEINFO/s:=.*:= true:' \
+ Makefile || die
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ # Provided by dev-debug/gdb instead
+ rm "${ED}"/usr/share/info/sframe-spec.info || die
+
+ # Provide libiberty.h directly.
+ dosym libiberty/libiberty.h /usr/include/libiberty.h
+}
+
+multilib_src_install_all() {
+ use static-libs || find "${ED}"/usr -name '*.la' -delete
+}
diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest
index ddfbf5af2899..76f42cb685e6 100644
--- a/sys-libs/compiler-rt-sanitizers/Manifest
+++ b/sys-libs/compiler-rt-sanitizers/Manifest
@@ -15,4 +15,5 @@ EBUILD compiler-rt-sanitizers-18.0.0.9999.ebuild 6270 BLAKE2B fc7f9fac67dbafe307
EBUILD compiler-rt-sanitizers-18.0.0_pre20240106.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21
EBUILD compiler-rt-sanitizers-18.0.0_pre20240113.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21
EBUILD compiler-rt-sanitizers-18.0.0_pre20240120.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21
+EBUILD compiler-rt-sanitizers-19.0.0.9999.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21
MISC metadata.xml 1412 BLAKE2B 75675507000fa6a6b8182e6b45a08a2716ae7fb9a7e3428dc8420464e4c1d1bdb5bea62cc2f553c579de5a4faa752b35cb3529d980fb07a055ff4ddf6e752707 SHA512 f05ea5168b923db72f4f5b53e9b748ebbcdae9eff09d86323313055933b47fc0089e1b2d73cd997d73dcfb2dca032344955816425fbddc09d27ca751463aadbb
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-19.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..2ab1ae07e4c7
--- /dev/null
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-19.0.0.9999.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1
+
+DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +libfuzzer +memprof +orc +profile +xray"
+# sanitizer targets, keep in sync with config-ix.cmake
+# NB: ubsan, scudo deliberately match two entries
+SANITIZER_FLAGS=(
+ asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo
+ shadowcallstack gwp-asan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+ test? (
+ cfi? ( ubsan )
+ gwp-asan? ( scudo )
+ )
+"
+RESTRICT="
+ !clang? ( test )
+ !test? ( test )
+"
+
+DEPEND="
+ sys-devel/llvm:${LLVM_MAJOR}
+ virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+ clang? ( sys-devel/clang )
+ elibc_glibc? ( net-libs/libtirpc )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ sys-libs/compiler-rt:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
+LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+check_space() {
+ if use test; then
+ local CHECKREQS_DISK_BUILD=11G
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+ local flag
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if ! use "${flag}"; then
+ local cmake_flag=${flag/-/_}
+ sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \
+ cmake/config-ix.cmake || die
+ fi
+ done
+
+ # TODO: fix these tests to be skipped upstream
+ if use asan && ! use profile; then
+ rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die
+ fi
+ if use ubsan && ! use cfi; then
+ > test/cfi/CMakeLists.txt || die
+ fi
+ # hangs, sigh
+ rm test/tsan/getline_nohang.cpp || die
+
+ llvm.org_src_prepare
+}
+
+src_configure() {
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/compiler-rt_build
+
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ local flag want_sanitizer=OFF
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if use "${flag}"; then
+ want_sanitizer=ON
+ break
+ fi
+ done
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ # use a build dir structure consistent with install
+ # this makes it possible to easily deploy test-friendly clang
+ -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ # builtins & crt installed by sys-libs/compiler-rt
+ -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
+ -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
+ -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
+ -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
+ -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ # they are created during src_test()
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+
+ # same flags are passed for build & tests, so we need to strip
+ # them down to a subset supported by clang
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++ \
+ strip-unsupported-flags
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX
+ # This disables i386 for SDK >= 10.15
+ # Will error if has_use tsan and SDK < 10.12
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ cmake_src_configure
+
+ if use test; then
+ local sys_dir=( "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/lib/* )
+ [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}"
+ [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}"
+
+ # copy clang over since resource_dir is located relatively to binary
+ # therefore, we can put our new libraries in it
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAJOR}/{bin,$(get_libdir)},clang/${LLVM_MAJOR}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
+ cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
+ "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+ cp "${sys_dir}"/*builtins*.a \
+ "${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/lib/${sys_dir##*/}/" || die
+ # we also need LLVMgold.so for gold-based tests
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/ || die
+ fi
+ fi
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ # disable sandbox to have it stop clobbering LD_PRELOAD
+ local -x SANDBOX_ON=0
+ # wipe LD_PRELOAD to make ASAN happy
+ local -x LD_PRELOAD=
+
+ cmake_build check-all
+}
diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest
index 05980c992734..88d1799f957a 100644
--- a/sys-libs/compiler-rt/Manifest
+++ b/sys-libs/compiler-rt/Manifest
@@ -18,4 +18,5 @@ EBUILD compiler-rt-18.0.0.9999.ebuild 5100 BLAKE2B abb00661c56b19674be9cc974c0a4
EBUILD compiler-rt-18.0.0_pre20240106.ebuild 5100 BLAKE2B abb00661c56b19674be9cc974c0a42efa9e53ae4384b11042981561c276c0fedc981e5458aab9182bec29ae4a6cf33f178a3b3607af0a58f7cd6c68f5e73be36 SHA512 23811d805e6657e11c3914235ebe2a8df2aa0c28b66054125626f7450f02501340d16d6e3096caa0c5968f6e8f36644eae68d45dfb8a1717396f9b54627111b7
EBUILD compiler-rt-18.0.0_pre20240113.ebuild 5100 BLAKE2B abb00661c56b19674be9cc974c0a42efa9e53ae4384b11042981561c276c0fedc981e5458aab9182bec29ae4a6cf33f178a3b3607af0a58f7cd6c68f5e73be36 SHA512 23811d805e6657e11c3914235ebe2a8df2aa0c28b66054125626f7450f02501340d16d6e3096caa0c5968f6e8f36644eae68d45dfb8a1717396f9b54627111b7
EBUILD compiler-rt-18.0.0_pre20240120.ebuild 5100 BLAKE2B abb00661c56b19674be9cc974c0a42efa9e53ae4384b11042981561c276c0fedc981e5458aab9182bec29ae4a6cf33f178a3b3607af0a58f7cd6c68f5e73be36 SHA512 23811d805e6657e11c3914235ebe2a8df2aa0c28b66054125626f7450f02501340d16d6e3096caa0c5968f6e8f36644eae68d45dfb8a1717396f9b54627111b7
+EBUILD compiler-rt-19.0.0.9999.ebuild 5100 BLAKE2B abb00661c56b19674be9cc974c0a42efa9e53ae4384b11042981561c276c0fedc981e5458aab9182bec29ae4a6cf33f178a3b3607af0a58f7cd6c68f5e73be36 SHA512 23811d805e6657e11c3914235ebe2a8df2aa0c28b66054125626f7450f02501340d16d6e3096caa0c5968f6e8f36644eae68d45dfb8a1717396f9b54627111b7
MISC metadata.xml 416 BLAKE2B 79a58249c94b605ba57f346c4e05b43853cf6cfb8bb65a4f4e3c44039cccfdb83dd31bfaaaf398bcbdc393efabdfc7ed186fe775976c46227e74decf2c8f4fb2 SHA512 ce30c79a575e5933effb1fec36f9a4ef02d9f97f312feb39c55a88cbda9a1bae1d7af2ec4ad5f66212cbb2cdbfb26f1a436689f16f410153c9d65eb010264c48
diff --git a/sys-libs/compiler-rt/compiler-rt-19.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..364ccbcca438
--- /dev/null
+++ b/sys-libs/compiler-rt/compiler-rt-19.0.0.9999.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake crossdev flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang (built-in part)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+RESTRICT="!test? ( test ) !clang? ( test )"
+
+DEPEND="
+ sys-devel/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? ( sys-devel/clang )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && ! tc-is-clang; then
+ ewarn "Building using a compiler other than clang may result in broken atomics"
+ ewarn "library. Enable USE=clang unless you have a very good reason not to."
+ fi
+}
+
+pkg_setup() {
+ # Darwin Prefix builds do not have llvm installed yet, so rely on
+ # bootstrap-prefix to set the appropriate path vars to LLVM instead
+ # of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
+ LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ fi
+
+ if target_is_not_host || tc-is-cross-compiler ; then
+ # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
+ CHOST=${CTARGET} strip-unsupported-flags
+ # overrides host docs otherwise
+ DOCS=()
+ fi
+ python-any-r1_pkg_setup
+}
+
+test_compiler() {
+ target_is_not_host && return
+ $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/${P}_build
+
+ if use clang && ! is_crosspkg; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ if ! is_crosspkg && ! test_compiler ; then
+ local nolib_flags=( -nodefaultlibs -lc )
+
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ elif test_compiler "${nolib_flags[@]}" -nostartfiles; then
+ # Avoiding -nostartfiles earlier on for bug #862540,
+ # and set available entry symbol for bug #862798.
+ nolib_flags+=( -nostartfiles -emain )
+
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64 && ! target_is_not_host; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if is_crosspkg; then
+ # Needed to target built libc headers
+ export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include"
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+
+ # Without this, compiler-rt install location is not unique
+ # to target triples, only to architecture.
+ # Needed if you want to target multiple libcs for one arch.
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
+
+ -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}"
+ -DCMAKE_C_COMPILER_TARGET="${CTARGET}"
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ )
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX.
+ # This disables i386 for SDK >= 10.15
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4cf74eb3b33e..d9afd4e4ccdf 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -16,4 +16,5 @@ EBUILD libcxx-18.0.0.9999.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a6563
EBUILD libcxx-18.0.0_pre20240106.ebuild 5501 BLAKE2B acd2a9e00abb864ca387c95bb7d2acce2b5b3086eba1a9b5cb4c89ea37774170ba39708c8e258d07e214f6166b6f2c4391c7b55e621326fa410346c5c3a32463 SHA512 8fc3dbe5f1798fd69742802396787fc05aee5bf1f9e41f1369e84b3b564b987f9f3a76b0091ad780a8648e54d14acaf404e8ad89b6bef35c890caad0d9e3d9d2
EBUILD libcxx-18.0.0_pre20240113.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
EBUILD libcxx-18.0.0_pre20240120.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
+EBUILD libcxx-19.0.0.9999.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
MISC metadata.xml 598 BLAKE2B b7a60449e0d8e4e7605ec203dfaa45b17a265b024e21a3bcfe05a3aeb6c3d19a1d2a218cb1f9ac9ed52296f0d6e723fed251f364341fb70cbd91b747962db580 SHA512 a23f912efff52c4687767023da826ace8c6e5dcd5e69ece86aabbea99da89e48ba81cdc292f03193e2e8a05743e62ebf4d4735d038e0cc4b42714fa277569335
diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
+ toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="+clang +libcxxabi +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ libcxxabi? (
+ ~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
+ )
+ !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+DEPEND="
+ ${RDEPEND}
+ sys-devel/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ dev-debug/gdb[python]
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ # Darwin Prefix builds do not have llvm installed yet, so rely on
+ # bootstrap-prefix to set the appropriate path vars to LLVM instead
+ # of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
+ LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ fi
+ python-any-r1_pkg_setup
+
+ if ! use libcxxabi && ! tc-is-gcc ; then
+ eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
+ eerror "compilers are not supported. Please set CC=gcc and CXX=g++"
+ eerror "and try again."
+ die
+ fi
+}
+
+src_prepare() {
+ # hanging tests
+ # https://github.com/llvm/llvm-project/issues/73791
+ rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_* || die
+ rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.*_equals* || die
+
+ cmake_src_prepare
+}
+
+test_compiler() {
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ # note: we need to do this before multilib kicks in since it will
+ # alter the CHOST
+ local cxxabi cxxabi_incs
+ if use libcxxabi; then
+ cxxabi=system-libcxxabi
+ cxxabi_incs="${EPREFIX}/usr/include/c++/v1"
+ else
+ local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
+ cxxabi=libsupc++
+ cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ # bootstrap: cmake is unhappy if compiler can't link to stdlib
+ local nolib_flags=( -nodefaultlibs -lc )
+ if ! test_compiler; then
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES=libcxx
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXX_CXX_ABI=${cxxabi}
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
+ # we're using our own mechanism for generating linker scripts
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=$(usex test)
+ -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+ )
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_src_compile
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ gen_shared_ldscript
+ use static-libs && gen_static_ldscript
+ fi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxx
+}
+
+multilib_src_install() {
+ cmake_src_install
+ # since we've replaced libc++.{a,so} with ldscripts, now we have to
+ # install the extra symlinks
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ dolib.so lib/libc++_shared.so
+ use static-libs && dolib.a lib/libc++_static.a
+ fi
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+gen_static_ldscript() {
+ # Move it first.
+ mv lib/libc++{,_static}.a || die
+ # Generate libc++.a ldscript for inclusion of its dependencies so that
+ # clang++ -stdlib=libc++ -static works out of the box.
+ local deps=(
+ libc++_static.a
+ $(usex libcxxabi libc++abi.a libsupc++.a)
+ )
+ # On Linux/glibc it does not link without libpthread or libdl. It is
+ # fine on FreeBSD.
+ use elibc_glibc && deps+=( libpthread.a libdl.a )
+
+ gen_ldscript "${deps[*]}" > lib/libc++.a || die
+}
+
+gen_shared_ldscript() {
+ # Move it first.
+ mv lib/libc++{,_shared}.so || die
+ local deps=(
+ libc++_shared.so
+ # libsupc++ doesn't have a shared version
+ $(usex libcxxabi libc++abi.so libsupc++.a)
+ )
+
+ gen_ldscript "${deps[*]}" > lib/libc++.so || die
+}
diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest
index 1deaa0e1053d..ff1daed35779 100644
--- a/sys-libs/libcxxabi/Manifest
+++ b/sys-libs/libcxxabi/Manifest
@@ -14,4 +14,5 @@ EBUILD libcxxabi-18.0.0.9999.ebuild 2957 BLAKE2B d4072cab29cc5452165b99dfc51c6b6
EBUILD libcxxabi-18.0.0_pre20240106.ebuild 2857 BLAKE2B e0c737c68e94b697e39977e61807b978643626b4a8e86720177cc0ca5e8edfec61d96698fb3acac6f6420bcf8319e26ffade15ee0f35cc8aaa864affd0b2ff42 SHA512 3825c3b0c104950135ee87e6bc34418718cbc6a95ad545e132a264e7f1be6c42f0eaafd9a1773cf0d125cb71bd543324cb37e7ab00780e92f5e55aa24da38631
EBUILD libcxxabi-18.0.0_pre20240113.ebuild 2957 BLAKE2B d4072cab29cc5452165b99dfc51c6b651e385e54e6e070ce8d7360e5418dc00c4f0263965a47220b3289d82f81de012ddf41b5b5c04700900084342d25c40d58 SHA512 c3f7718792b7539926b2754d49092b704f0e3a1ef0455f0d345abca187ede31e105ba2980e0e4d338b5451123aab156c78f43b0ee7834d421172ee3e1002edff
EBUILD libcxxabi-18.0.0_pre20240120.ebuild 2957 BLAKE2B d4072cab29cc5452165b99dfc51c6b651e385e54e6e070ce8d7360e5418dc00c4f0263965a47220b3289d82f81de012ddf41b5b5c04700900084342d25c40d58 SHA512 c3f7718792b7539926b2754d49092b704f0e3a1ef0455f0d345abca187ede31e105ba2980e0e4d338b5451123aab156c78f43b0ee7834d421172ee3e1002edff
+EBUILD libcxxabi-19.0.0.9999.ebuild 2957 BLAKE2B d4072cab29cc5452165b99dfc51c6b651e385e54e6e070ce8d7360e5418dc00c4f0263965a47220b3289d82f81de012ddf41b5b5c04700900084342d25c40d58 SHA512 c3f7718792b7539926b2754d49092b704f0e3a1ef0455f0d345abca187ede31e105ba2980e0e4d338b5451123aab156c78f43b0ee7834d421172ee3e1002edff
MISC metadata.xml 438 BLAKE2B 0a830a06a53a6cdaf138ad7620fe366fae05c1c1451267d6a58caf7da5ce8f5a26d302fab53b9460920074ab5a65991d3bd24fde087809e8dc12188dd94c7676 SHA512 d53e13c497569636fb453a159c5ca5ddfabf8e5debd5f92e5149c52d54c876753842ab73293d6d08e2d9b279363b4f0c743eed3a5027a61246c6b60496be8e87
diff --git a/sys-libs/libcxxabi/libcxxabi-19.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..2c496689828b
--- /dev/null
+++ b/sys-libs/libcxxabi/libcxxabi-19.0.0.9999.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
+ toolchain-funcs
+
+DESCRIPTION="Low level support for a standard C++ library"
+HOMEPAGE="https://libcxxabi.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="+clang +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+# in 15.x, cxxabi.h is moving from libcxx to libcxxabi
+RDEPEND+="
+ !<sys-libs/libcxx-15
+"
+DEPEND="
+ ${RDEPEND}
+ sys-devel/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake )
+LLVM_TEST_COMPONENTS=( llvm/utils/llvm-lit )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix
+ # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup.
+ if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
+ LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ fi
+ python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBCXXABI_ENABLE_SHARED=ON
+ -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXXABI_INCLUDE_TESTS=$(usex test)
+ -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt}
+
+ # upstream is omitting standard search path for this
+ # probably because gcc & clang are bundling their own unwind.h
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_build cxxabi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxxabi
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" cmake_build install-cxxabi
+}
diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest
index 30c3833facb6..78abe712de04 100644
--- a/sys-libs/libomp/Manifest
+++ b/sys-libs/libomp/Manifest
@@ -15,4 +15,5 @@ EBUILD libomp-18.0.0.9999.ebuild 4142 BLAKE2B 8fd0abaecb796b94a750c09ea99fcb7900
EBUILD libomp-18.0.0_pre20240106.ebuild 3910 BLAKE2B 7d42af77f9a57c5d38402eadd153ea32d9349c67428bdbf7941fc5aa093d7f4db37d38f77f0c9f20f45a04c809eac577b650a7608c0752415fc1a3d6edd8bc6d SHA512 fcb0c040fd64054d43e9ef7ffedba057d653978d30019b9fff5e7221abd5fea6205d85115ed320d098d069cc2b7a760486d36239653b60a784097ae95926a865
EBUILD libomp-18.0.0_pre20240113.ebuild 4142 BLAKE2B 8fd0abaecb796b94a750c09ea99fcb790095ff72b5b83e53467d04e2e8bbfa18bc4a03ed628f87eb356e7269ddecb21e4cab47bb3a1e6a4a0d0a1bfa06fcabde SHA512 c5208e853dc96ac20320fce2f5a9baf514c96b75492c12ea7fe7c8fa24ebb7939c952c660482e59138e19d2ba23bf2327270cf96678742b6eeb50f5cc61657ee
EBUILD libomp-18.0.0_pre20240120.ebuild 4142 BLAKE2B 8fd0abaecb796b94a750c09ea99fcb790095ff72b5b83e53467d04e2e8bbfa18bc4a03ed628f87eb356e7269ddecb21e4cab47bb3a1e6a4a0d0a1bfa06fcabde SHA512 c5208e853dc96ac20320fce2f5a9baf514c96b75492c12ea7fe7c8fa24ebb7939c952c660482e59138e19d2ba23bf2327270cf96678742b6eeb50f5cc61657ee
+EBUILD libomp-19.0.0.9999.ebuild 4142 BLAKE2B 8fd0abaecb796b94a750c09ea99fcb790095ff72b5b83e53467d04e2e8bbfa18bc4a03ed628f87eb356e7269ddecb21e4cab47bb3a1e6a4a0d0a1bfa06fcabde SHA512 c5208e853dc96ac20320fce2f5a9baf514c96b75492c12ea7fe7c8fa24ebb7939c952c660482e59138e19d2ba23bf2327270cf96678742b6eeb50f5cc61657ee
MISC metadata.xml 883 BLAKE2B 127e896b82a49633a6866b33ca776ebe2dd149a5d04da4484a53186f219a85db0ab9d826bc1cc61d4df9fa54c9bcc546be070a0b28985174925fd947aa09cca2 SHA512 dc32cae01401feb93eede6506b3955c766ff19b44976fcc67277559b23ac151993377daeed9ba83b2dd71dbdeea330cd1208dcb0c9c5f56be270883b31f9b15f
diff --git a/sys-libs/libomp/libomp-19.0.0.9999.ebuild b/sys-libs/libomp/libomp-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..1d41ecc498a1
--- /dev/null
+++ b/sys-libs/libomp/libomp-19.0.0.9999.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit flag-o-matic cmake-multilib linux-info llvm llvm.org
+inherit python-single-r1 toolchain-funcs
+
+DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+IUSE="
+ +debug gdb-plugin hwloc offload ompt test
+ llvm_targets_AMDGPU llvm_targets_NVPTX
+"
+REQUIRED_USE="
+ gdb-plugin? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ gdb-plugin? ( ${PYTHON_DEPS} )
+ hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
+ offload? (
+ dev-libs/libffi:=[${MULTILIB_USEDEP}]
+ ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}]
+ llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= )
+ )
+"
+# tests:
+# - dev-python/lit provides the test runner
+# - sys-devel/llvm provide test utils (e.g. FileCheck)
+# - sys-devel/clang provides the compiler to run tests
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-lang/perl
+ offload? (
+ llvm_targets_AMDGPU? ( sys-devel/clang )
+ llvm_targets_NVPTX? ( sys-devel/clang )
+ virtual/pkgconfig
+ )
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+ sys-devel/clang
+ )
+"
+
+LLVM_COMPONENTS=( openmp cmake llvm/include )
+llvm.org_set_globals
+
+kernel_pds_check() {
+ if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then
+ local CONFIG_CHECK="~!SCHED_PDS"
+ local ERROR_SCHED_PDS="\
+PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11
+< 4.14-pf9) do not implement sched_yield() call which may result in horrible
+performance problems with libomp. If you are using one of the specified
+kernel versions, you may want to disable the PDS scheduler."
+
+ check_extra_config
+ fi
+}
+
+pkg_pretend() {
+ kernel_pds_check
+}
+
+pkg_setup() {
+ use offload && LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ if use gdb-plugin || use test; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+multilib_src_configure() {
+ # LTO causes issues in other packages building, #870127
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local build_omptarget=OFF
+ # upstream disallows building libomptarget when sizeof(void*) != 8
+ if use offload &&
+ "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} -c -x c - -o /dev/null \
+ <<-EOF &>/dev/null
+ int test[sizeof(void *) == 8 ? 1 : -1];
+ EOF
+ then
+ build_omptarget=ON
+ fi
+
+ local libdir="$(get_libdir)"
+ local mycmakeargs=(
+ -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}"
+
+ -DLIBOMP_USE_HWLOC=$(usex hwloc)
+ -DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin)
+ -DLIBOMP_OMPT_SUPPORT=$(usex ompt)
+
+ -DOPENMP_ENABLE_LIBOMPTARGET=${build_omptarget}
+
+ # do not install libgomp.so & libiomp5.so aliases
+ -DLIBOMP_INSTALL_ALIASES=OFF
+ # disable unnecessary hack copying stuff back to srcdir
+ -DLIBOMP_COPY_EXPORTS=OFF
+ # prevent trying to access the GPU
+ -DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND
+ )
+
+ if [[ ${build_omptarget} == ON ]]; then
+ local ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ local ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ mycmakeargs+=(
+ -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+ -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+ )
+
+ if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
+ mycmakeargs+=(
+ -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=$(usex llvm_targets_AMDGPU)
+ -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=$(usex llvm_targets_NVPTX)
+ )
+ else
+ mycmakeargs+=(
+ -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF
+ -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF
+ )
+ fi
+ fi
+
+ use test && mycmakeargs+=(
+ # this project does not use standard LLVM cmake macros
+ -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit"
+ -DOPENMP_LIT_ARGS="$(get_lit_flags)"
+
+ -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")"
+ -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")"
+ )
+ addpredict /dev/nvidiactl
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-libomp
+}
diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest
index acb6a14a9656..a5877f04cb9c 100644
--- a/sys-libs/llvm-libunwind/Manifest
+++ b/sys-libs/llvm-libunwind/Manifest
@@ -14,4 +14,5 @@ EBUILD llvm-libunwind-18.0.0.9999.ebuild 3355 BLAKE2B ed26a365a02c8fd7c5432b0386
EBUILD llvm-libunwind-18.0.0_pre20240106.ebuild 3355 BLAKE2B 9082db8b72435be9eb39bd2ed250ed6320f657d5ada1f56e3ae39538e54ff53603a33dd99c471d4cee1db52321df2bbf6844d240bab344ffe8e8b2735989f0b7 SHA512 8544a067dbffb9e4d58e16c77072d5eef1170212ff311aa596ab7619023d727907d7060f61e5dea0a890cdc1334b616c89b1ac7b5c254e3a9163273aab487ca2
EBUILD llvm-libunwind-18.0.0_pre20240113.ebuild 3355 BLAKE2B 9082db8b72435be9eb39bd2ed250ed6320f657d5ada1f56e3ae39538e54ff53603a33dd99c471d4cee1db52321df2bbf6844d240bab344ffe8e8b2735989f0b7 SHA512 8544a067dbffb9e4d58e16c77072d5eef1170212ff311aa596ab7619023d727907d7060f61e5dea0a890cdc1334b616c89b1ac7b5c254e3a9163273aab487ca2
EBUILD llvm-libunwind-18.0.0_pre20240120.ebuild 3355 BLAKE2B 9082db8b72435be9eb39bd2ed250ed6320f657d5ada1f56e3ae39538e54ff53603a33dd99c471d4cee1db52321df2bbf6844d240bab344ffe8e8b2735989f0b7 SHA512 8544a067dbffb9e4d58e16c77072d5eef1170212ff311aa596ab7619023d727907d7060f61e5dea0a890cdc1334b616c89b1ac7b5c254e3a9163273aab487ca2
+EBUILD llvm-libunwind-19.0.0.9999.ebuild 3355 BLAKE2B 9082db8b72435be9eb39bd2ed250ed6320f657d5ada1f56e3ae39538e54ff53603a33dd99c471d4cee1db52321df2bbf6844d240bab344ffe8e8b2735989f0b7 SHA512 8544a067dbffb9e4d58e16c77072d5eef1170212ff311aa596ab7619023d727907d7060f61e5dea0a890cdc1334b616c89b1ac7b5c254e3a9163273aab487ca2
MISC metadata.xml 438 BLAKE2B 2a36fbbc59e137056029c62aef6d167d9c82531c2582d7bad5cb13cc36e5c4c9518ffe8c56d06bbcfd97ad22eda71a8b776f3984195f53d06cf45659b438dc00 SHA512 4f18b054072d00e5440faa31a59f9ef587d035b5f25e30913f0b1449debee967fa794fae2548e87db3fb2177ce853ab075e1f11f3cc763f5d7fdf06147108845
diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-19.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..73ad1389deb4
--- /dev/null
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-19.0.0.9999.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
+ toolchain-funcs
+
+DESCRIPTION="C++ runtime stack unwinder from LLVM"
+HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="+clang +debug static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !sys-libs/libunwind
+"
+DEPEND="
+ sys-devel/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake )
+LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local libdir=$(get_libdir)
+
+ # https://github.com/llvm/llvm-project/issues/56825
+ # also separately bug #863917
+ filter-lto
+
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ # link to compiler-rt
+ # https://github.com/gentoo/gentoo/pull/21516
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ # Respect upstream build type assumptions (bug #910436) where they do:
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=ON =>
+ # -DCMAKE_BUILD_TYPE=DEBUG => -UNDEBUG
+ # -DCMAKE_BUILD_TYPE!=debug => -DNDEBUG
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=OFF =>
+ # -UNDEBUG
+ # See also https://github.com/llvm/llvm-project/issues/86#issuecomment-1649668826.
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libunwind"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
+ -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+ -DLIBUNWIND_INCLUDE_TESTS=$(usex test)
+ -DLIBUNWIND_INSTALL_HEADERS=ON
+
+ # support non-native unwinding; given it's small enough,
+ # enable it unconditionally
+ -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON
+
+ # avoid dependency on libgcc_s if compiler-rt is used
+ -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
+ )
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx"
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
+
+ -DLIBCXXABI_LIBDIR_SUFFIX=
+ -DLIBCXXABI_ENABLE_SHARED=OFF
+ -DLIBCXXABI_ENABLE_STATIC=ON
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+ -DLIBCXXABI_INCLUDE_TESTS=OFF
+
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=OFF
+ -DLIBCXX_ENABLE_STATIC=ON
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-unwind
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-unwind
+}
diff --git a/sys-libs/zlib/Manifest b/sys-libs/zlib/Manifest
index 9a95ba44e00d..14c96f4fb9fb 100644
--- a/sys-libs/zlib/Manifest
+++ b/sys-libs/zlib/Manifest
@@ -1,10 +1,16 @@
AUX zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch 3209 BLAKE2B 26e9fd2d68534c6b2d5d88c5dc8150d63dede949ab71d454d94c13736c3f02c8e01201d39ccaa7fe189db0a272a315aa01a6a214f0cc7e25030b2c96b5fbe0ce SHA512 e5db2181e21d6fe7ef4d36b99fd80f4df576dabb7cbf3d205b30abd6760fdc33efaa3668fd927efe2c27a019c419b769b721760d9eb2f10d5d6955adf7a751bf
AUX zlib-1.2.11-minizip-drop-crypt-header.patch 997 BLAKE2B a964dfb26d05045507cb2ebf1154b890782d9952288627dd5093eeeaed9265a6041922e9fef378333ad3b9ac2333d692b06db1d6425df25d6062b9fc42ec8c50 SHA512 158c4b711e8afc248cbd55f2057dede18540ad35ec1a47d0cfb0fe9bf10b1507bb1b4525badcc0a8b6505062d838ee4fb2d4ebfbf9c9d1694336a704bc0b690e
AUX zlib-1.2.13-CVE-2023-45853.patch 1657 BLAKE2B d18588e24ec87454f4056751756881cfb3632ab24ace37dbd1a173e4914a20d9101cecc505251a9635c034f3ee99e31532fe95fe273df92fc83b0f9e0691a473 SHA512 38d801e2072cc9f6dacf25704cf935e7ec75f006ecda6933ea1667fce8e5fe154ed5d0b20a334a9c55b4d8ea9a8e7e466aa93fda5de3f409f2ccf8d5fa938bd1
-AUX zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch 1870 BLAKE2B f0dd2ae5ebcbf0c7fe44d4362690bcb852fa61fc081645050cddb9af187c28e3f3cec6d3173d8d2be9912bc5fc0d0933e9840c0e6b11ccba663d69f81ef41bd3 SHA512 3b4d695d307c407d58921c6426971e13f0aba33447a3ceb23724d7c3e75a1a85f5d962fa8321e6ca4ff6217819e36cf7b96d8c1df214fc2c79ba2e2f99607712
+AUX zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch 1944 BLAKE2B eb6f1d7dbc44905b462a9181fb3e213f18f515786cbba3ef182d76a1cf94d1b4d7220a7abde3f3f8cad25f3651025be35f1c99e4e4099314c4a47852979a586f SHA512 3a3577ce0ffb168685af9e6f77b94cde5669765273ec63be9a777f74431a2438866c6d0db9a5cd32246bd317eab5dd63f410bafb3312d3bc1f3b8f6c83135786
AUX zlib-1.2.13-use-LDFLAGS-in-configure.patch 2650 BLAKE2B 3cfae2b0658534aab64f7969d86307bf96724f4ec847e378c2f87b6b9e43c00bae96845d1c3405d5d913d2005e9f18f53923329ad1cfd73e9395f94d035e275f SHA512 77499165a934d171c7d4bbd177f3cfa2e57db8923c61222a48734f8d3879245ed91fe2b900b3a429db89e098a4d4fcd9f3b6f2c1c3a86f761e1b33b56a73987d
+AUX zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch 685 BLAKE2B ce9e9898050d123026fdb7739bc8e31af0eb40ab45d6ca91d25330011e014f68612ab1e680adbd14ecf0286a41f1674814c9ffff9b112bcbd859ddfb147a8e98 SHA512 de0528191bcd18ec42901291bdfb931f269c5294e6223062aeddd47466a67bd8176a84dd30f1570fe8a65b90ba5b5fce3050813789edaa66aeaad6e823a182d2
+AUX zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch 2940 BLAKE2B ad0cd287eeb1a78a220063966138dc618ce010c30587c84c5f18f1690814c30ecebc7e28c310d9570015b8da8b5997f99dccdf4aa8665243ab172e2c1ba74c93 SHA512 28ca95ad2e95ab0cef6a0c728ff0fd94ab9bdce445de1dd40531ceb613b11bdfb7b519a8301d6ed529b76df04d561a022595de1e880bd8e00538c71384148f91
+AUX zlib-1.3.1-use-LDFLAGS-in-configure.patch 2698 BLAKE2B cbb28d07c44edbf1403792f147aa20c87d3954c1724c6c87f3c099a2fb1855163a1aeea0d9e67b5e8b868d404080b6ff434ab8c5ef3cfa966281579556d186ea SHA512 5ed35372202f59032ed2929ae253b81c9e4362816e7adabae68312c20c9675f9fa9749b5f8a247c77d2f415d1592bcc229d7ddca431b1931c78e3368a5d6848e
+DIST zlib-1.3.1.tar.xz 1305740 BLAKE2B 42d109223801a493de6d52e7343403d7fc3234a6ca816425fe41ac9c18019b01b93841acd28a235e99f2256a6a17f93624e96b2ddb58d588c8190a6bedb82910 SHA512 1e8e70b362d64a233591906a1f50b59001db04ca14aaffad522198b04680be501736e7d536b4191e2f99767e7001ca486cd802362cca2be05d5d409b83ea732d
+DIST zlib-1.3.1.tar.xz.asc 235 BLAKE2B b135336ef55a0c4b8e219e760bbe04bad082c405246ce51a2b373c3dfba0b05cb1e6f539363972f4cabd8290be1db1fdb2fc47fb562c6c612a08d9393065f75b SHA512 d181e9772a8139b3b2f3f42b994a65a966101db35eb46b5c84021c5eb0cc3b4511eb5e9172c509483bd9f7015794b15cfca78ed0959bd91e8216dc12c1c6e668
DIST zlib-1.3.tar.xz 1295740 BLAKE2B 5fe0f32339267348a313f23a21e9588bdb180b7415be303c85f5f169444d019e5f176ef7322f6e64297c360acc2a6041c50e2f66d1860e5c392d8970990f176a SHA512 3868ac4da5842dd36c9dad794930675b9082ce15cbd099ddb79c0f6bd20a24aa8f33a123f378f26fe0ae02d91f31f2994dccaac565cedeaffed7b315e6ded2a2
DIST zlib-1.3.tar.xz.asc 235 BLAKE2B 5fe6ce952699a19e848d0a6e6c3622f934340068fdcd29afb35c74f3c8ae66d04de644800d10b38c743bb2f4852ba28f1a97313cb0e6e6f9b804cbca5289ebbb SHA512 8f3ce5c21938d6abc7e121d2939648a0ce2dc01a8ab4eb001d44eb159935dd0b4f5b5e371b3ecfc0ceb23689e2cefe002065968908503cde15b1bba08aff9db6
EBUILD zlib-1.3-r2.ebuild 4621 BLAKE2B 58c6f3a494919167a0314e47c3af83ba2aad965c4180e6943455a87500e88a5d51473903e0d0addf3b0282ac189115f38dee8816ca1984ab81e1938e418f708a SHA512 3a50e51a9b293fe802f4bb359631ba28d5262ce8a7dc0e6ca79abf8360fce6ab9cdaeea901c40d93113da3c99d0db912c356ab741314a34d6bf2d6475e23b926
EBUILD zlib-1.3-r3.ebuild 4412 BLAKE2B a39dfd2ffe27481c0054971911ab98d62b5ec4d5a119df9e6e70d1129dc78df1cf86f37771677e012a723a632386fb8dcf1a3e074bea2da994025327f5eec699 SHA512 c2bbccfa2076bcabd675714564797b088f49215bbdd5bdb59232b02002607c3befddbd2434c1c598727770440d26d8c1116cd74a4608d13488bb789864a74c8f
+EBUILD zlib-1.3.1.ebuild 4327 BLAKE2B ecc4e1669c0f146e06d958ebd265e4416b85b2924e152b4183cf3407056a06f945dfba05f60c7fc0136ada1b46b194401027a7bb67dbe91cc5e7df4dcdfc4cd0 SHA512 9547b96b1a324f5fc1c767c6a6e9ca538dcba7ce8b897db894de1d77b736703d9a8f437c7184fa53183451b342764d0f89590aae316f420f1ce82dc7e3895dad
MISC metadata.xml 494 BLAKE2B a4a57a4153aefc189e407bcb8ce84f7c94581cc66967f69097087da7e6ff48d2de683b919fb00445d095c47ef39d31e01590f8c989ce0e5e01474e73ee2a0565 SHA512 a7e0160c127b3c2a6afe99e95992d9dbd017061303759c299ec38800efd6a9e11a35ae850c23c77c09c8833cd9d61ac1267f6becadf9c22437ee35e4304400c9
diff --git a/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch b/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
index 48d58acaaf7f..b5a1b4de2c47 100644
--- a/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
+++ b/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
@@ -1,3 +1,6 @@
+https://bugs.gentoo.org/879883
+https://github.com/madler/zlib/issues/751
+
From 2ad2713e6cb9166dcede9a020f6913b8189ff0c6 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Wed, 23 Nov 2022 04:17:16 +0000
diff --git a/sys-libs/zlib/files/zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch b/sys-libs/zlib/files/zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
new file mode 100644
index 000000000000..5bfb8006c4bb
--- /dev/null
+++ b/sys-libs/zlib/files/zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/879883
+https://github.com/madler/zlib/issues/751
+
+This breaks building on sparc with older binutils.
+--- a/configure
++++ b/configure
+@@ -234,10 +234,6 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
+ fi
+ case "$uname" in
+ Linux* | linux* | *-linux* | GNU | GNU/* | solaris*)
+- case "$mname" in
+- *sparc*)
+- LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;;
+- esac
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"} ;;
+ *BSD | *bsd* | DragonFly)
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"}
diff --git a/sys-libs/zlib/files/zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch b/sys-libs/zlib/files/zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch
new file mode 100644
index 000000000000..e1e5cf4b9196
--- /dev/null
+++ b/sys-libs/zlib/files/zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch
@@ -0,0 +1,79 @@
+From 7d7c0b3ede7d5c30e3cdc7c6fbb33c9d4499516a Mon Sep 17 00:00:00 2001
+From: Adrian Ratiu <adrian.ratiu@collabora.com>
+Date: Mon, 17 Jan 2022 10:49:58 +0200
+Subject: [PATCH] configure: fix AR/RANLIB/NM detection
+
+Taken from zlib-devel ML:
+https://madler.net/pipermail/zlib-devel_madler.net/2022-January/003322.html
+
+Bug: https://bugs.gentoo.org/831628
+
+Scenarios where ${CROSS_PREFIX}ar & co are set but not desired
+are possible, for example in ChromiumOS we use the GNU binutils
+tools & GCC to build glibc but LLVM/Clang is used for the rest
+of the system.
+
+This allows $AR/$RANLIB/$NM to override default CROSS_PREFIX
+tools so they can be set to llvm-ar/ranlib/nm.
+
+Suggested-by: Manoj Gupta <manojgupta@chromium.org>
+Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
+---
+ configure | 38 ++++++++++++++++++++++----------------
+ 1 file changed, 22 insertions(+), 16 deletions(-)
+
+diff --git a/configure b/configure
+index c55098a..2535e04 100755
+--- a/configure
++++ b/configure
+@@ -48,25 +48,31 @@ VER3=`echo ${VER}|sed -n -e 's/\([0-9]\{1,\}\(\\.[0-9]\{1,\}\)\{1,2\}\).*/\1/p'`
+ VER1=`echo ${VER}|sed -n -e 's/\([0-9]\{1,\}\)\\..*/\1/p'`
+
+ # establish commands for library building
+-if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+- AR=${AR-"${CROSS_PREFIX}ar"}
+- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+-else
+- AR=${AR-"ar"}
+- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++if [ -z "$AR" ]; then
++ if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++ AR=${AR-"${CROSS_PREFIX}ar"}
++ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++ else
++ AR="ar"
++ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++ fi
+ fi
+ ARFLAGS=${ARFLAGS-"rc"}
+-if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+- RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
+- test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
+-else
+- RANLIB=${RANLIB-"ranlib"}
++if [ -z "$RANLIB" ]; then
++ if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++ RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
++ test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
++ else
++ RANLIB="ranlib"
++ fi
+ fi
+-if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+- NM=${NM-"${CROSS_PREFIX}nm"}
+- test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
+-else
+- NM=${NM-"nm"}
++if [ -z "$NM" ]; then
++ if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++ NM=${NM-"${CROSS_PREFIX}nm"}
++ test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
++ else
++ NM="nm"
++ fi
+ fi
+
+ # set defaults before processing command line options
+--
+2.43.0
+
diff --git a/sys-libs/zlib/files/zlib-1.3.1-use-LDFLAGS-in-configure.patch b/sys-libs/zlib/files/zlib-1.3.1-use-LDFLAGS-in-configure.patch
new file mode 100644
index 000000000000..2b1d70f7b6f6
--- /dev/null
+++ b/sys-libs/zlib/files/zlib-1.3.1-use-LDFLAGS-in-configure.patch
@@ -0,0 +1,74 @@
+https://github.com/madler/zlib/pull/599
+
+Rebased version of:
+
+From 37c9730ba474d274f4cc6a974943eef95087b9f6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 8 Mar 2022 22:38:47 -0800
+Subject: [PATCH] configure: Pass LDFLAGS to link tests
+
+LDFLAGS can contain critical flags without which linking wont succeed
+therefore ensure that all configure tests involving link time checks are
+using LDFLAGS on compiler commandline along with CFLAGS to ensure the
+tests perform correctly. Without this some tests may fail resulting in
+wrong confgure result, ending in miscompiling the package
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>k
+--- a/configure
++++ b/configure
+@@ -448,8 +448,8 @@ EOF
+ if test $shared -eq 1; then
+ echo Checking for shared library support... | tee -a configure.log
+ # we must test in two steps (cc then ld), required at least on SunOS 4.x
+- if try $CC -c $SFLAGS $test.c &&
+- try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
++ if try $CC -c $SFLAGS $LDFLAGS $test.c &&
++ try $LDSHARED $SFLAGS $LDFLAGS -o $test$shared_ext $test.o; then
+ echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
+ elif test -z "$old_cc" -a -z "$old_cflags"; then
+ echo No shared library support. | tee -a configure.log
+@@ -511,7 +511,7 @@ int main(void) {
+ }
+ EOF
+ fi
+- if try $CC $CFLAGS -o $test $test.c; then
++ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
+ sizet=`./$test`
+ echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
+ CFLAGS="${CFLAGS} -DNO_SIZE_T=${sizet}"
+@@ -545,7 +545,7 @@ int main(void) {
+ return 0;
+ }
+ EOF
+- if try $CC $CFLAGS -o $test $test.c; then
++ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
+ echo "Checking for fseeko... Yes." | tee -a configure.log
+ else
+ CFLAGS="${CFLAGS} -DNO_FSEEKO"
+@@ -562,7 +562,7 @@ cat > $test.c <<EOF
+ #include <errno.h>
+ int main() { return strlen(strerror(errno)); }
+ EOF
+-if try $CC $CFLAGS -o $test $test.c; then
++if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
+ echo "Checking for strerror... Yes." | tee -a configure.log
+ else
+ CFLAGS="${CFLAGS} -DNO_STRERROR"
+@@ -669,7 +669,7 @@ int main()
+ return (mytest("Hello%d\n", 1));
+ }
+ EOF
+- if try $CC $CFLAGS -o $test $test.c; then
++ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
+ echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
+
+ echo >> configure.log
+@@ -759,7 +759,7 @@ int main()
+ }
+ EOF
+
+- if try $CC $CFLAGS -o $test $test.c; then
++ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
+ echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
+
+ echo >> configure.log
diff --git a/sys-libs/zlib/zlib-1.3.1.ebuild b/sys-libs/zlib/zlib-1.3.1.ebuild
new file mode 100644
index 000000000000..f12a76540f6e
--- /dev/null
+++ b/sys-libs/zlib/zlib-1.3.1.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Worth keeping an eye on 'develop' branch upstream for possible backports.
+AUTOTOOLS_AUTO_DEPEND="no"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/madler.asc
+inherit autotools edo multilib-minimal flag-o-matic usr-ldscript verify-sig
+
+DESCRIPTION="Standard (de)compression library"
+HOMEPAGE="https://zlib.net/"
+SRC_URI="
+ https://zlib.net/${P}.tar.xz
+ https://zlib.net/fossils/${P}.tar.xz
+ https://zlib.net/current/beta/${P}.tar.xz
+ https://github.com/madler/zlib/releases/download/v${PV}/${P}.tar.xz
+ verify-sig? (
+ https://zlib.net/${P}.tar.xz.asc
+ https://github.com/madler/zlib/releases/download/v${PV}/${P}.tar.xz.asc
+ )
+"
+
+LICENSE="ZLIB"
+SLOT="0/1" # subslot = SONAME
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="minizip static-libs"
+
+RDEPEND="!sys-libs/zlib-ng[compat]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ minizip? ( ${AUTOTOOLS_DEPEND} )
+ verify-sig? ( sec-keys/openpgp-keys-madler )
+"
+
+PATCHES=(
+ # Don't install unexpected & unused crypt.h header (which would clash with other pkgs)
+ # Pending upstream. bug #658536
+ "${FILESDIR}"/${PN}-1.2.11-minizip-drop-crypt-header.patch
+
+ # Respect AR, RANLIB, NM during build. Pending upstream. bug #831628
+ "${FILESDIR}"/${PN}-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch
+
+ # Respect LDFLAGS during configure tests. Pending upstream
+ "${FILESDIR}"/${PN}-1.3.1-use-LDFLAGS-in-configure.patch
+
+ # Fix building on sparc with older binutils, we pass it in ebuild instead
+ "${FILESDIR}"/${PN}-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
+)
+
+src_prepare() {
+ default
+
+ if use minizip ; then
+ cd contrib/minizip || die
+ eautoreconf
+ fi
+
+ case ${CHOST} in
+ *-mingw*|mingw*)
+ # Uses preconfigured Makefile rather than configure script
+ multilib_copy_sources
+
+ ;;
+ esac
+}
+
+multilib_src_configure() {
+ # We pass manually instead of relying on the configure script/makefile
+ # because it would pass it even for older binutils.
+ use sparc && append-flags $(test-flags-CCLD -Wl,--no-warn-rwx-segments)
+
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ case ${CHOST} in
+ *-mingw*|mingw*)
+ ;;
+
+ *)
+ # bug #347167
+ local uname=$("${BROOT}"/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3)
+
+ local myconf=(
+ --shared
+ --prefix="${EPREFIX}/usr"
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ ${uname:+--uname=${uname}}
+ )
+
+ # Not an autoconf script, so can't use econf
+ edo "${S}"/configure "${myconf[@]}"
+
+ ;;
+ esac
+
+ if use minizip ; then
+ local minizipdir="contrib/minizip"
+ mkdir -p "${BUILD_DIR}/${minizipdir}" || die
+
+ cd ${minizipdir} || die
+ ECONF_SOURCE="${S}/${minizipdir}" econf $(use_enable static-libs static)
+ fi
+}
+
+multilib_src_compile() {
+ case ${CHOST} in
+ *-mingw*|mingw*)
+ emake -f win32/Makefile.gcc STRIP=true PREFIX=${CHOST}-
+ sed \
+ -e 's|@prefix@|'"${EPREFIX}"'/usr|g' \
+ -e 's|@exec_prefix@|${prefix}|g' \
+ -e 's|@libdir@|${exec_prefix}/'$(get_libdir)'|g' \
+ -e 's|@sharedlibdir@|${exec_prefix}/'$(get_libdir)'|g' \
+ -e 's|@includedir@|${prefix}/include|g' \
+ -e 's|@VERSION@|'${PV}'|g' \
+ zlib.pc.in > zlib.pc || die
+ ;;
+
+ *)
+ emake
+
+ ;;
+ esac
+
+ use minizip && emake -C contrib/minizip
+}
+
+multilib_src_install() {
+ case ${CHOST} in
+ *-mingw*|mingw*)
+ emake -f win32/Makefile.gcc install \
+ BINARY_PATH="${ED}/usr/bin" \
+ LIBRARY_PATH="${ED}/usr/$(get_libdir)" \
+ INCLUDE_PATH="${ED}/usr/include" \
+ SHARED_MODE=1
+
+ # Overwrites zlib.pc created from win32/Makefile.gcc, bug #620136
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins zlib.pc
+
+ ;;
+
+ *)
+ emake install DESTDIR="${D}" LDCONFIG=:
+ gen_usr_ldscript -a z
+
+ ;;
+ esac
+
+ if use minizip ; then
+ emake -C contrib/minizip install DESTDIR="${D}"
+
+ # This might not exist if slibtool is used.
+ # bug #816756
+ rm -f "${ED}"/usr/$(get_libdir)/libminizip.la || die
+ fi
+
+ if ! use static-libs ; then
+ # bug #419645
+ rm "${ED}"/usr/$(get_libdir)/libz.a || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc FAQ README ChangeLog doc/*.txt
+
+ if use minizip ; then
+ dodoc contrib/minizip/*.txt
+ doman contrib/minizip/*.1
+ fi
+}