summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r3.ebuild1
-rw-r--r--dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r4.ebuild67
-rw-r--r--dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r3.ebuild (renamed from dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r2.ebuild)7
-rw-r--r--dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r3.ebuild (renamed from dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r2.ebuild)7
-rw-r--r--dev-cpp/abseil-cpp/files/abseil-cpp-20230802.0-conditional-use-of-lzcnt.patch49
-rw-r--r--dev-cpp/abseil-cpp/files/abseil-cpp-random-tests.patch19
-rw-r--r--dev-cpp/antlr-cpp/metadata.xml4
-rw-r--r--dev-cpp/asio/Manifest1
-rw-r--r--dev-cpp/asio/asio-1.30.2.ebuild64
-rw-r--r--dev-cpp/benchmark/benchmark-1.8.4.ebuild2
-rw-r--r--dev-cpp/benchmark/metadata.xml5
-rw-r--r--dev-cpp/catch/catch-3.6.0.ebuild2
-rw-r--r--dev-cpp/clhpp/metadata.xml5
-rw-r--r--dev-cpp/cpp-httplib/Manifest1
-rw-r--r--dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild (renamed from dev-cpp/cpp-httplib/cpp-httplib-0.15.3.ebuild)2
-rw-r--r--dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild91
-rw-r--r--dev-cpp/cppgir/cppgir-2.0_p20240315.ebuild2
-rw-r--r--dev-cpp/eigen/eigen-3.4.0-r3.ebuild458
-rw-r--r--dev-cpp/eigen/files/eigen-3.4.0-ppc-no-vsx.patch195
-rw-r--r--dev-cpp/glog/metadata.xml4
-rw-r--r--dev-cpp/gtest/gtest-1.14.0-r1.ebuild9
-rw-r--r--dev-cpp/gtest/gtest-9999.ebuild7
-rw-r--r--dev-cpp/kokkos/Manifest1
-rw-r--r--dev-cpp/kokkos/kokkos-4.3.1.ebuild56
-rw-r--r--dev-cpp/prometheus-cpp/metadata.xml5
-rw-r--r--dev-cpp/range-v3/range-v3-0.12.0.ebuild2
-rw-r--r--dev-cpp/rapidfuzz-cpp/Manifest2
-rw-r--r--dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.5.ebuild (renamed from dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.4.ebuild)0
-rw-r--r--dev-cpp/robin-map/Manifest1
-rw-r--r--dev-cpp/robin-map/robin-map-1.3.0.ebuild37
-rw-r--r--dev-cpp/robin-map/robin-map-9999.ebuild23
-rw-r--r--dev-cpp/tbb/Manifest5
-rw-r--r--dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch38
-rw-r--r--dev-cpp/tbb/files/tbb-2021.4.0-lto.patch249
-rw-r--r--dev-cpp/tbb/files/tbb-2021.4.0-missing-TBB_machine_fetchadd4.patch23
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-flags-stripping.patch27
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-musl-deepbind.patch25
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-musl-mallinfo.patch32
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch30
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-x86-mwaitpkg.patch43
-rw-r--r--dev-cpp/tbb/tbb-2021.10.0.ebuild48
-rw-r--r--dev-cpp/tbb/tbb-2021.12.0.ebuild1
-rw-r--r--dev-cpp/tbb/tbb-2021.13.0.ebuild (renamed from dev-cpp/tbb/tbb-2021.11.0.ebuild)1
-rw-r--r--dev-cpp/tbb/tbb-2021.5.0-r1.ebuild55
-rw-r--r--dev-cpp/tbb/tbb-2021.7.0.ebuild40
-rw-r--r--dev-cpp/tbb/tbb-2021.8.0.ebuild49
-rw-r--r--dev-cpp/tbb/tbb-2021.9.0.ebuild1
-rw-r--r--dev-cpp/xsimd/Manifest1
-rw-r--r--dev-cpp/xsimd/files/xsimd-13.0.0-detection-simd-with-mitigations.patch148
-rw-r--r--dev-cpp/xsimd/files/xsimd-13.0.0-sve-rvv.patch88
-rw-r--r--dev-cpp/xsimd/xsimd-13.0.0.ebuild60
51 files changed, 1436 insertions, 657 deletions
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r3.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r3.ebuild
index 46aea4f8cad5..c248fe6ae1a4 100644
--- a/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r3.ebuild
+++ b/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r3.ebuild
@@ -29,6 +29,7 @@ RESTRICT="!test? ( test )"
PATCHES=(
"${FILESDIR}"/${PN}-20230125.2-musl-1.2.4.patch #906218
+ "${FILESDIR}"/${PN}-random-tests.patch #935417
)
src_prepare() {
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r4.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r4.ebuild
new file mode 100644
index 000000000000..87f1b86c7690
--- /dev/null
+++ b/dev-cpp/abseil-cpp/abseil-cpp-20230125.3-r4.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake-multilib python-any-r1
+
+DESCRIPTION="Abseil Common Libraries (C++), LTS Branch"
+HOMEPAGE="https://abseil.io/"
+SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV%%.*}.0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-cpp/gtest-1.13.0[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-libs/timezone-data
+ )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-20230125.2-musl-1.2.4.patch #906218
+ "${FILESDIR}"/${PN}-random-tests.patch #935417
+ "${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # un-hardcode abseil compiler flags
+ sed -i \
+ -e '/"-maes",/d' \
+ -e '/"-msse4.1",/d' \
+ -e '/"-mfpu=neon"/d' \
+ -e '/"-march=armv8-a+crypto"/d' \
+ absl/copts/copts.py || die
+
+ # now generate cmake files
+ python_fix_shebang absl/copts/generate_copts.py
+ absl/copts/generate_copts.py || die
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ # We use -std=c++14 here so that abseil-cpp's string_view is used
+ # See the discussion in https://github.com/gentoo/gentoo/pull/32281.
+ -DCMAKE_CXX_STANDARD=14
+ -DABSL_ENABLE_INSTALL=TRUE
+ -DABSL_USE_EXTERNAL_GOOGLETEST=ON
+ -DABSL_PROPAGATE_CXX_STD=TRUE
+ # TEST_HELPERS needed for protobuf (bug #915902)
+ -DABSL_BUILD_TEST_HELPERS=ON
+ -DABSL_BUILD_TESTING=$(usex test ON OFF)
+ $(usex test -DBUILD_TESTING=ON '') # intentional usex, it used both variables for tests.
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r2.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r3.ebuild
index 1281eefffab0..dc13dfe5045f 100644
--- a/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r2.ebuild
+++ b/dev-cpp/abseil-cpp/abseil-cpp-20230802.0-r3.ebuild
@@ -26,7 +26,12 @@ BDEPEND="
"
RESTRICT="!test? ( test )"
-PATCHES=( "${FILESDIR}/${PN}-20230802.0-sdata-tests.patch" )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-20230802.0-sdata-tests.patch"
+ "${FILESDIR}/${PN}-random-tests.patch" #935417
+ "${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
+)
src_prepare() {
cmake_src_prepare
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r2.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r3.ebuild
index 1281eefffab0..dc13dfe5045f 100644
--- a/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r2.ebuild
+++ b/dev-cpp/abseil-cpp/abseil-cpp-20240116.2-r3.ebuild
@@ -26,7 +26,12 @@ BDEPEND="
"
RESTRICT="!test? ( test )"
-PATCHES=( "${FILESDIR}/${PN}-20230802.0-sdata-tests.patch" )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-20230802.0-sdata-tests.patch"
+ "${FILESDIR}/${PN}-random-tests.patch" #935417
+ "${FILESDIR}/${PN}-20230802.0-conditional-use-of-lzcnt.patch" #934337
+)
src_prepare() {
cmake_src_prepare
diff --git a/dev-cpp/abseil-cpp/files/abseil-cpp-20230802.0-conditional-use-of-lzcnt.patch b/dev-cpp/abseil-cpp/files/abseil-cpp-20230802.0-conditional-use-of-lzcnt.patch
new file mode 100644
index 000000000000..1fa00d9ff622
--- /dev/null
+++ b/dev-cpp/abseil-cpp/files/abseil-cpp-20230802.0-conditional-use-of-lzcnt.patch
@@ -0,0 +1,49 @@
+Bug: https://bugs.gentoo.org/934337
+From: https://github.com/abseil/abseil-cpp/commit/c1e1b47d989978cde8c5a2a219df425b785a0c47.patch
+From c1e1b47d989978cde8c5a2a219df425b785a0c47 Mon Sep 17 00:00:00 2001
+From: Derek Mauro <dmauro@google.com>
+Date: Fri, 3 May 2024 09:14:22 -0700
+Subject: [PATCH] Use __builtin_ctzg and __builtin_clzg in the implementations
+ of CountTrailingZeroesNonzero16 and CountLeadingZeroes16 when they are
+ available.
+
+GCC 14 and Clang 19 adds these new builtins. The g-suffix is for
+"generic". The s-suffix on __builtin_ctzs and __builtin_clzs is for
+"short". GCC never implemented the short versions and #1664 reports
+GCC 14 (pre-release) gives an error here, although this may be a
+pre-release bug.
+
+Fixes #1664
+
+PiperOrigin-RevId: 630408249
+Change-Id: I4aedcc82b85430f50d025f8eb1cab089c6fcd1bc
+---
+ absl/numeric/internal/bits.h | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/absl/numeric/internal/bits.h b/absl/numeric/internal/bits.h
+index bfef06bce1f..0917464d6ad 100644
+--- a/absl/numeric/internal/bits.h
++++ b/absl/numeric/internal/bits.h
+@@ -167,7 +167,9 @@ CountLeadingZeroes32(uint32_t x) {
+
+ ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CLZ inline int
+ CountLeadingZeroes16(uint16_t x) {
+-#if ABSL_HAVE_BUILTIN(__builtin_clzs)
++#if ABSL_HAVE_BUILTIN(__builtin_clzg)
++ return x == 0 ? 16 : __builtin_clzg(x);
++#elif ABSL_HAVE_BUILTIN(__builtin_clzs)
+ static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
+ "__builtin_clzs does not take 16-bit arg");
+ return x == 0 ? 16 : __builtin_clzs(x);
+@@ -303,7 +305,9 @@ CountTrailingZeroesNonzero64(uint64_t x) {
+
+ ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CTZ inline int
+ CountTrailingZeroesNonzero16(uint16_t x) {
+-#if ABSL_HAVE_BUILTIN(__builtin_ctzs)
++#if ABSL_HAVE_BUILTIN(__builtin_ctzg)
++ return __builtin_ctzg(x);
++#elif ABSL_HAVE_BUILTIN(__builtin_ctzs)
+ static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
+ "__builtin_ctzs does not take 16-bit arg");
+ return __builtin_ctzs(x);
diff --git a/dev-cpp/abseil-cpp/files/abseil-cpp-random-tests.patch b/dev-cpp/abseil-cpp/files/abseil-cpp-random-tests.patch
new file mode 100644
index 000000000000..769ac6a56e39
--- /dev/null
+++ b/dev-cpp/abseil-cpp/files/abseil-cpp-random-tests.patch
@@ -0,0 +1,19 @@
+https://github.com/abseil/abseil-cpp/issues/1528
+
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+Date: Sat, 7 Jul 2024 01:53:19 +0200
+Subject: [PATCH] remove abseil::random_internal_mock_overload_set
+See-Also: https://bugs.gentoo.org/935417
+
+diff --git a/absl/random/CMakeLists.txt b/absl/random/CMakeLists.txt
+index bd363d8..7692a35 100644
+--- a/absl/random/CMakeLists.txt
++++ b/absl/random/CMakeLists.txt
+@@ -112,7 +112,6 @@ absl_cc_library(
+ absl::raw_logging_internal
+ absl::random_distributions
+ absl::random_internal_distribution_caller
+- absl::random_internal_mock_overload_set
+ absl::random_random
+ absl::strings
+ absl::span
diff --git a/dev-cpp/antlr-cpp/metadata.xml b/dev-cpp/antlr-cpp/metadata.xml
index ad571d3247b8..541a3e9dfdfb 100644
--- a/dev-cpp/antlr-cpp/metadata.xml
+++ b/dev-cpp/antlr-cpp/metadata.xml
@@ -2,8 +2,8 @@
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
- <email>java@gentoo.org</email>
- <name>Java</name>
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
</maintainer>
<upstream>
<remote-id type="github">antlr/antlr3</remote-id>
diff --git a/dev-cpp/asio/Manifest b/dev-cpp/asio/Manifest
index a58dd01a51e8..7af8cb1f03fd 100644
--- a/dev-cpp/asio/Manifest
+++ b/dev-cpp/asio/Manifest
@@ -1,2 +1,3 @@
DIST asio-1-30-1.tar.gz 2842718 BLAKE2B b99f6e1ab03c4da9bc802e04d66b46ac2374f7da9f65dd98dd3da3cf1cf507548ae2645343a63378ab91d665fc6e2efe5c5262f33757e851973534e23291abb1 SHA512 6b5f41479e20500dff6c535d8e3b096e11815784923bb4c0f68f69be59c80d7ad99c7e0380a1de4dd350e6cc6a79315d4645378a9b8d70d9f8d28a17f1cc68af
DIST asio-1.28.1.tar.bz2 3383257 BLAKE2B 9d98152a6cf8b0e2a807275092b23f6198d8175fd7260499be7561cea2e6723c1a8478107315b7163cdc31d6eecab552550393ab3b1cfb686dcb4157d1e91fe4 SHA512 fadd7748675743ba9110f873bf57f2400a5c9c0dc03c1d6cd7f0988bc70ccbbff6cb6140f5dd236d2d874fc82a6f216406e8892808e915aae5119fe9d95743de
+DIST asio-1.30.2.tar.bz2 3196850 BLAKE2B d902fda2338d9717bb8f2f5d43468c5d0b64591814c3ae3134350650f0dd97bf241287347d324b11d0e6993b1b44373df13305d736df09ad3375ce4976f5bb27 SHA512 2d26cdcfcc0c310e82ab502551b51d70fd95ba4628bd306929e78539299974fc14aa6ba27cf256f1df7a56539cb885012ba02a202ae17bf817ee6311308a795a
diff --git a/dev-cpp/asio/asio-1.30.2.ebuild b/dev-cpp/asio/asio-1.30.2.ebuild
new file mode 100644
index 000000000000..6592a495eec8
--- /dev/null
+++ b/dev-cpp/asio/asio-1.30.2.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Asynchronous Network Library"
+HOMEPAGE="https://think-async.com https://github.com/chriskohlhoff/asio"
+SRC_URI="https://downloads.sourceforge.net/asio/asio/${P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="doc examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-libs/boost
+ dev-libs/openssl
+ )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/asio-1.30.1-pkgconfig.patch"
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ if ! use test; then
+ # Don't build nor install any examples or unittests
+ # since we don't have a script to run them
+ cat > src/Makefile.in <<-EOF || die
+ all:
+
+ install:
+
+ clean:
+ EOF
+ fi
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( doc/. )
+ default
+
+ if use examples; then
+ # Get rid of the object files
+ emake clean
+ dodoc -r src/examples
+ docompress -x /usr/share/doc/${PF}/examples
+
+ # Make links to the example .cpp files work
+ # https://bugs.gentoo.org/828648
+ if use doc; then
+ dosym ../examples /usr/share/doc/${PF}/src/examples
+ fi
+ fi
+}
diff --git a/dev-cpp/benchmark/benchmark-1.8.4.ebuild b/dev-cpp/benchmark/benchmark-1.8.4.ebuild
index 16006f7088f0..a48b13d02eb4 100644
--- a/dev-cpp/benchmark/benchmark-1.8.4.ebuild
+++ b/dev-cpp/benchmark/benchmark-1.8.4.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="debug doc test"
RESTRICT="!test? ( test )"
diff --git a/dev-cpp/benchmark/metadata.xml b/dev-cpp/benchmark/metadata.xml
index ac75eeab418b..7b3ec03c0ee6 100644
--- a/dev-cpp/benchmark/metadata.xml
+++ b/dev-cpp/benchmark/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marecki@gentoo.org</email>
- <name>Marek Szuba</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<bugs-to>https://github.com/google/benchmark/issues</bugs-to>
<doc lang="en">https://github.com/google/benchmark/tree/master/docs/</doc>
diff --git a/dev-cpp/catch/catch-3.6.0.ebuild b/dev-cpp/catch/catch-3.6.0.ebuild
index cde2d006ed7f..31c6d23ac8c3 100644
--- a/dev-cpp/catch/catch-3.6.0.ebuild
+++ b/dev-cpp/catch/catch-3.6.0.ebuild
@@ -15,7 +15,7 @@ else
SRC_URI="https://github.com/catchorg/Catch2/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
fi
DESCRIPTION="Modern C++ header-only framework for unit-tests"
diff --git a/dev-cpp/clhpp/metadata.xml b/dev-cpp/clhpp/metadata.xml
index 4fab41399c23..dfca8492f8bc 100644
--- a/dev-cpp/clhpp/metadata.xml
+++ b/dev-cpp/clhpp/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marecki@gentoo.org</email>
- <name>Marek Szuba</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="github">KhronosGroup/OpenCL-CLHPP</remote-id>
</upstream>
diff --git a/dev-cpp/cpp-httplib/Manifest b/dev-cpp/cpp-httplib/Manifest
index 185d26e0dd07..a46a3958fa01 100644
--- a/dev-cpp/cpp-httplib/Manifest
+++ b/dev-cpp/cpp-httplib/Manifest
@@ -1 +1,2 @@
DIST cpp-httplib-0.15.3.tar.gz 1151398 BLAKE2B 8ce7d7e59c0954efb14a11e565f9cdf02c007a3b6d39dbdcb21b412906eed3ceeca3182096f4b4eadb32a5886e839e64774ae9a1110ddb60fb7cdea35b5b7d50 SHA512 f7fc9c9eb71f091b82958e023a7b417b30d2590fd5d1a920d1c98361f34bcaca796dbeda7f9fdb8b2c722a8968977b77463c6cbb252cba9823a79c22471fa439
+DIST cpp-httplib-0.16.0.tar.gz 1156790 BLAKE2B 4a75059f16f6e46685c2cf028c6fa4c9cd50c35273795a8dbb6ca9d2997146b04b305893ad50adbb62c39db14ab3f589e902353bb199ee167d2648fe3621aee1 SHA512 63dc5a50f425e7be909d60db138caa1b9d7260c5d4db26603011a329f0d6a645d56f436c79466fbe662f24a94bc0f72926062b3ed49cb658eb91a6bdb2ddf25b
diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.15.3.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild
index 60ff0d635fc4..71dc06d9a302 100644
--- a/dev-cpp/cpp-httplib/cpp-httplib-0.15.3.ebuild
+++ b/dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild
@@ -30,7 +30,7 @@ RESTRICT="!test? ( test )"
RDEPEND="
brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] )
- ssl? ( dev-libs/openssl:=[${MULTILIB_USEDEP}] )
+ ssl? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
"
DEPEND="
diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild
new file mode 100644
index 000000000000..2a99bbc0191f
--- /dev/null
+++ b/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit cmake-multilib python-any-r1 toolchain-funcs
+
+DESCRIPTION="C++ HTTP/HTTPS server and client library"
+HOMEPAGE="https://github.com/yhirose/cpp-httplib/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/yhirose/${PN}.git"
+else
+ SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)" # soversion
+
+IUSE="brotli ssl test zlib"
+REQUIRED_USE="test? ( brotli ssl zlib )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ brotli? (
+ app-arch/brotli:=[${MULTILIB_USEDEP}]
+ )
+ ssl? (
+ >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}]
+ )
+ zlib? (
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+src_configure() {
+ local -a mycmakeargs=(
+ -DHTTPLIB_COMPILE=yes
+ -DBUILD_SHARED_LIBS=yes
+ -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no
+ -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no
+ -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no
+ -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli)
+ -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl)
+ -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib)
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ cmake-multilib_src_configure
+}
+
+multilib_src_test() {
+ cp -p -R --reflink=auto "${S}/test" ./test || die
+
+ local -a failing_tests=(
+ # Disable all online tests.
+ "*.*_Online"
+
+ # Fails on musl x86:
+ ServerTest.GetRangeWithMaxLongLength
+ ServerTest.GetStreamedWithTooManyRanges
+
+ # https://github.com/yhirose/cpp-httplib/issues/1798
+ # Filed by mgorny's testing, fails on openssl >=3.2:
+ SSLClientServerTest.ClientCertPresent
+ SSLClientServerTest.ClientEncryptedCertPresent
+ SSLClientServerTest.CustomizeServerSSLCtx
+ SSLClientServerTest.MemoryClientCertPresent
+ SSLClientServerTest.MemoryClientEncryptedCertPresent
+ SSLClientServerTest.TrustDirOptional
+ )
+
+ # Little dance to please the GTEST filter (join array using ":").
+ failing_tests_str="${failing_tests[@]}"
+ failing_tests_filter="${failing_tests_str// /:}"
+
+ GTEST_FILTER="-${failing_tests_filter}" emake -C test \
+ CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I."
+}
diff --git a/dev-cpp/cppgir/cppgir-2.0_p20240315.ebuild b/dev-cpp/cppgir/cppgir-2.0_p20240315.ebuild
index 8f7f7db42bab..b8b203459ce3 100644
--- a/dev-cpp/cppgir/cppgir-2.0_p20240315.ebuild
+++ b/dev-cpp/cppgir/cppgir-2.0_p20240315.ebuild
@@ -14,7 +14,7 @@ S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv"
+KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv"
IUSE="doc test"
RESTRICT="!test? ( test )"
diff --git a/dev-cpp/eigen/eigen-3.4.0-r3.ebuild b/dev-cpp/eigen/eigen-3.4.0-r3.ebuild
new file mode 100644
index 000000000000..91904f16f7ab
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.4.0-r3.ebuild
@@ -0,0 +1,458 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED="test"
+inherit cmake cuda fortran-2 llvm toolchain-funcs
+
+DESCRIPTION="C++ template library for linear algebra"
+HOMEPAGE="https://eigen.tuxfamily.org/index.php?title=Main_Page"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/lib${PN}/${PN}.git"
+ if [[ ${PV} = 3.4.9999* ]] ; then
+ EGIT_COMMIT="3.4"
+ fi
+else
+ SRC_URI="
+ https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2
+ test? ( lapack? ( https://downloads.tuxfamily.org/${PN}/lapack_addons_3.4.1.tgz -> ${PN}-lapack_addons-3.4.1.tgz ) )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+fi
+
+LICENSE="MPL-2.0"
+SLOT="3"
+
+# The following lines are shamelessly stolen from ffmpeg-9999.ebuild with modifications
+ARM_CPU_FEATURES=(
+ neon:NEON
+)
+PPC_CPU_FEATURES=(
+ altivec:ALTIVEC
+ vsx:VSX
+)
+X86_CPU_FEATURES=(
+ avx:AVX
+ avx2:AVX2
+ avx512f:AVX512
+ avx512dq:AVX512DQ
+ f16c:FP16C
+ fma3:FMA
+ popcnt:POPCNT
+ sse:SSE
+ sse2:SSE2
+ sse3:SSE3
+ ssse3:SSSE3
+ sse4_1:SSE4_1
+ sse4_2:SSE4_2
+)
+# MIPS_CPU_FEATURES=(
+# msa:MSA
+# )
+# S390_CPU_FEATURES=(
+# z13:Z13
+# z14:Z14
+# )
+
+CPU_FEATURES_MAP=(
+ "${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
+ "${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
+ "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
+ # "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
+ # "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
+)
+
+IUSE_TEST_BACKENDS=(
+ "adolc"
+ "boost"
+ "cholmod"
+ "fftw"
+ "klu"
+ "opengl"
+ "openmp"
+ "pastix"
+ "sparsehash"
+ "spqr"
+ "superlu"
+ "umfpack"
+)
+
+IUSE="${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack mathjax test ${IUSE_TEST_BACKENDS[*]}" #zvector
+
+# Tests failing again because of compiler issues
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ doc? (
+ app-text/doxygen[dot]
+ dev-texlive/texlive-bibtexextra
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-fontutils
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexextra
+ mathjax? ( dev-libs/mathjax )
+ )
+ test? ( virtual/pkgconfig )
+"
+
+# METIS
+# MPREAL
+# dev-libs/mpfr:0
+# dev-libs/gmp:0
+
+TEST_BACKENDS="
+ boost? ( dev-libs/boost )
+ adolc? ( sci-libs/adolc[sparse] )
+ cholmod? ( sci-libs/cholmod:= )
+ fftw? ( sci-libs/fftw )
+ spqr? ( sci-libs/spqr )
+ klu? ( sci-libs/klu )
+ opengl? (
+ media-libs/freeglut
+ media-libs/glew
+ media-libs/libglvnd
+ )
+ pastix? ( sci-libs/pastix[-mpi] )
+ sparsehash? (
+ amd64? ( dev-cpp/sparsehash )
+ arm64? ( dev-cpp/sparsehash )
+ ppc64? ( dev-cpp/sparsehash )
+ x86? ( dev-cpp/sparsehash )
+ )
+ superlu? ( sci-libs/superlu )
+ umfpack? ( sci-libs/umfpack )
+"
+DEPEND="
+ test? (
+ cuda? (
+ !clang? (
+ dev-util/nvidia-cuda-toolkit
+ )
+ clang? (
+ sys-devel/clang[llvm_targets_NVPTX]
+ openmp? ( sys-libs/libomp[llvm_targets_NVPTX,offload] )
+ )
+ )
+ hip? ( dev-util/hip )
+ lapack? ( virtual/lapacke )
+ ${TEST_BACKENDS}
+ )
+"
+
+REQUIRED_USE="
+ test? ( !lapack )
+ || ( ${IUSE_TEST_BACKENDS[*]} )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.3.9-max-macro.patch"
+ "${FILESDIR}/${PN}-3.4.0-doc-nocompress.patch" # bug 830064
+ "${FILESDIR}/${PN}-3.4.0-buildstring.patch"
+ "${FILESDIR}/${PN}-3.4.0-noansi.patch"
+ "${FILESDIR}/${PN}-3.4.0-cxxstandard.patch"
+ "${FILESDIR}/${PN}-3.4.0-ppc-no-vsx.patch" # bug 936107
+)
+
+# TODO should be in cuda.eclass
+cuda_set_CUDAHOSTCXX() {
+ local compiler
+ tc-is-gcc && compiler="gcc"
+ tc-is-clang && compiler="clang"
+ [[ -z "$compiler" ]] && die "no compiler specified"
+
+ local package="sys-devel/${compiler}"
+ local version="${package}"
+ local CUDAHOSTCXX_test
+ while
+ CUDAHOSTCXX="${CUDAHOSTCXX_test}"
+ version=$(best_version "${version}")
+ if [[ -z "${version}" ]]; then
+ if [[ -z "${CUDAHOSTCXX}" ]]; then
+ die "could not find supported version of ${package}"
+ fi
+ break
+ fi
+ CUDAHOSTCXX_test="$(
+ dirname "$(
+ realpath "$(
+ which "${compiler}-$(echo "${version}" | grep -oP "(?<=${package}-)[0-9]*")"
+ )"
+ )"
+ )"
+ version="<${version}"
+ do ! echo "int main(){}" | nvcc "-ccbin ${CUDAHOSTCXX_test}" - -x cu &>/dev/null; done
+
+ export CUDAHOSTCXX
+}
+
+pkg_setup() {
+ use test && use cuda && use clang && llvm_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]] ; then
+ git-r3_src_unpack
+ else
+ unpack "${P}.tar.bz2"
+
+ if use test && use lapack; then
+ cd "${S}/lapack" || die
+ unpack "${PN}-lapack_addons-3.4.1.tgz"
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed \
+ -e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
+ -i CMakeLists.txt || die
+
+ if ! use test; then
+ sed \
+ -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
+ -i CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS="yes"
+ -DBUILD_TESTING="$(usex test)"
+
+ -DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen documentation
+ -DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for Eigen
+ )
+ if use doc || use test; then
+ mycmakeargs+=(
+ # needs Qt4
+ -DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit tests
+ )
+ fi
+
+ if use doc; then
+ mycmakeargs+=(
+ -DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax for rendering math in HTML docs
+ -DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal documentation
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ # the OpenGL testsuite is extremely brittle, bug #712808
+ -DOpenGL_GL_PREFERENCE="GLVND"
+ -DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL support in unit tests
+ -DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable OpenMP in tests/examples
+
+ -DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
+
+ -DEIGEN_TEST_CXX11=yes
+
+ # -DEIGEN_TEST_CUSTOM_CXX_FLAGS= # Additional compiler flags when compiling unit tests.
+ # -DEIGEN_TEST_CUSTOM_LINKER_FLAGS= # Additional linker flags when linking unit tests.
+ # -DEIGEN_TEST_BUILD_FLAGS= # Options passed to the build command of unit tests
+
+ # -DEIGEN_BUILD_BTL=yes # Build benchmark suite
+
+ -DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test building the doxygen documentation
+
+ # -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
+ # -DEIGEN_CTEST_ERROR_EXCEPTION= # Regular expression for build error messages to be filtered out
+ # -DEIGEN_DEBUG_ASSERTS=no # Enable advanced debugging of assertions
+ # -DEIGEN_NO_ASSERTION_CHECKING=no # Disable checking of assertions using exceptions
+ # -DEIGEN_TEST_NO_EXCEPTIONS=no # Disables C++ exceptions
+ # -DEIGEN_TEST_NO_EXPLICIT_ALIGNMENT=no # Disable explicit alignment (hence vectorization) in tests/examples
+ # -DEIGEN_TEST_NO_EXPLICIT_VECTORIZATION=no # Disable explicit vectorization in tests/examples
+
+ # -DEIGEN_DASHBOARD_BUILD_TARGET=buildtests # Target to be built in dashboard mode, default is buildtests
+
+ # -DEIGEN_DEFAULT_TO_ROW_MAJOR=no # Use row-major as default matrix storage order
+
+ # -DEIGEN_TEST_MATRIX_DIR=yes # Enable testing of realword sparse matrices contained in the specified path
+ # -DEIGEN_TEST_MAX_SIZE=320 # Maximal matrix/vector size, default is 320
+ # -DEIGEN_SPLIT_LARGE_TESTS=no # Split large tests into smaller executables
+ )
+
+ use !adolc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Adolc="TRUE" )
+ use !boost && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Boost="TRUE" )
+ use !cholmod && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_CHOLMOD="TRUE" )
+ use !fftw && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_FFTW="TRUE" )
+ use !sparsehash && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_GoogleHash="TRUE" )
+ use !klu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_KLU="TRUE" )
+ use !opengl && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL="TRUE" )
+ use !openmp && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP="TRUE" )
+ use !pastix && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_PASTIX="TRUE" )
+ use !spqr && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SPQR="TRUE" )
+ use !superlu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU="TRUE" )
+ use !umfpack && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_UMFPACK="TRUE" )
+
+ if use lapack; then
+ mycmakeargs+=(
+ -DEIGEN_ENABLE_LAPACK_TESTS=yes
+ -DEIGEN_TEST_EXTERNAL_BLAS=yes # Use external BLAS library for testsuite
+ -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=ON
+ )
+ fi
+
+ if use arm; then
+ mycmakeargs+=(
+ -DEIGEN_TEST_NEON="$(usex cpu_flags_arm_neon)"
+ )
+ fi
+
+ if use arm64; then
+ mycmakeargs+=(
+ -DEIGEN_TEST_NEON64="$(usex cpu_flags_arm_neon)"
+ )
+ fi
+
+ if use ppc || use ppc64; then
+ mycmakeargs+=(
+ -DEIGEN_TEST_ALTIVEC="$(usex cpu_flags_ppc_altivec)"
+ -DEIGEN_TEST_VSX="$(usex cpu_flags_ppc_vsx)"
+ )
+ fi
+
+ if use amd64 || use x86; then
+ mycmakeargs+=(
+ # -DEIGEN_TEST_32BIT=no # Force generating 32bit code.
+ # -DEIGEN_TEST_X87=no # Force using X87 instructions. Implies no vectorization.
+ -DEIGEN_TEST_SSE2="$(usex cpu_flags_x86_sse2)"
+ -DEIGEN_TEST_SSE3="$(usex cpu_flags_x86_sse3)"
+ -DEIGEN_TEST_SSSE3="$(usex cpu_flags_x86_ssse3)"
+ -DEIGEN_TEST_FMA="$(usex cpu_flags_x86_fma3)"
+ -DEIGEN_TEST_SSE4_1="$(usex cpu_flags_x86_sse4_1)"
+ -DEIGEN_TEST_SSE4_2="$(usex cpu_flags_x86_sse4_2)"
+ -DEIGEN_TEST_AVX="$(usex cpu_flags_x86_avx)"
+ -DEIGEN_TEST_F16C="$(usex cpu_flags_x86_f16c)"
+ -DEIGEN_TEST_AVX2="$(usex cpu_flags_x86_avx2)"
+ -DEIGEN_TEST_AVX512="$(usex cpu_flags_x86_avx512f)"
+ -DEIGEN_TEST_AVX512DQ="$(usex cpu_flags_x86_avx512dq)"
+ )
+ fi
+
+ if use mips; then
+ mycmakeargs+=(
+ # -DEIGEN_TEST_MSA=no # Enable/Disable MSA in tests/examples
+ )
+ fi
+
+ if use s390; then
+ mycmakeargs+=(
+ # -DEIGEN_TEST_Z13=no # Enable/Disable S390X(zEC13) ZVECTOR in tests/examples
+ # -DEIGEN_TEST_Z14=no # Enable/Disable S390X(zEC14) ZVECTOR in tests/examples
+ )
+ fi
+
+ mycmakeargs+=(
+ -DEIGEN_TEST_CUDA="$(usex cuda)" # Enable CUDA support in unit tests
+ -DEIGEN_TEST_CUDA_CLANG="$(usex cuda "$(usex clang)")" # Use clang instead of nvcc to compile the CUDA tests
+
+ -DEIGEN_TEST_HIP="$(usex hip)" # Add HIP support.
+
+ # -DEIGEN_TEST_SYCL=no # Add Sycl support.
+ # -DEIGEN_SYCL_TRISYCL=no # Use the triSYCL Sycl implementation (ComputeCPP by default).
+ )
+
+ if use cuda; then
+ cuda_add_sandbox -w
+ if use clang; then
+ local llvm_prefix
+ llvm_prefix="$(get_llvm_prefix -b)"
+ export CC="${llvm_prefix}/bin/clang"
+ export CXX="${llvm_prefix}/bin/clang++"
+ export LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
+ else
+ cuda_set_CUDAHOSTCXX
+ mycmakeargs+=(
+ -DCUDA_HOST_COMPILER="${CUDAHOSTCXX}"
+ )
+ fi
+ if [[ "${CUDA_VERBOSE}" == true ]]; then
+ mycmakeargs+=(
+ -DCUDA_VERBOSE_BUILD=yes
+ )
+ NVCCFLAGS+=" -v"
+ fi
+
+ export CUDAFLAGS="${NVCCFLAGS}"
+
+ [[ -z "${CUDAARCHS}" ]] && einfo "trying to determine host CUDAARCHS"
+ : "${CUDAARCHS:=$(__nvcc_device_query)}"
+ export CUDAARCHS
+
+ mycmakeargs+=(
+ -DEIGEN_CUDA_COMPUTE_ARCH="${CUDAARCHS}"
+ )
+ fi
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ local targets=()
+ if use doc; then
+ targets+=( doc )
+ HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ fi
+ if use test; then
+ targets+=( buildtests )
+ if ! use lapack; then
+ targets+=( blas )
+ fi
+ # tests generate random data, which
+ # obviously fails for some seeds
+ export EIGEN_SEED=712808
+ fi
+
+ if use doc || use test; then
+ cmake_src_compile "${targets[@]}"
+ fi
+}
+
+src_test() {
+ CMAKE_SKIP_TESTS=(
+ product_small_32 # 143 (Subprocess aborted)
+ product_small_33 # 144 (Subprocess aborted)
+
+ eigensolver_selfadjoint_13 # 452 (Subprocess aborted)
+
+ cholmod_support_21 # 726 (Subprocess aborted)
+ cholmod_support_22 # 727 (Subprocess aborted)
+
+ NonLinearOptimization # 930 (Subprocess aborted)
+ openglsupport # 990 (Failed)
+ levenberg_marquardt # 1020 (Subprocess aborted)
+ )
+
+ if use cuda ; then
+ cuda_add_sandbox -w
+
+ CMAKE_SKIP_TESTS+=(
+ cxx11_tensor_cast_float16_gpu
+ cxx11_tensor_gpu_5
+ )
+ fi
+
+ if use lapack ; then
+ CMAKE_SKIP_TESTS+=(
+ "^LAPACK-.*$"
+ )
+ fi
+
+ local myctestargs=(
+ -j1 # otherwise breaks due to cmake reruns
+ )
+
+ cmake_src_test
+}
diff --git a/dev-cpp/eigen/files/eigen-3.4.0-ppc-no-vsx.patch b/dev-cpp/eigen/files/eigen-3.4.0-ppc-no-vsx.patch
new file mode 100644
index 000000000000..7cfeaaf129ff
--- /dev/null
+++ b/dev-cpp/eigen/files/eigen-3.4.0-ppc-no-vsx.patch
@@ -0,0 +1,195 @@
+https://gitlab.com/libeigen/eigen/-/merge_requests/1028
+https://bugs.gentoo.org/936107
+--- a/Eigen/Core
++++ b/Eigen/Core
+@@ -346,7 +346,7 @@
+ #include "src/Core/CoreIterators.h"
+ #include "src/Core/ConditionEstimator.h"
+
+-#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
++#if defined(EIGEN_VECTORIZE_VSX)
+ #include "src/Core/arch/AltiVec/MatrixProduct.h"
+ #elif defined EIGEN_VECTORIZE_NEON
+ #include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
+--- a/Eigen/src/Core/arch/AltiVec/Complex.h
++++ b/Eigen/src/Core/arch/AltiVec/Complex.h
+@@ -100,6 +100,7 @@
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
++ HasSqrt = 1,
+ #ifdef __VSX__
+ HasBlend = 1,
+ #endif
+@@ -320,6 +321,7 @@
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
++ HasSqrt = 1,
+ HasSetLinear = 0
+ };
+ };
+--- a/Eigen/src/Core/arch/AltiVec/MathFunctions.h
++++ b/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+@@ -40,16 +40,14 @@
+ return pcos_float(_x);
+ }
+
++#ifdef __VSX__
+ #ifndef EIGEN_COMP_CLANG
+ template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+ Packet4f prsqrt<Packet4f>(const Packet4f& x)
+ {
+ return vec_rsqrt(x);
+ }
+-#endif
+
+-#ifdef __VSX__
+-#ifndef EIGEN_COMP_CLANG
+ template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+ Packet2d prsqrt<Packet2d>(const Packet2d& x)
+ {
+@@ -74,6 +72,26 @@
+ {
+ return pexp_double(_x);
+ }
++
++template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
++ BF16_TO_F32_UNARY_OP_WRAPPER(psqrt<Packet4f>, a);
++}
++
++#ifndef EIGEN_COMP_CLANG
++template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
++ BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
++}
++#endif
++#else
++template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
++Packet4f psqrt<Packet4f>(const Packet4f& x)
++{
++ Packet4f a;
++ for (Index i = 0; i < packet_traits<float>::size; i++) {
++ a[i] = numext::sqrt(x[i]);
++ }
++ return a;
++}
+ #endif
+
+ // Hyperbolic Tangent function.
+--- a/Eigen/src/Core/arch/AltiVec/PacketMath.h
++++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h
+@@ -175,16 +175,19 @@
+ #else
+ HasRsqrt = 0,
+ #endif
++ HasTanh = EIGEN_FAST_MATH,
++ HasErf = EIGEN_FAST_MATH,
++ HasRint = 1,
+ #else
+ HasSqrt = 0,
+ HasRsqrt = 0,
+- HasTanh = EIGEN_FAST_MATH,
+- HasErf = EIGEN_FAST_MATH,
++ HasTanh = 0,
++ HasErf = 0,
++ HasRint = 0,
+ #endif
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+- HasRint = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+@@ -217,16 +220,17 @@
+ #else
+ HasRsqrt = 0,
+ #endif
++ HasRint = 1,
+ #else
+ HasSqrt = 0,
+ HasRsqrt = 0,
+- HasTanh = EIGEN_FAST_MATH,
+- HasErf = EIGEN_FAST_MATH,
++ HasRint = 0,
+ #endif
++ HasTanh = 0,
++ HasErf = 0,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+- HasRint = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+@@ -872,19 +876,29 @@
+ return vec_nor(c,c);
+ }
+
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet4i pcmp_le(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmple(a,b)); }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmplt(a,b)); }
+ template<> EIGEN_STRONG_INLINE Packet4i pcmp_eq(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmpeq(a,b)); }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet8s pcmp_le(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmple(a,b)); }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet8s pcmp_lt(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmplt(a,b)); }
+ template<> EIGEN_STRONG_INLINE Packet8s pcmp_eq(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmpeq(a,b)); }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet8us pcmp_le(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmple(a,b)); }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet8us pcmp_lt(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmplt(a,b)); }
+ template<> EIGEN_STRONG_INLINE Packet8us pcmp_eq(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmpeq(a,b)); }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet16c pcmp_le(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmple(a,b)); }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet16c pcmp_lt(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmplt(a,b)); }
+ template<> EIGEN_STRONG_INLINE Packet16c pcmp_eq(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmpeq(a,b)); }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet16uc pcmp_le(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmple(a,b)); }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet16uc pcmp_lt(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmplt(a,b)); }
+ template<> EIGEN_STRONG_INLINE Packet16uc pcmp_eq(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmpeq(a,b)); }
+
+@@ -937,6 +951,7 @@
+ }
+ template<> EIGEN_STRONG_INLINE Packet4f pceil<Packet4f>(const Packet4f& a) { return vec_ceil(a); }
+ template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a) { return vec_floor(a); }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet4f print<Packet4f>(const Packet4f& a)
+ {
+ Packet4f res;
+@@ -947,6 +962,7 @@
+
+ return res;
+ }
++#endif
+
+ template<typename Packet> EIGEN_STRONG_INLINE Packet ploadu_common(const __UNPACK_TYPE__(Packet)* from)
+ {
+@@ -1341,12 +1357,6 @@
+ BF16_TO_F32_BINARY_OP_WRAPPER(psub<Packet4f>, a, b);
+ }
+
+-template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
+- BF16_TO_F32_UNARY_OP_WRAPPER(vec_sqrt, a);
+-}
+-template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
+- BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
+-}
+ template<> EIGEN_STRONG_INLINE Packet8bf pexp<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(pexp_float, a);
+ }
+@@ -1390,9 +1400,11 @@
+ template<> EIGEN_STRONG_INLINE Packet8bf pround<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(pround<Packet4f>, a);
+ }
++#ifdef __VSX__
+ template<> EIGEN_STRONG_INLINE Packet8bf print<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(print<Packet4f>, a);
+ }
++#endif
+ template<> EIGEN_STRONG_INLINE Packet8bf pmadd(const Packet8bf& a, const Packet8bf& b, const Packet8bf& c) {
+ Packet4f a_even = Bf16ToF32Even(a);
+ Packet4f a_odd = Bf16ToF32Odd(a);
diff --git a/dev-cpp/glog/metadata.xml b/dev-cpp/glog/metadata.xml
index b109eca5bd20..f488a88cb0cf 100644
--- a/dev-cpp/glog/metadata.xml
+++ b/dev-cpp/glog/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>arfrever.fta@gmail.com</email>
- <name>Arfrever Frehtes Taifersar Arahesis</name>
- </maintainer>
<maintainer type="project">
<email>cjk@gentoo.org</email>
<name>Cjk</name>
diff --git a/dev-cpp/gtest/gtest-1.14.0-r1.ebuild b/dev-cpp/gtest/gtest-1.14.0-r1.ebuild
index aed50c96f6e4..927e75f3970d 100644
--- a/dev-cpp/gtest/gtest-1.14.0-r1.ebuild
+++ b/dev-cpp/gtest/gtest-1.14.0-r1.ebuild
@@ -21,7 +21,7 @@ else
-> ${P}.tar.gz"
S="${WORKDIR}"/googletest-${GOOGLETEST_COMMIT}
fi
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
fi
DESCRIPTION="Google C++ Testing Framework"
@@ -51,7 +51,12 @@ multilib_src_configure() {
-Dgmock_build_tests=$(usex test)
-Dgtest_build_tests=$(usex test)
)
- use test && mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+ if use test; then
+ if use x86 || use x86-linux; then
+ append-cxxflags -ffloat-store # bug #905007
+ fi
+ mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+ fi
cmake_src_configure
}
diff --git a/dev-cpp/gtest/gtest-9999.ebuild b/dev-cpp/gtest/gtest-9999.ebuild
index aed50c96f6e4..ecb89314e216 100644
--- a/dev-cpp/gtest/gtest-9999.ebuild
+++ b/dev-cpp/gtest/gtest-9999.ebuild
@@ -51,7 +51,12 @@ multilib_src_configure() {
-Dgmock_build_tests=$(usex test)
-Dgtest_build_tests=$(usex test)
)
- use test && mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+ if use test; then
+ if use x86 || use x86-linux; then
+ append-cxxflags -ffloat-store # bug #905007
+ fi
+ mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" )
+ fi
cmake_src_configure
}
diff --git a/dev-cpp/kokkos/Manifest b/dev-cpp/kokkos/Manifest
index 6d7dbbb743e7..9ed03b5fd146 100644
--- a/dev-cpp/kokkos/Manifest
+++ b/dev-cpp/kokkos/Manifest
@@ -1 +1,2 @@
DIST kokkos-4.0.1.tar.gz 2322402 BLAKE2B a4aba2f7ffe7b7c93051ad65d398f442b753975eceb3f83ed1bff0b8c468e4ffdcb6437989e740c65fc550f17ef8ddf78ca50ca881d3953f886309dc7d6fc597 SHA512 cf6742f4be777b52673858b49cf68fdf335e760509688483e62ef41af5026070f69dcf39d010134c85dc6c4868f82a38900872be11ed43190432c8530b90deee
+DIST kokkos-4.3.1.tar.gz 2431142 BLAKE2B 158ceea3c62449f386613b17e996e4d11e9b95c38a92f69fb3c487b90cf5f07dffdafb6ee0a37eff5299e7d1db50efaed4b26b9baebeeea9d675d0d98dd420e4 SHA512 8180ecdec2f0a6167a85dd1eb268996b0310e82098f2329eccf658aff90118a7c85c2f7607984602de2ca48dc45c1dbf30a4843b35c42590e58d4b03beff474a
diff --git a/dev-cpp/kokkos/kokkos-4.3.1.ebuild b/dev-cpp/kokkos/kokkos-4.3.1.ebuild
new file mode 100644
index 000000000000..208704232631
--- /dev/null
+++ b/dev-cpp/kokkos/kokkos-4.3.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="C++ Performance Portability Programming EcoSystem"
+HOMEPAGE="https://github.com/kokkos"
+MY_PV="$(ver_cut 1-2).0$(ver_cut 3)"
+SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 -x86"
+IUSE="+openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="sys-apps/hwloc:="
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_INCLUDEDIR=include/kokkos
+ -DKokkos_ENABLE_TESTS=$(usex test)
+ -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON
+ -DKokkos_ENABLE_SERIAL=ON
+ -DKokkos_ENABLE_HWLOC=ON
+ -DKokkos_HWLOC_DIR="${EPREFIX}/usr"
+ -DKokkos_ENABLE_OPENMP=$(usex openmp)
+ -DBUILD_SHARED_LIBS=ON
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local myctestargs=(
+ # Contains "death tests" which are known/expected(?) to fail
+ # https://github.com/kokkos/kokkos/issues/3033
+ # bug #791514
+ -E "(KokkosCore_UnitTest_OpenMP|KokkosCore_UnitTest_Serial)"
+ )
+
+ cmake_src_test
+}
diff --git a/dev-cpp/prometheus-cpp/metadata.xml b/dev-cpp/prometheus-cpp/metadata.xml
index b25065cee303..af77f88bef95 100644
--- a/dev-cpp/prometheus-cpp/metadata.xml
+++ b/dev-cpp/prometheus-cpp/metadata.xml
@@ -8,10 +8,7 @@
be collected by Prometheus, but other push/pull collections can be added
as plugins.
</longdescription>
- <maintainer type="person">
- <email>marecki@gentoo.org</email>
- <name>Marek Szuba</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<bugs-to>https://github.com/jupp0r/prometheus-cpp/issues</bugs-to>
<doc lang="en">https://jupp0r.github.io/prometheus-cpp/</doc>
diff --git a/dev-cpp/range-v3/range-v3-0.12.0.ebuild b/dev-cpp/range-v3/range-v3-0.12.0.ebuild
index 1109148151c2..fd75ecd9247b 100644
--- a/dev-cpp/range-v3/range-v3-0.12.0.ebuild
+++ b/dev-cpp/range-v3/range-v3-0.12.0.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/ericniebler/${PN}/archive/${PV}.tar.gz -> ${P}.tar.g
LICENSE="Boost-1.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-cpp/rapidfuzz-cpp/Manifest b/dev-cpp/rapidfuzz-cpp/Manifest
index 9910a125a798..ab2c79c90d7e 100644
--- a/dev-cpp/rapidfuzz-cpp/Manifest
+++ b/dev-cpp/rapidfuzz-cpp/Manifest
@@ -1 +1 @@
-DIST rapidfuzz-cpp-3.0.4.gh.tar.gz 301889 BLAKE2B eb4b27a0a6b4e5268036bb0fd79e57136685daf307d808de27515279bed63e1b934f504e9f7c22a20fbb028d322df824fce33398685708a2db3d11de93bd77d3 SHA512 c9cc50f7d68756d81a5d2c5efdd76e859fe5a199bf5e45179effcd85e32f0bb98b593b93c2aa57950a04c3d827af98efb13096b9669329881d658ababc059fd5
+DIST rapidfuzz-cpp-3.0.5.gh.tar.gz 309782 BLAKE2B fd7547e5c40696c217c8ea2aa98fb83b98606cde7439a5d51c80b4de30002896d9e95365d3c6ac56c32d8a8432c94ce2050b856a7e850a3f37035c5d0ece795f SHA512 4e0a7e28a54612fb11eb331449aa4fdfde1fbd2bf59b295f9eb68903cd647a639fa04d71aa7a8c88ddb7be6646cd3d0f1f5400eb53644b0ae96590037e74f771
diff --git a/dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.4.ebuild b/dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.5.ebuild
index e9c6bbefe8e2..e9c6bbefe8e2 100644
--- a/dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.4.ebuild
+++ b/dev-cpp/rapidfuzz-cpp/rapidfuzz-cpp-3.0.5.ebuild
diff --git a/dev-cpp/robin-map/Manifest b/dev-cpp/robin-map/Manifest
index fbc684a36779..756454ea9a41 100644
--- a/dev-cpp/robin-map/Manifest
+++ b/dev-cpp/robin-map/Manifest
@@ -1 +1,2 @@
DIST robin-map-0.6.3.tar.gz 64506 BLAKE2B 46a2b5b47346016695db0c49f73cfbf8530b7db0a31527030eb00f3b6f0695325ab6fe16de1e60d6b1d0793818bdd1e31e50117f2e2e4c50154f65b38ac66d84 SHA512 485557f300d33bda62bb8accdf246819ee8ffe956bc022e7ddca54ff6ad1a9fdb8db8d80690add3ef238e834d1eb8e2905920cb0a0674e7df010f6946d01297b
+DIST robin-map-1.3.0.tar.gz 70562 BLAKE2B be6ee47ea06edd2485c16e02eecf8db28c7d18c2eb933450df54e0bab8c7ded79954a295a65a8990b641896186efef391a9f9f0f5b236ba96154bfa6cac45e14 SHA512 862cb98d771d1acb692e27d1cc8a4f2cda0883b66af7b38b63ea702ed2d4fc4d49e5700ca4d5f5148fee132f36e111c4839d4f8c52c96a9c60f3937d941b2320
diff --git a/dev-cpp/robin-map/robin-map-1.3.0.ebuild b/dev-cpp/robin-map/robin-map-1.3.0.ebuild
new file mode 100644
index 000000000000..5ebd0b902e42
--- /dev/null
+++ b/dev-cpp/robin-map/robin-map-1.3.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="C++ fast hash map and hash set using robin hood hashing"
+HOMEPAGE="https://github.com/Tessil/robin-map"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Tessil/robin-map"
+else
+ SRC_URI="https://github.com/Tessil/robin-map/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? ( dev-libs/boost )
+"
+
+src_test() {
+ cd tests || die
+ sed -i \
+ -e '/Boost_USE_STATIC_LIBS/d' \
+ -e 's/-Werror//' \
+ CMakeLists.txt || die
+ cmake -S "${S}/tests" -B . -GNinja || die
+ eninja
+ ./tsl_robin_map_tests || die
+}
diff --git a/dev-cpp/robin-map/robin-map-9999.ebuild b/dev-cpp/robin-map/robin-map-9999.ebuild
index 99255a6ea187..5ebd0b902e42 100644
--- a/dev-cpp/robin-map/robin-map-9999.ebuild
+++ b/dev-cpp/robin-map/robin-map-9999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit cmake
@@ -13,8 +13,25 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/Tessil/robin-map"
else
SRC_URI="https://github.com/Tessil/robin-map/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
fi
LICENSE="MIT"
SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? ( dev-libs/boost )
+"
+
+src_test() {
+ cd tests || die
+ sed -i \
+ -e '/Boost_USE_STATIC_LIBS/d' \
+ -e 's/-Werror//' \
+ CMakeLists.txt || die
+ cmake -S "${S}/tests" -B . -GNinja || die
+ eninja
+ ./tsl_robin_map_tests || die
+}
diff --git a/dev-cpp/tbb/Manifest b/dev-cpp/tbb/Manifest
index 53078a6dae42..8136b81da2f8 100644
--- a/dev-cpp/tbb/Manifest
+++ b/dev-cpp/tbb/Manifest
@@ -1,8 +1,5 @@
DIST tbb-2020.3.tar.gz 2639788 BLAKE2B 3e92bccdc8179fc049379ccbb8ad7f615623177abc61d813b1a601020c345137bfd7d4c4600cf5b0d587e5ebef677635c3c8124d06b05fdd3325128ed8c9f84a SHA512 04c4b5501418792827190691d03d20d4dc1fd3cbbcf459a4d40c5c2281d964e658f31f133ad3907b78e17ed04f4ff16728ed89487ed0ce2cb239f23feb34bd87
-DIST tbb-2021.10.0.tar.gz 2598088 BLAKE2B ba8352474b97c3d98b534cbfd8f61af165352967529f19226dbae17f17d20a8b5dfd7a3b29bab85431620cea1ee1c5990ec7311cc9b1b865d6aa1800540dd6d0 SHA512 d71cf317e7f78948c1ea20977cfcfba1eff72cb20c457c87e624cb3aaa3215a1c24eeeec11ed6ed99cf118c577d956234202458bb5e0215c9c317099d9c3b732
-DIST tbb-2021.11.0.tar.gz 2613493 BLAKE2B 2b56042c8126709b6f36c1118685b28ddf2ff39b6563aae168d6bb8106d234757ff125a39da37f907a7da62f2f2ad64e4db01ca028d20c1e74def4ba2e92c1a6 SHA512 4779141b7602f2fa3a509fdd346824ba270a3a568df3649ce8cb51264d233df5cec5e5cb67b91319dd11d3d5e054697b4ed345e07216107985ddb6e1e7ef94e5
DIST tbb-2021.12.0.tar.gz 2617255 BLAKE2B 3e1db8b1972a7225c5355def66ae40006e6e0f0f97e2efff45dd361f724e348a2f0476bc14b59f89f5361cac6fa36a4973602467bc7fbb2b8b139a4ff4dd58de SHA512 64022bcb61cf7b2030a1bcc11168445ef9f0d69b70290233a7febb71cc7a12cc2282dddc045f84e30893efe276342f02fd78d176706268eeaefe9aac7446d4e9
-DIST tbb-2021.5.0.tar.gz 2463218 BLAKE2B 2d50d312b86318ba4923afe68753b3781f9646cbdb33861f3458301a3a19b7ca3aab6959dca085294dfc743d7f552635f80fb524ec5d780a46f58ffe02e3280d SHA512 0e7b71022e397a6d7abb0cea106847935ae79a1e12a6976f8d038668c6eca8775ed971202c5bd518f7e517092b67af805cc5feb04b5c3a40e9fbf972cc703a46
+DIST tbb-2021.13.0.tar.gz 2613916 BLAKE2B 0edd2d8a966dba673e50827629491924140a302430f4380e7cd9914f3592eaf6515204c7267649237970a5482cc030f0c29cbddd1476f16caf46989f70041058 SHA512 1f536b98c4eb331c3ba21e4b36362c932d7852b974ea7237b5f7bffb0e996d76f688c7ac534cb56f5866cfdffd5d3f015521b4c2ca21e584503070782ca82a2f
DIST tbb-2021.7.0.tar.gz 2571727 BLAKE2B 2977ef1a33d9bc7baa40e0e57c02e62798a09c6c66cdbe369f2702d87fd9877c3d97f8d83f71384028995ea0956f5c5630d4aaf4edbe68538e7c514d3b87085c SHA512 d314e3d88b85c96607a9eda15e3d808bf361eb562a534c59101929236e90c187883e7718e5435b5e7f01f4ee652c9765af95f5f173368b83997e4666b7403a49
-DIST tbb-2021.8.0.tar.gz 2575336 BLAKE2B 2c3a7f0e59d70b17550f805461a15a520c7f1b3a37a41bd51c51f9f5863b50812d2b939351e11e0f4ceb3da8a47e413abe171bcb6bfb71c0fe2f81ed373f65f2 SHA512 72f68730dfd89409796f9548d3c302111787712089688a7c77092ed1b3a7bf4e7444fe4b58015d2c78b7b71259852526789b2483bf1e71bea8146c4b4676e7b4
DIST tbb-2021.9.0.tar.gz 2579150 BLAKE2B f6f701df1605913770222689063ff422416f86f132fb3fbc80f383b7c52762d3804e75200ca4826906b16c66f674918bcfd78b16a1dafb499ca53a9d2b6652ec SHA512 2ece7f678ad7c8968c0ad5cda9f987e4b318c6d9735169e1039beb0ff8dfca18815835875211acc6c7068913d9b0bdd4c9ded22962b0bb48f4a0ce0f7b78f31c
diff --git a/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch b/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch
new file mode 100644
index 000000000000..7cc8216153d0
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-2021.13.0-test-atomics.patch
@@ -0,0 +1,38 @@
+From c828ae47b8f4bea7736d2f9d05460e2b529c9d7d Mon Sep 17 00:00:00 2001
+From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
+Date: Fri, 9 Dec 2022 12:36:11 +0100
+Subject: [PATCH] Add cmake check for libatomic requirement when building with
+ gcc (#980)
+
+Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
+---
+ cmake/compilers/GNU.cmake | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake
+index cd76acfe1e..59f4e6934f 100644
+--- a/cmake/compilers/GNU.cmake
++++ b/cmake/compilers/GNU.cmake
+@@ -44,6 +44,22 @@ if (NOT MINGW)
+ set(TBB_COMMON_LINK_LIBS dl)
+ endif()
+
++# Check whether code with full atomics can be built without libatomic
++# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358
++include(CheckCXXSourceCompiles)
++check_cxx_source_compiles("#include <atomic>
++int main() {
++ std::atomic<uint8_t> w1;
++ std::atomic<uint16_t> w2;
++ std::atomic<uint32_t> w4;
++ std::atomic<uint64_t> w8;
++ return ++w1 + ++w2 + ++w4 + ++w8;
++}" TBB_BUILDS_WITHOUT_LIBATOMIC)
++
++if(NOT TBB_BUILDS_WITHOUT_LIBATOMIC)
++ set(TBB_COMMON_LINK_LIBS ${TBB_COMMON_LINK_LIBS} atomic)
++endif()
++
+ # Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
+ if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
+ tbb_remove_compile_flag(-Werror)
diff --git a/dev-cpp/tbb/files/tbb-2021.4.0-lto.patch b/dev-cpp/tbb/files/tbb-2021.4.0-lto.patch
deleted file mode 100644
index 1c9705576004..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.4.0-lto.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-https://github.com/oneapi-src/oneTBB/pull/608
-
-From 6feeba8035ea2bdf652d473a35730b19427752db Mon Sep 17 00:00:00 2001
-From: Ivan Kochin <kochin.ivan@intel.com>
-Date: Wed, 27 Oct 2021 17:23:32 +0300
-Subject: [PATCH] Use native CMake way to detect the IPO support (#608)
-
-* Use native CMake way to detect the IPO support
-
-Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
----
- CMakeLists.txt | 17 +++++++++++++++++
- cmake/README.md | 1 +
- cmake/compilers/Clang.cmake | 8 ++------
- cmake/compilers/GNU.cmake | 8 +++-----
- cmake/compilers/MSVC.cmake | 1 +
- cmake/utils.cmake | 13 +++++++++++++
- src/tbb/CMakeLists.txt | 5 ++---
- src/tbbbind/CMakeLists.txt | 6 +++---
- src/tbbmalloc/CMakeLists.txt | 5 ++---
- 9 files changed, 44 insertions(+), 20 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 13b1dbc2c..4dbdadb97 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -103,6 +103,7 @@ option(TBBMALLOC_BUILD "Enable tbbmalloc build" ON)
- option(TBB_CPF "Enable preview features of the library" OFF)
- option(TBB_FIND_PACKAGE "Enable search for external oneTBB using find_package instead of build from sources" OFF)
- option(TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH "Disable HWLOC automatic search by pkg-config tool" OFF)
-+option(TBB_ENABLE_IPO "Enable Interprocedural Optimization (IPO) during the compilation" ON)
-
- if (NOT DEFINED BUILD_SHARED_LIBS)
- set(BUILD_SHARED_LIBS ON)
-@@ -181,6 +182,22 @@ foreach(FILE_WITH_EXTRA_TARGETS ${FILES_WITH_EXTRA_TARGETS})
- include(${FILE_WITH_EXTRA_TARGETS})
- endforeach()
-
-+# - Enabling LTO on Android causes the NDK bug.
-+# NDK throws the warning: "argument unused during compilation: '-Wa,--noexecstack'"
-+# - For some reason GCC does not instrument code with Thread Sanitizer when lto is enabled and C linker is used.
-+if (TBB_ENABLE_IPO AND BUILD_SHARED_LIBS AND NOT ANDROID_PLATFORM AND NOT TBB_SANITIZE MATCHES "thread")
-+ if (NOT CMAKE_VERSION VERSION_LESS 3.9)
-+ cmake_policy(SET CMP0069 NEW)
-+ include(CheckIPOSupported)
-+ check_ipo_supported(RESULT TBB_IPO_PROPERTY)
-+ else()
-+ set(TBB_IPO_FLAGS TRUE)
-+ endif()
-+ if (TBB_IPO_PROPERTY OR TBB_IPO_FLAGS)
-+ message(STATUS "IPO enabled")
-+ endif()
-+endif()
-+
- set(TBB_COMPILER_SETTINGS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compilers/${CMAKE_CXX_COMPILER_ID}.cmake)
- if (EXISTS ${TBB_COMPILER_SETTINGS_FILE})
- include(${TBB_COMPILER_SETTINGS_FILE})
-diff --git a/cmake/README.md b/cmake/README.md
-index ec56e423c..ed1631de3 100644
---- a/cmake/README.md
-+++ b/cmake/README.md
-@@ -16,6 +16,7 @@ TBB_CPF:BOOL - Enable preview features of the library (OFF by default)
- TBB_INSTALL_VARS:BOOL - Enable auto-generated vars installation(packages generated by `cpack` and `make install` will also include the vars script)(OFF by default)
- TBB_VALGRIND_MEMCHECK:BOOL - Enable scan for memory leaks using Valgrind (OFF by default)
- TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH - Disable HWLOC automatic search by pkg-config tool (OFF by default)
-+TBB_ENABLE_IPO - Enable Interprocedural Optimization (IPO) during the compilation (ON by default)
- ```
-
- ## Configure, build and test
-diff --git a/cmake/compilers/Clang.cmake b/cmake/compilers/Clang.cmake
-index 183341fcc..69aa51932 100644
---- a/cmake/compilers/Clang.cmake
-+++ b/cmake/compilers/Clang.cmake
-@@ -58,12 +58,8 @@ if (MINGW)
- list(APPEND TBB_COMMON_COMPILE_FLAGS -U__STRICT_ANSI__)
- endif()
-
--# Enabling LTO on Android causes the NDK bug.
--# NDK throws the warning: "argument unused during compilation: '-Wa,--noexecstack'"
--if (NOT ANDROID_PLATFORM AND BUILD_SHARED_LIBS)
-- set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-- set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
--endif()
-+set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-+set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-
- # TBB malloc settings
- set(TBBMALLOC_LIB_COMPILE_FLAGS -fno-rtti -fno-exceptions)
-diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake
-index fa14c869e..a9cfa8927 100644
---- a/cmake/compilers/GNU.cmake
-+++ b/cmake/compilers/GNU.cmake
-@@ -63,11 +63,9 @@ if (MINGW)
- list(APPEND TBB_COMMON_COMPILE_FLAGS -U__STRICT_ANSI__)
- endif()
-
--# For some reason GCC does not instrument code with Thread Sanitizer when lto is enabled and C linker is used.
--if (NOT TBB_SANITIZE MATCHES "thread")
-- set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-- set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
--endif()
-+set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-+set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-+
-
- # TBB malloc settings
- set(TBBMALLOC_LIB_COMPILE_FLAGS -fno-rtti -fno-exceptions)
-diff --git a/cmake/compilers/MSVC.cmake b/cmake/compilers/MSVC.cmake
-index 3447418cc..5767235a0 100644
---- a/cmake/compilers/MSVC.cmake
-+++ b/cmake/compilers/MSVC.cmake
-@@ -77,6 +77,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|IntelLLVM)")
- endif()
- set(TBB_OPENMP_NO_LINK_FLAG TRUE)
- set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
-+ set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
- else()
- set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:/GL>)
- set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-LTCG> $<$<NOT:$<CONFIG:Debug>>:-INCREMENTAL:NO>)
-diff --git a/cmake/utils.cmake b/cmake/utils.cmake
-index 06d3a9aee..f74abfcf9 100644
---- a/cmake/utils.cmake
-+++ b/cmake/utils.cmake
-@@ -44,3 +44,16 @@ macro(tbb_install_target target)
- COMPONENT devel)
- endif()
- endmacro()
-+
-+macro(tbb_handle_ipo target)
-+ if (TBB_IPO_PROPERTY)
-+ set_target_properties(${target} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
-+ elseif (TBB_IPO_FLAGS)
-+ target_compile_options(${target} PRIVATE ${TBB_IPO_COMPILE_FLAGS})
-+ if (COMMAND target_link_options)
-+ target_link_options(${target} PRIVATE ${TBB_IPO_LINK_FLAGS})
-+ else()
-+ target_link_libraries(${target} PRIVATE ${TBB_IPO_LINK_FLAGS})
-+ endif()
-+ endif()
-+endmacro()
-diff --git a/src/tbb/CMakeLists.txt b/src/tbb/CMakeLists.txt
-index 80fdcdcde..021392d89 100644
---- a/src/tbb/CMakeLists.txt
-+++ b/src/tbb/CMakeLists.txt
-@@ -79,7 +79,6 @@ target_compile_options(tbb
- ${TBB_WARNING_SUPPRESS}
- ${TBB_LIB_COMPILE_FLAGS}
- ${TBB_COMMON_COMPILE_FLAGS}
-- ${TBB_IPO_COMPILE_FLAGS}
- )
-
- # Avoid use of target_link_libraries here as it changes /DEF option to \DEF on Windows.
-@@ -89,6 +88,8 @@ set_target_properties(tbb PROPERTIES
- SOVERSION ${TBB_BINARY_VERSION}
- )
-
-+tbb_handle_ipo(tbb)
-+
- if (TBB_DEF_FILE_PREFIX) # If there's no prefix, assume we're using export directives
- set_target_properties(tbb PROPERTIES
- LINK_FLAGS ${TBB_LINK_DEF_FILE_FLAG}${CMAKE_CURRENT_SOURCE_DIR}/def/${TBB_DEF_FILE_PREFIX}-tbb.def
-@@ -103,14 +104,12 @@ if (COMMAND target_link_options)
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- else()
- target_link_libraries(tbb
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- endif()
-
-diff --git a/src/tbbbind/CMakeLists.txt b/src/tbbbind/CMakeLists.txt
-index 99b7ccaac..3233ec718 100644
---- a/src/tbbbind/CMakeLists.txt
-+++ b/src/tbbbind/CMakeLists.txt
-@@ -46,7 +46,6 @@ function(tbbbind_build TBBBIND_NAME REQUIRED_HWLOC_TARGET)
- ${TBB_WARNING_LEVEL}
- ${TBB_LIB_COMPILE_FLAGS}
- ${TBB_COMMON_COMPILE_FLAGS}
-- ${TBB_IPO_COMPILE_FLAGS}
- )
-
- # Avoid use of target_link_libraries here as it changes /DEF option to \DEF on Windows.
-@@ -55,6 +54,9 @@ function(tbbbind_build TBBBIND_NAME REQUIRED_HWLOC_TARGET)
- VERSION ${TBBBIND_BINARY_VERSION}.${TBB_BINARY_MINOR_VERSION}
- SOVERSION ${TBBBIND_BINARY_VERSION}
- )
-+
-+ tbb_handle_ipo(${TBBBIND_NAME})
-+
- if (TBB_DEF_FILE_PREFIX) # If there's no prefix, assume we're using export directives
- set_target_properties(${TBBBIND_NAME} PROPERTIES
- LINK_FLAGS ${TBB_LINK_DEF_FILE_FLAG}${CMAKE_CURRENT_SOURCE_DIR}/def/${TBB_DEF_FILE_PREFIX}-tbbbind.def
-@@ -69,14 +71,12 @@ function(tbbbind_build TBBBIND_NAME REQUIRED_HWLOC_TARGET)
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- else()
- target_link_libraries(${TBBBIND_NAME}
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- endif()
-
-diff --git a/src/tbbmalloc/CMakeLists.txt b/src/tbbmalloc/CMakeLists.txt
-index f77bc8f10..5a851851f 100644
---- a/src/tbbmalloc/CMakeLists.txt
-+++ b/src/tbbmalloc/CMakeLists.txt
-@@ -59,7 +59,6 @@ target_compile_options(tbbmalloc
- ${TBB_LIB_COMPILE_FLAGS}
- ${TBBMALLOC_LIB_COMPILE_FLAGS}
- ${TBB_COMMON_COMPILE_FLAGS}
-- ${TBB_IPO_COMPILE_FLAGS}
- )
-
- enable_language(C)
-@@ -72,6 +71,8 @@ set_target_properties(tbbmalloc PROPERTIES
- LINKER_LANGUAGE C
- )
-
-+tbb_handle_ipo(tbbmalloc)
-+
- if (TBB_DEF_FILE_PREFIX) # If there's no prefix, assume we're using export directives
- set_target_properties(tbbmalloc PROPERTIES
- LINK_FLAGS ${TBB_LINK_DEF_FILE_FLAG}${CMAKE_CURRENT_SOURCE_DIR}/def/${TBB_DEF_FILE_PREFIX}-tbbmalloc.def
-@@ -88,14 +89,12 @@ if (COMMAND target_link_options)
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- else()
- target_link_libraries(tbbmalloc
- PRIVATE
- ${TBB_LIB_LINK_FLAGS}
- ${TBB_COMMON_LINK_FLAGS}
-- ${TBB_IPO_LINK_FLAGS}
- )
- endif()
-
diff --git a/dev-cpp/tbb/files/tbb-2021.4.0-missing-TBB_machine_fetchadd4.patch b/dev-cpp/tbb/files/tbb-2021.4.0-missing-TBB_machine_fetchadd4.patch
deleted file mode 100644
index 091cad5821e7..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.4.0-missing-TBB_machine_fetchadd4.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-https://github.com/oneapi-src/oneTBB/issues/186
-https://github.com/oneapi-src/oneTBB/pull/550
-https://bugs.gentoo.org/827883
-
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Thu, 7 Oct 2021 14:16:16 +0800
-Subject: [PATCH] Define ITT_ARCH_IA64 when undefiend (#550)
-
-Upstream-Status: Merged in commit later than 2021.5.0
-
---- a/src/tbb/tools_api/ittnotify_config.h
-+++ b/src/tbb/tools_api/ittnotify_config.h
-@@ -147,6 +147,10 @@
- # define ITT_ARCH_IA32E 2
- #endif /* ITT_ARCH_IA32E */
-
-+#ifndef ITT_ARCH_IA64
-+# define ITT_ARCH_IA64 3
-+#endif /* ITT_ARCH_IA64 */
-+
- #ifndef ITT_ARCH_ARM
- # define ITT_ARCH_ARM 4
- #endif /* ITT_ARCH_ARM */
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-flags-stripping.patch b/dev-cpp/tbb/files/tbb-2021.5.0-flags-stripping.patch
deleted file mode 100644
index 4252ea446423..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.5.0-flags-stripping.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-https://github.com/oneapi-src/oneTBB/pull/716
-
-From 9595b9699ae6863d1e0cf770a89728eafcaf8845 Mon Sep 17 00:00:00 2001
-From: Christoph Erhardt <github@sicherha.de>
-Date: Wed, 5 Jan 2022 15:13:32 +0100
-Subject: [PATCH] Fix overeager stripping of compile flag
-
-The existing regex strips all occurrences of the given string from
-`${CMAKE_CXX_FLAGS}`, regardless of whether it is just a substring of a
-flag. For instance, `-Werror=format-security` gets truncated to
-`=format-security`.
-
-The new regex makes sure that only whole words get replaced.
-
-Signed-off-by: Christoph Erhardt <github@sicherha.de>
---- a/cmake/utils.cmake
-+++ b/cmake/utils.cmake
-@@ -18,7 +18,7 @@ macro(tbb_remove_compile_flag flag)
- set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY COMPILE_OPTIONS ${_tbb_compile_options})
- unset(_tbb_compile_options)
- if (CMAKE_CXX_FLAGS)
-- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
-+ string(REGEX REPLACE "(^|[ \t\r\n]+)${flag}($|[ \t\r\n]+)" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- endif()
- endmacro()
-
-
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-musl-deepbind.patch b/dev-cpp/tbb/files/tbb-2021.5.0-musl-deepbind.patch
deleted file mode 100644
index 014a3863f452..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.5.0-musl-deepbind.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://github.com/oneapi-src/oneTBB/commit/883c2e5245c39624b3b5d6d56d5b203cf09eac38
-https://bugs.gentoo.org/830698
-
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 15 Dec 2021 08:08:07 -0800
-Subject: [PATCH] Musl/linux can not use RTLD_DEEPBIND (#684)
-
-Exclude non-glibc linux systems along with android
-Fixes
-src/tbb/dynamic_link.cpp:417:29: error: use
- of undeclared identifier 'RTLD_DEEPBIND' | flags = flags | RTLD_DEEPBIND;
-| ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/tbb/dynamic_link.cpp
-+++ b/src/tbb/dynamic_link.cpp
-@@ -413,7 +413,7 @@ namespace r1 {
- int flags = RTLD_NOW;
- if (local_binding) {
- flags = flags | RTLD_LOCAL;
--#if __linux__ && !__ANDROID__ && !__TBB_USE_SANITIZERS
-+#if (__linux__ && __GLIBC__) && !__TBB_USE_SANITIZERS
- flags = flags | RTLD_DEEPBIND;
- #endif
- } else {
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-musl-mallinfo.patch b/dev-cpp/tbb/files/tbb-2021.5.0-musl-mallinfo.patch
deleted file mode 100644
index e46c16f42f59..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.5.0-musl-mallinfo.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-https://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
-https://github.com/oneapi-src/oneTBB/pull/203
-https://bugs.gentoo.org/828704
-
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 7 Apr 2021 11:14:13 +0800
-Subject: [PATCH] mallinfo() is glibc specific API mark it so
-
-Helps compiling with musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---- a/src/tbbmalloc_proxy/proxy.cpp
-+++ b/src/tbbmalloc_proxy/proxy.cpp
-@@ -260,6 +260,7 @@ int mallopt(int /*param*/, int /*value*/
- return 1;
- }
-
-+#ifdef __GLIBC__
- struct mallinfo mallinfo() __THROW
- {
- struct mallinfo m;
-@@ -267,6 +268,7 @@ struct mallinfo mallinfo() __THROW
-
- return m;
- }
-+#endif
-
- #if __ANDROID__
- // Android doesn't have malloc_usable_size, provide it to be compatible
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch b/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch
deleted file mode 100644
index 111bbf123d9a..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://bugs.gentoo.org/832700
-https://github.com/oneapi-src/oneTBB/commit/6a15b64093c51ddc00bdf4a6b49d4bbec1574a12
-
-From: Rui Ueyama <rui314@gmail.com>
-Date: Fri, 4 Feb 2022 19:32:11 +0900
-Subject: [PATCH] Make tbb compile with musl libc (#748)
-
-TBB resumable tasks are implemented using getcontext() and setcontext()
-on Unix-like systems. These functions are deprecated in the recent
-versions of POSIX and may not exist. musl libc does not provide these
-functions.
-
-There's unfortunately no way to detect musl (musl intentionally do not
-define macros like `__MUSL__`), so __TBB_RESUMABLE_TASKS is defined if
-`__GLIBC__`. glibc-compatible libc's such as uClibc defines `__GLIBC__`,
-so it should work as a catch-all condition.
-
-Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>
---- a/include/oneapi/tbb/detail/_config.h
-+++ b/include/oneapi/tbb/detail/_config.h
-@@ -268,7 +268,7 @@
- #define __TBB_CPP20_COMPARISONS_PRESENT __TBB_CPP20_PRESENT
- #endif
-
--#define __TBB_RESUMABLE_TASKS (!__TBB_WIN8UI_SUPPORT && !__ANDROID__ && !__QNXNTO__)
-+#define __TBB_RESUMABLE_TASKS (!__TBB_WIN8UI_SUPPORT && !__ANDROID__ && !__QNXNTO__ && (!__linux__ || __GLIBC__))
-
- /* This macro marks incomplete code or comments describing ideas which are considered for the future.
- * See also for plain comment with TODO and FIXME marks for small improvement opportunities.
-
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-x86-mwaitpkg.patch b/dev-cpp/tbb/files/tbb-2021.5.0-x86-mwaitpkg.patch
deleted file mode 100644
index 83f119a9acd3..000000000000
--- a/dev-cpp/tbb/files/tbb-2021.5.0-x86-mwaitpkg.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-https://github.com/oneapi-src/oneTBB/pull/609
-https://github.com/oneapi-src/oneTBB/issues/370
-https://bugs.gentoo.org/842762
-
-From 542a27fa1cfafaf76772e793549d9f4d288d03a9 Mon Sep 17 00:00:00 2001
-From: Ilya Isaev <ilya.isaev@intel.com>
-Date: Fri, 8 Oct 2021 10:18:16 +0300
-Subject: [PATCH] Detect 32 bit x86 systems while adding -mwaitpkg option
-
-Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
---- a/cmake/compilers/Clang.cmake
-+++ b/cmake/compilers/Clang.cmake
-@@ -44,7 +44,7 @@ if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
- endif()
-
- # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
--if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
-+if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)")
- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},12.0>>:-mwaitpkg>)
- endif()
-
---- a/cmake/compilers/GNU.cmake
-+++ b/cmake/compilers/GNU.cmake
-@@ -36,7 +36,7 @@ if (NOT CMAKE_GENERATOR MATCHES "Ninja" AND NOT CMAKE_CXX_DEPENDS_USE_COMPILER)
- endif()
-
- # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
--if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
-+if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)")
- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<AND:$<NOT:$<CXX_COMPILER_ID:Intel>>,$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},11.0>>>:-mwaitpkg>)
- endif()
-
---- a/cmake/compilers/MSVC.cmake
-+++ b/cmake/compilers/MSVC.cmake
-@@ -72,7 +72,7 @@ if (TBB_WINDOWS_DRIVER)
- endif()
-
- if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|IntelLLVM)")
-- if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
-+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)")
- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm -mwaitpkg)
- endif()
- set(TBB_OPENMP_NO_LINK_FLAG TRUE)
diff --git a/dev-cpp/tbb/tbb-2021.10.0.ebuild b/dev-cpp/tbb/tbb-2021.10.0.ebuild
deleted file mode 100644
index 3d0e05e45514..000000000000
--- a/dev-cpp/tbb/tbb-2021.10.0.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib flag-o-matic
-
-DESCRIPTION="High level abstract threading library"
-HOMEPAGE="https://github.com/oneapi-src/oneTBB"
-SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/oneTBB-${PV}"
-
-LICENSE="Apache-2.0"
-# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53
-# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME>
-SLOT="0/12.5-2.5-3.5"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch
-)
-
-src_prepare() {
- # Workaround for bug #912210
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- # Has an #error to force compilation as C but links with C++ library, dies
- # with GLIBCXX_ASSERTIONS as a result.
- sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' test/CMakeLists.txt || die
-
- cmake_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DTBB_TEST=$(usex test)
- -DTBB_ENABLE_IPO=OFF
- -DTBB_STRICT=OFF
- )
-
- cmake-multilib_src_configure
-}
diff --git a/dev-cpp/tbb/tbb-2021.12.0.ebuild b/dev-cpp/tbb/tbb-2021.12.0.ebuild
index 3ac69c080835..ac958e5973a4 100644
--- a/dev-cpp/tbb/tbb-2021.12.0.ebuild
+++ b/dev-cpp/tbb/tbb-2021.12.0.ebuild
@@ -24,6 +24,7 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch
+ "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch
)
src_prepare() {
diff --git a/dev-cpp/tbb/tbb-2021.11.0.ebuild b/dev-cpp/tbb/tbb-2021.13.0.ebuild
index 3ac69c080835..ac958e5973a4 100644
--- a/dev-cpp/tbb/tbb-2021.11.0.ebuild
+++ b/dev-cpp/tbb/tbb-2021.13.0.ebuild
@@ -24,6 +24,7 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch
+ "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch
)
src_prepare() {
diff --git a/dev-cpp/tbb/tbb-2021.5.0-r1.ebuild b/dev-cpp/tbb/tbb-2021.5.0-r1.ebuild
deleted file mode 100644
index adb066b4c2d9..000000000000
--- a/dev-cpp/tbb/tbb-2021.5.0-r1.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib flag-o-matic
-
-DESCRIPTION="High level abstract threading library"
-HOMEPAGE="https://github.com/oneapi-src/oneTBB"
-SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/oneTBB-${PV}"
-
-LICENSE="Apache-2.0"
-# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53
-# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME>
-SLOT="0/12.5-2.5-3.5"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- # should be in.. 2022?
- "${FILESDIR}"/${PN}-2021.4.0-lto.patch
- "${FILESDIR}"/${PN}-2021.5.0-musl-deepbind.patch
- # bug 827883
- "${FILESDIR}"/${PN}-2021.4.0-missing-TBB_machine_fetchadd4.patch
- # need to verify this is in master
- "${FILESDIR}"/${PN}-2021.5.0-musl-mallinfo.patch
- # musl again, should be in.. 2022?
- "${FILESDIR}"/${PN}-2021.5.0-musl-setcontext.patch
- # should be in.. 2022?
- "${FILESDIR}"/${PN}-2021.5.0-x86-mwaitpkg.patch
-
- "${FILESDIR}"/${PN}-2021.5.0-flags-stripping.patch
-)
-
-src_configure() {
- # Workaround for bug #912210
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- # Workaround for bug #912210
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- local mycmakeargs=(
- -DTBB_TEST=$(usex test)
- -DTBB_ENABLE_IPO=OFF
- -DTBB_STRICT=OFF
- )
-
- cmake-multilib_src_configure
-}
diff --git a/dev-cpp/tbb/tbb-2021.7.0.ebuild b/dev-cpp/tbb/tbb-2021.7.0.ebuild
deleted file mode 100644
index 972e90e1702f..000000000000
--- a/dev-cpp/tbb/tbb-2021.7.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib flag-o-matic
-
-DESCRIPTION="High level abstract threading library"
-HOMEPAGE="https://github.com/oneapi-src/oneTBB"
-SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/oneTBB-${PV}"
-
-LICENSE="Apache-2.0"
-# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53
-# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME>
-SLOT="0/12.5-2.5-3.5"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-src_configure() {
- # Workaround for bug #912210
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- # bug #872287
- filter-flags -D_GLIBCXX_ASSERTIONS
- append-cppflags -U_GLIBCXX_ASSERTIONS
-
- local mycmakeargs=(
- -DTBB_TEST=$(usex test)
- -DTBB_ENABLE_IPO=OFF
- -DTBB_STRICT=OFF
- )
-
- cmake-multilib_src_configure
-}
diff --git a/dev-cpp/tbb/tbb-2021.8.0.ebuild b/dev-cpp/tbb/tbb-2021.8.0.ebuild
deleted file mode 100644
index 9b77bc83b8e5..000000000000
--- a/dev-cpp/tbb/tbb-2021.8.0.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib flag-o-matic
-
-DESCRIPTION="High level abstract threading library"
-HOMEPAGE="https://github.com/oneapi-src/oneTBB"
-SRC_URI="https://github.com/oneapi-src/oneTBB/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/oneTBB-${PV}"
-
-LICENSE="Apache-2.0"
-# https://github.com/oneapi-src/oneTBB/blob/master/CMakeLists.txt#L53
-# libtbb<SONAME>-libtbbmalloc<SONAME>-libtbbbind<SONAME>
-SLOT="0/12.5-2.5-3.5"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="!kernel_Darwin? ( sys-apps/hwloc:= )"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2021.7.0-pthread-eagain.patch
- "${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch
-)
-
-src_prepare() {
- # Has an #error to force compilation as C but links with C++ library, dies
- # with GLIBCXX_ASSERTIONS as a result.
- sed -i -e '/tbb_add_c_test(SUBDIR tbbmalloc NAME test_malloc_pure_c DEPENDENCIES TBB::tbbmalloc)/d' test/CMakeLists.txt || die
-
- cmake_src_prepare
-}
-
-src_configure() {
- # Workaround for bug #912210
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- local mycmakeargs=(
- -DTBB_TEST=$(usex test)
- -DTBB_ENABLE_IPO=OFF
- -DTBB_STRICT=OFF
- )
-
- cmake-multilib_src_configure
-}
diff --git a/dev-cpp/tbb/tbb-2021.9.0.ebuild b/dev-cpp/tbb/tbb-2021.9.0.ebuild
index 2a0013ba8bb3..bbcc7a8f808a 100644
--- a/dev-cpp/tbb/tbb-2021.9.0.ebuild
+++ b/dev-cpp/tbb/tbb-2021.9.0.ebuild
@@ -24,6 +24,7 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-2021.8.0-gcc-13.patch
+ "${FILESDIR}"/${PN}-2021.13.0-test-atomics.patch
)
src_prepare() {
diff --git a/dev-cpp/xsimd/Manifest b/dev-cpp/xsimd/Manifest
index 70aa1f59c986..b126af725d2e 100644
--- a/dev-cpp/xsimd/Manifest
+++ b/dev-cpp/xsimd/Manifest
@@ -1,2 +1,3 @@
DIST xsimd-11.1.0.tar.gz 219350 BLAKE2B 2bbbc4f7dbe489a407fe798b146c008aba44664efc943c2e1507d5c6e7da2a03ed91abf0d872e5abf9bd94be3e76bef276ec5b47d4e356b42a7b4c680bd6f3d9 SHA512 3a6141dfa4d95a977f4222880dfd06197613d153a78a84653022423279eec037ea9def08ae225aba7231c0b2c434ab7c907c965f8367fb0db9b96113980b51f3
DIST xsimd-12.1.1.tar.gz 253141 BLAKE2B 29efbb045d8ade8737d702a73f3d0a912111dd4fbc84485c0e54c8b06d73edbb4b85f4b51e24da9bed0dea010b0cce9d99b57e20e8b94d3daf90d46031548eb9 SHA512 8e45a8e9b28358d5f20f713ea19a8c366edc62790c27984149f283dfe808d78a549c8ec465e8b3677d7e30b2cb80093908de364bbb9dc80683f5fdfb843131e1
+DIST xsimd-13.0.0.tar.gz 259967 BLAKE2B 63267c75a7e8ed2e8689a912e79a1d012ff3cf3813969f97a640801e372ec9e66a6e3d3034b6918a30dc3374e8211fd1107f1309156354b6bca6ba17c6f132b4 SHA512 cdc42ddad3353297cf25ea2b6b3f09967f5f388efc26241f2997979fdbbac072819ff771145bc5bfa86cb326cca84b4119e8e6e3f658407961cf203a40603a7f
diff --git a/dev-cpp/xsimd/files/xsimd-13.0.0-detection-simd-with-mitigations.patch b/dev-cpp/xsimd/files/xsimd-13.0.0-detection-simd-with-mitigations.patch
new file mode 100644
index 000000000000..6aab22cd8416
--- /dev/null
+++ b/dev-cpp/xsimd/files/xsimd-13.0.0-detection-simd-with-mitigations.patch
@@ -0,0 +1,148 @@
+https://mail.kde.org/pipermail/distributions/2024-July/001511.html
+https://github.com/xtensor-stack/xsimd/commit/96edf0340492fa9c080f5182b38358ca85baef5e
+
+From 96edf0340492fa9c080f5182b38358ca85baef5e Mon Sep 17 00:00:00 2001
+From: Dmitry Kazakov <dimula73@gmail.com>
+Date: Tue, 28 May 2024 22:21:08 +0200
+Subject: [PATCH] Fix detection of SSE/AVX/AVX512 when they are explicitly
+ disabled by OS
+
+Some CPU vulnerability mitigations may disable AVX functionality
+on the hardware level via the XCR0 register. We should check that
+manually to verify that OS actually allows us to use this feature.
+
+See https://bugs.kde.org/show_bug.cgi?id=484622
+
+Fix #1025
+---
+ include/xsimd/config/xsimd_cpuid.hpp | 91 ++++++++++++++++++++++------
+ 1 file changed, 72 insertions(+), 19 deletions(-)
+
+diff --git a/include/xsimd/config/xsimd_cpuid.hpp b/include/xsimd/config/xsimd_cpuid.hpp
+index f22089bac..6dda3be09 100644
+--- a/include/xsimd/config/xsimd_cpuid.hpp
++++ b/include/xsimd/config/xsimd_cpuid.hpp
+@@ -114,6 +114,35 @@ namespace xsimd
+ #endif
+
+ #elif defined(__x86_64__) || defined(__i386__) || defined(_M_AMD64) || defined(_M_IX86)
++
++ auto get_xcr0_low = []() noexcept
++ {
++ uint32_t xcr0;
++
++#if defined(_MSC_VER) && _MSC_VER >= 1400
++
++ xcr0 = (uint32_t)_xgetbv(0);
++
++#elif defined(__GNUC__)
++
++ __asm__(
++ "xorl %%ecx, %%ecx\n"
++ "xgetbv\n"
++ : "=a"(xcr0)
++ :
++#if defined(__i386__)
++ : "ecx", "edx"
++#else
++ : "rcx", "rdx"
++#endif
++ );
++
++#else /* _MSC_VER < 1400 */
++#error "_MSC_VER < 1400 is not supported"
++#endif /* _MSC_VER && _MSC_VER >= 1400 */
++ return xcr0;
++ };
++
+ auto get_cpuid = [](int reg[4], int level, int count = 0) noexcept
+ {
+
+@@ -148,19 +177,43 @@ namespace xsimd
+
+ get_cpuid(regs1, 0x1);
+
+- sse2 = regs1[3] >> 26 & 1;
+- sse3 = regs1[2] >> 0 & 1;
+- ssse3 = regs1[2] >> 9 & 1;
+- sse4_1 = regs1[2] >> 19 & 1;
+- sse4_2 = regs1[2] >> 20 & 1;
+- fma3_sse42 = regs1[2] >> 12 & 1;
++ // OS can explicitly disable the usage of SSE/AVX extensions
++ // by setting an appropriate flag in CR0 register
++ //
++ // https://docs.kernel.org/admin-guide/hw-vuln/gather_data_sampling.html
++
++ unsigned sse_state_os_enabled = 1;
++ unsigned avx_state_os_enabled = 1;
++ unsigned avx512_state_os_enabled = 1;
++
++ // OSXSAVE: A value of 1 indicates that the OS has set CR4.OSXSAVE[bit
++ // 18] to enable XSETBV/XGETBV instructions to access XCR0 and
++ // to support processor extended state management using
++ // XSAVE/XRSTOR.
++ bool osxsave = regs1[2] >> 27 & 1;
++ if (osxsave)
++ {
++
++ uint32_t xcr0 = get_xcr0_low();
++
++ sse_state_os_enabled = xcr0 >> 1 & 1;
++ avx_state_os_enabled = xcr0 >> 2 & sse_state_os_enabled;
++ avx512_state_os_enabled = xcr0 >> 6 & avx_state_os_enabled;
++ }
++
++ sse2 = regs1[3] >> 26 & sse_state_os_enabled;
++ sse3 = regs1[2] >> 0 & sse_state_os_enabled;
++ ssse3 = regs1[2] >> 9 & sse_state_os_enabled;
++ sse4_1 = regs1[2] >> 19 & sse_state_os_enabled;
++ sse4_2 = regs1[2] >> 20 & sse_state_os_enabled;
++ fma3_sse42 = regs1[2] >> 12 & sse_state_os_enabled;
+
+- avx = regs1[2] >> 28 & 1;
++ avx = regs1[2] >> 28 & avx_state_os_enabled;
+ fma3_avx = avx && fma3_sse42;
+
+ int regs8[4];
+ get_cpuid(regs8, 0x80000001);
+- fma4 = regs8[2] >> 16 & 1;
++ fma4 = regs8[2] >> 16 & avx_state_os_enabled;
+
+ // sse4a = regs[2] >> 6 & 1;
+
+@@ -168,23 +221,23 @@ namespace xsimd
+
+ int regs7[4];
+ get_cpuid(regs7, 0x7);
+- avx2 = regs7[1] >> 5 & 1;
++ avx2 = regs7[1] >> 5 & avx_state_os_enabled;
+
+ int regs7a[4];
+ get_cpuid(regs7a, 0x7, 0x1);
+- avxvnni = regs7a[0] >> 4 & 1;
++ avxvnni = regs7a[0] >> 4 & avx_state_os_enabled;
+
+ fma3_avx2 = avx2 && fma3_sse42;
+
+- avx512f = regs7[1] >> 16 & 1;
+- avx512cd = regs7[1] >> 28 & 1;
+- avx512dq = regs7[1] >> 17 & 1;
+- avx512bw = regs7[1] >> 30 & 1;
+- avx512er = regs7[1] >> 27 & 1;
+- avx512pf = regs7[1] >> 26 & 1;
+- avx512ifma = regs7[1] >> 21 & 1;
+- avx512vbmi = regs7[2] >> 1 & 1;
+- avx512vnni_bw = regs7[2] >> 11 & 1;
++ avx512f = regs7[1] >> 16 & avx512_state_os_enabled;
++ avx512cd = regs7[1] >> 28 & avx512_state_os_enabled;
++ avx512dq = regs7[1] >> 17 & avx512_state_os_enabled;
++ avx512bw = regs7[1] >> 30 & avx512_state_os_enabled;
++ avx512er = regs7[1] >> 27 & avx512_state_os_enabled;
++ avx512pf = regs7[1] >> 26 & avx512_state_os_enabled;
++ avx512ifma = regs7[1] >> 21 & avx512_state_os_enabled;
++ avx512vbmi = regs7[2] >> 1 & avx512_state_os_enabled;
++ avx512vnni_bw = regs7[2] >> 11 & avx512_state_os_enabled;
+ avx512vnni_vbmi = avx512vbmi && avx512vnni_bw;
+ #endif
+ }
+
diff --git a/dev-cpp/xsimd/files/xsimd-13.0.0-sve-rvv.patch b/dev-cpp/xsimd/files/xsimd-13.0.0-sve-rvv.patch
new file mode 100644
index 000000000000..38ea56d1baa2
--- /dev/null
+++ b/dev-cpp/xsimd/files/xsimd-13.0.0-sve-rvv.patch
@@ -0,0 +1,88 @@
+https://mail.kde.org/pipermail/distributions/2024-July/001511.html
+https://github.com/xtensor-stack/xsimd/commit/80a59235e3ffa51659aaa06f002bfd088b77023c
+
+From 80a59235e3ffa51659aaa06f002bfd088b77023c Mon Sep 17 00:00:00 2001
+From: Dmitry Kazakov <dimula73@gmail.com>
+Date: Fri, 14 Jun 2024 10:19:55 +0200
+Subject: [PATCH] Fix xsimd::available_architectures().has() for sve and rvv
+ archs
+
+Ideally the patch CPU detection code should also check if the length
+of SVE and RVV is actually supported by the current CPU implementation
+(i.e. ZCR_Elx.LEN register for SVE and something else for RVV), but
+I don't have such CPUs/emulators handy, so I cannot add such checks.
+
+Given that xsimd::available_architectures().has() is a new feature
+of XSIMD13 and the length check has never been present in XSIMD, this
+bug is not a regression at least.
+
+The patch also adds a unittest that reproduces the error the patch fixes
+---
+ include/xsimd/config/xsimd_cpuid.hpp | 12 ++++++++++--
+ test/test_arch.cpp | 15 +++++++++++++++
+ 2 files changed, 25 insertions(+), 2 deletions(-)
+
+diff --git a/include/xsimd/config/xsimd_cpuid.hpp b/include/xsimd/config/xsimd_cpuid.hpp
+index 6dda3be09..8021fceb8 100644
+--- a/include/xsimd/config/xsimd_cpuid.hpp
++++ b/include/xsimd/config/xsimd_cpuid.hpp
+@@ -42,6 +42,10 @@ namespace xsimd
+ #define ARCH_FIELD_EX(arch, field_name) \
+ unsigned field_name; \
+ XSIMD_INLINE bool has(::xsimd::arch) const { return this->field_name; }
++
++#define ARCH_FIELD_EX_REUSE(arch, field_name) \
++ XSIMD_INLINE bool has(::xsimd::arch) const { return this->field_name; }
++
+ #define ARCH_FIELD(name) ARCH_FIELD_EX(name, name)
+
+ ARCH_FIELD(sse2)
+@@ -72,8 +76,12 @@ namespace xsimd
+ ARCH_FIELD(neon)
+ ARCH_FIELD(neon64)
+ ARCH_FIELD_EX(i8mm<::xsimd::neon64>, i8mm_neon64)
+- ARCH_FIELD(sve)
+- ARCH_FIELD(rvv)
++ ARCH_FIELD_EX(detail::sve<512>, sve)
++ ARCH_FIELD_EX_REUSE(detail::sve<256>, sve)
++ ARCH_FIELD_EX_REUSE(detail::sve<128>, sve)
++ ARCH_FIELD_EX(detail::rvv<512>, rvv)
++ ARCH_FIELD_EX_REUSE(detail::rvv<256>, rvv)
++ ARCH_FIELD_EX_REUSE(detail::rvv<128>, rvv)
+ ARCH_FIELD(wasm)
+
+ #undef ARCH_FIELD
+diff --git a/test/test_arch.cpp b/test/test_arch.cpp
+index b42073358..f1f50d546 100644
+--- a/test/test_arch.cpp
++++ b/test/test_arch.cpp
+@@ -38,6 +38,16 @@ struct check_supported
+ }
+ };
+
++struct check_cpu_has_intruction_set
++{
++ template <class Arch>
++ void operator()(Arch arch) const
++ {
++ static_assert(std::is_same<decltype(xsimd::available_architectures().has(arch)), bool>::value,
++ "cannot test instruction set availability on CPU");
++ }
++};
++
+ struct check_available
+ {
+ template <class Arch>
+@@ -71,6 +81,11 @@ TEST_CASE("[multi arch support]")
+ xsimd::supported_architectures::for_each(check_supported {});
+ }
+
++ SUBCASE("xsimd::available_architectures::has")
++ {
++ xsimd::all_architectures::for_each(check_cpu_has_intruction_set {});
++ }
++
+ SUBCASE("xsimd::default_arch::name")
+ {
+ constexpr char const* name = xsimd::default_arch::name();
+
diff --git a/dev-cpp/xsimd/xsimd-13.0.0.ebuild b/dev-cpp/xsimd/xsimd-13.0.0.ebuild
new file mode 100644
index 000000000000..41414ef626b6
--- /dev/null
+++ b/dev-cpp/xsimd/xsimd-13.0.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="C++ wrappers for SIMD intrinsics"
+HOMEPAGE="https://github.com/xtensor-stack/xsimd"
+SRC_URI="https://github.com/xtensor-stack/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ doc? (
+ app-text/doxygen
+ dev-python/breathe
+ dev-python/sphinx
+ dev-python/sphinx-rtd-theme
+ )
+ test? ( dev-cpp/doctest )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-11.1.0-c++17.patch
+ "${FILESDIR}"/${PN}-12.1.1-no-march.patch
+ "${FILESDIR}"/${PN}-13.0.0-sve-rvv.patch
+ "${FILESDIR}"/${PN}-13.0.0-detection-simd-with-mitigations.patch
+)
+
+src_prepare() {
+ sed -i \
+ -e '/fPIC/d' \
+ test/CMakeLists.txt \
+ || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && emake -C docs html
+}
+
+src_install() {
+ cmake_src_install
+ if use doc; then
+ dodoc -r docs/build/html
+ fi
+}