summaryrefslogtreecommitdiff
path: root/dev-cpp/eigen
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-11-25 22:39:15 +0000
commitd934827bf44b7cfcf6711964418148fa60877668 (patch)
tree0625f358789b5e015e49db139cc1dbc9be00428f /dev-cpp/eigen
parent2e34d110f164bf74d55fced27fe0000201b3eec5 (diff)
gentoo resync : 25.11.2020
Diffstat (limited to 'dev-cpp/eigen')
-rw-r--r--dev-cpp/eigen/Manifest5
-rw-r--r--dev-cpp/eigen/eigen-3.3.7-r1.ebuild2
-rw-r--r--dev-cpp/eigen/eigen-3.3.8-r1.ebuild101
-rw-r--r--dev-cpp/eigen/files/eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch64
4 files changed, 170 insertions, 2 deletions
diff --git a/dev-cpp/eigen/Manifest b/dev-cpp/eigen/Manifest
index 36f2c82cd260..b88ea488b9b3 100644
--- a/dev-cpp/eigen/Manifest
+++ b/dev-cpp/eigen/Manifest
@@ -1,6 +1,9 @@
AUX eigen-3.3.7-gentoo-cmake.patch 910 BLAKE2B 9cad2b9c54fb1299dfe45f9a94a427d1c7980fa0e5372db69465ccf964e7294213ae459e200a39f2721849df94a8433febcfb225813af3b43bc204b0edd3d64c SHA512 b8c4701f22c483078fb7d25df60c8f002f47573ec434a309b1a3739aecc1c51f79852b06f46c1ed9ae4cbec0e7d70aaabd06bc59e561c19d81b05388d3cedc61
+AUX eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch 2382 BLAKE2B 99d69381ebb3ecf8b097eef69916bde88ab5cec075df623a46537281b37059876ce39e687de4ca441ebe6459c66438f3282d051d0e85b0574df98205be8cf6d0 SHA512 26cdf877d4d3378b322cc08c0430b0628a07279a030732661ba4acb85d6c835956c99474fc4587a170d11437ca6715e56d8eaabb625a1eba7c46ce4d6e4d66f9
DIST eigen-3.3.7-gitlab.tar.bz2 1663474 BLAKE2B 70c2f6305ca205d62755cf5e90961088938b8daf56b7cc27abf52f0731064858ada523009d6bf5f014e24b34ceeafe59f918c385d12ccfe249ddb675e13d37a8 SHA512 ea3f1570de3be9ec230d2fbd0f2ae246bf5fd13da79835bf546eb31524796f26f9f633ee779f77942b370a8d540c5cbbd8dd033ccec53a44b692c7e407d6266f
DIST eigen-3.3.7.tar.bz2 1665168 BLAKE2B 544d35d1c7a4125affa094c6aa372c2aeca4e99bc60c496ff393d538c1c467b454491a772121450e3a1a43a582d073b4b7584918354d0b9175121fde88947c4b SHA512 c12bfd034d0a1112bf2df3f773ad98f36b2b53fbbfceac5f143ee1793322746fb8a6546d7db7da2a1000da6a535bd8cea0c4125b549afc90a6570743b02dcf3d
-EBUILD eigen-3.3.7-r1.ebuild 2254 BLAKE2B 6c995f2ae16a005a2992f34f2373db06690616175649f3f1750fcfb0f3875676a40a742f2504fe32ce127b1bb8090d44ec0983bab595d81af7d2edb05cd064a5 SHA512 03f623ff907403db989cb2941dedd0cda5534bed87b7c405383774d344e45695bec3011212b9d8a56c9752bf788a404ab2268b14ce854506dd206da9386b23f0
+DIST eigen-3.3.8.tar.gz 2141903 BLAKE2B c33e699ba08338e7b9b215c9466e161229164ed3c466ce3d760c6917749af33c0414c3bc4bbdd216e3466e69ece8a38ca8beb78b7e0f1609894df6bb4a7fcca3 SHA512 5b4b5985b0294e07b3ed1155720cbbfea322fe9ccad0fc8b0a10060b136a9169a15d5b9cb7a434470cadd45dff0a43049edc20d2e1070005481a120212edc355
+EBUILD eigen-3.3.7-r1.ebuild 2251 BLAKE2B d8470d733ed8c1762e6759e28f96c7559e08d2bec7a80590bb504dcabbbf3e262d655c4bce660e7f6611b6f75095125b9ddb62229d46a535343e6343b257912a SHA512 f839c91a430acfb91c641575eaa9e375e227a8dfc19d0600015819955efb25ea148ff42614b9fbb39129e22038d6711fbf55f4e3cc67fa087a6dc628dc89e1c7
EBUILD eigen-3.3.7.ebuild 2432 BLAKE2B 2312d5d606907923882c74f4842128d95f9fa25eff68ab7217a58131c2fab11f42d8e1658129f29a7dbc68d3ab42510f6289ff1fe9ec7987596f691aebb67fd6 SHA512 e411a3a4c08776dc667d2145e52b23225d88b6bc9e6b36e664392fc26bd34195fcfcf2b54d0b20dec4ad8597f6e262d4dd7671513ab3581b10d0a16ed2713701
+EBUILD eigen-3.3.8-r1.ebuild 2292 BLAKE2B ec49dbace8c35444eb8a823270845eca371973500d187d91dbc897329fbe295c0ffdd5bc566301a51b1cc1ac26d51618762fd41c2d958ab4d7d813860df7ad45 SHA512 1aa8b8db7450a986fd3df736de11f7b1060523e30173d0240dc5bbdf18db0cbaf6b5657f2517e8dcdf4dd34b55efba88b3e51686c145b7c0a97502424be2aab8
MISC metadata.xml 945 BLAKE2B 11864f5eb57e7a8ecfa9d1869536fbfbd9fcb24bc965edad51ec5013bea87a48d63c1b6427b5bffe26191de7e24b950a1c7ad1f0a801fed6b77a41bad4786334 SHA512 99fe52d30c344b957a76a7f6add1dd4251c606f47befa6f517fa50cbd8ba1ef325e66051ff799093cef8281bf1099709e86d3f3a896b078267c665ad68063203
diff --git a/dev-cpp/eigen/eigen-3.3.7-r1.ebuild b/dev-cpp/eigen/eigen-3.3.7-r1.ebuild
index 344701df58b4..78cd681f6b17 100644
--- a/dev-cpp/eigen/eigen-3.3.7-r1.ebuild
+++ b/dev-cpp/eigen/eigen-3.3.7-r1.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://gitlab.com/libeigen/eigen/-/archive/3.3.7/${P}.tar.bz2 -> ${P}-
LICENSE="MPL-2.0"
SLOT="3"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
IUSE="cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
RESTRICT="!test? ( test )"
diff --git a/dev-cpp/eigen/eigen-3.3.8-r1.ebuild b/dev-cpp/eigen/eigen-3.3.8-r1.ebuild
new file mode 100644
index 000000000000..bddd6bddf843
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.3.8-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+FORTRAN_NEEDED="test"
+inherit cmake cuda fortran-2
+
+DESCRIPTION="C++ template library for linear algebra"
+HOMEPAGE="http://eigen.tuxfamily.org/index.php?title=Main_Page"
+SRC_URI="https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.gz"
+
+LICENSE="MPL-2.0"
+SLOT="3"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ doc? (
+ app-doc/doxygen[dot]
+ dev-texlive/texlive-bibtexextra
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-fontutils
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexextra
+ )
+ test? ( virtual/pkgconfig )
+"
+DEPEND="
+ cuda? ( dev-util/nvidia-cuda-toolkit )
+ test? (
+ dev-libs/gmp:0
+ dev-libs/mpfr:0
+ media-libs/freeglut
+ media-libs/glew
+ sci-libs/adolc[sparse]
+ sci-libs/cholmod
+ sci-libs/fftw:3.0
+ sci-libs/pastix
+ sci-libs/scotch
+ sci-libs/spqr
+ sci-libs/superlu
+ sci-libs/umfpack
+ virtual/opengl
+ )
+"
+# Missing:
+# METIS-5
+# GOOGLEHASH
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3.7-gentoo-cmake.patch
+ "${FILESDIR}"/${P}-no-error-counting-in-openmp-parallelize_gemm.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ cmake_comment_add_subdirectory demos
+
+ if ! use test; then
+ sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
+ -e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
+ -i CMakeLists.txt || die
+ fi
+
+ use cuda && cuda_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKEPACKAGE_INSTALL_DIR=$(get_libdir)/cmake/${PN}${SLOT}
+ )
+ use test && mycmakeargs+=(
+ -DEIGEN_TEST_CXX11=ON
+ -DEIGEN_TEST_NOQT=ON
+ -DEIGEN_TEST_ALTIVEC=$(usex cpu_flags_ppc_altivec)
+ -DEIGEN_TEST_CUDA=$(usex cuda)
+ -DEIGEN_TEST_OPENMP=$(usex openmp)
+ -DEIGEN_TEST_NEON64=$(usex cpu_flags_arm_neon)
+ -DEIGEN_TEST_VSX=$(usex cpu_flags_ppc_vsx)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && cmake_src_compile doc
+ if use test; then
+ cmake_src_compile blas
+ cmake_src_compile buildtests
+ fi
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ cmake_src_install
+}
diff --git a/dev-cpp/eigen/files/eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch b/dev-cpp/eigen/files/eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch
new file mode 100644
index 000000000000..556474e8b310
--- /dev/null
+++ b/dev-cpp/eigen/files/eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch
@@ -0,0 +1,64 @@
+From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001
+From: Luke Peterson <hazelnusse@gmail.com>
+Date: Thu, 8 Oct 2020 12:16:53 -0700
+Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm
+
+This resolves a compilation error associated with
+Eigen::eigen_assert_exception. It also eliminates the counting of
+exceptions that may occur in the OpenMP parallel section. If an
+unhandled exception occurs in this section, the behavior is non-conforming
+according to the OpenMP specification.
+---
+ Eigen/src/Core/products/Parallelizer.h | 14 +++++---------
+ test/CMakeLists.txt | 2 +-
+ 2 files changed, 6 insertions(+), 10 deletions(-)
+
+diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
+index 67b2442b5..a3cc05b77 100644
+--- a/Eigen/src/Core/products/Parallelizer.h
++++ b/Eigen/src/Core/products/Parallelizer.h
+@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+
+ ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
+
+- int errorCount = 0;
+- #pragma omp parallel num_threads(threads) reduction(+: errorCount)
++ #pragma omp parallel num_threads(threads)
+ {
+ Index i = omp_get_thread_num();
+ // Note that the actual number of threads might be lower than the number of request ones.
+@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth,
+ info[i].lhs_start = r0;
+ info[i].lhs_length = actualBlockRows;
+
+- EIGEN_TRY {
+- if(transpose) func(c0, actualBlockCols, 0, rows, info);
+- else func(0, rows, c0, actualBlockCols, info);
+- } EIGEN_CATCH(...) {
+- ++errorCount;
+- }
++ if(transpose)
++ func(c0, actualBlockCols, 0, rows, info);
++ else
++ func(0, rows, c0, actualBlockCols, info);
+ }
+- if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
+ #endif
+ }
+
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 0747aa6cb..b02577780 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -163,7 +163,7 @@ ei_add_test(constructor)
+ ei_add_test(linearstructure)
+ ei_add_test(integer_types)
+ ei_add_test(unalignedcount)
+-if(NOT EIGEN_TEST_NO_EXCEPTIONS)
++if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP)
+ ei_add_test(exceptions)
+ endif()
+ ei_add_test(redux)
+--
+GitLab
+