[packages/eigen3] - add fix for https://gitlab.com/libeigen/eigen/-/issues/2011 - rel 2
baggins
baggins at pld-linux.org
Sun Nov 29 23:38:37 CET 2020
commit bc87d2c02f0b1170e02257b54707db7af9b179b7
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Nov 29 23:38:05 2020 +0100
- add fix for https://gitlab.com/libeigen/eigen/-/issues/2011
- rel 2
eigen3.spec | 4 +++-
error-counting.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 1 deletion(-)
---
diff --git a/eigen3.spec b/eigen3.spec
index 43abd81..abf4c04 100644
--- a/eigen3.spec
+++ b/eigen3.spec
@@ -7,13 +7,14 @@ Summary: C++ template library for linear algebra
Summary(pl.UTF-8): Biblioteka szablonów C++ do algebry liniowej
Name: eigen3
Version: 3.3.8
-Release: 1
+Release: 2
License: MPL v2.0 with LGPL v2.1+ parts
Group: Development/Libraries
#Source0Download: http://eigen.tuxfamily.org/index.php?title=Main_Page
Source0: https://gitlab.com/libeigen/eigen/-/archive/%{version}/eigen-%{version}.tar.bz2
# Source0-md5: 432ef01499d514f4606343276afa0ec3
Patch0: %{name}-buildtype.patch
+Patch1: error-counting.patch
URL: http://eigen.tuxfamily.org/
BuildRequires: cmake >= 2.8.5
%{?with_gdb:BuildRequires: python-modules}
@@ -85,6 +86,7 @@ do pliku ~/.gdbinit .
%prep
%setup -q -n eigen-%{version}
%patch0 -p1
+%patch1 -p1
%build
install -d build
diff --git a/error-counting.patch b/error-counting.patch
new file mode 100644
index 0000000..91ba0d6
--- /dev/null
+++ b/error-counting.patch
@@ -0,0 +1,46 @@
+diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h
+index 67b2442b53a114af3c08829af4344acc6be7a42f..a3cc05b77bbd19466e7f969d37ec18085ba3d36c 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 0747aa6cb65a40a47fdee2685a2798f93c481ea0..b0257778082143ce27fc847cf163e845fa2afd1e 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)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/eigen3.git/commitdiff/bc87d2c02f0b1170e02257b54707db7af9b179b7
More information about the pld-cvs-commit
mailing list