From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- dev-cpp/eigen/Manifest | 5 +- dev-cpp/eigen/eigen-3.3.7-r1.ebuild | 2 +- dev-cpp/eigen/eigen-3.3.8-r1.ebuild | 101 +++++++++++++++++++++ ...error-counting-in-openmp-parallelize_gemm.patch | 64 +++++++++++++ 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 dev-cpp/eigen/eigen-3.3.8-r1.ebuild create mode 100644 dev-cpp/eigen/files/eigen-3.3.8-no-error-counting-in-openmp-parallelize_gemm.patch (limited to 'dev-cpp/eigen') 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 +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,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 + -- cgit v1.2.3