[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