summaryrefslogtreecommitdiff
path: root/math/eigen3
diff options
context:
space:
mode:
Diffstat (limited to 'math/eigen3')
-rw-r--r--math/eigen3/Makefile23
-rw-r--r--math/eigen3/distinfo6
-rw-r--r--math/eigen3/files/patch-Eigen_src_Core_products_Parallelizer.h31
-rw-r--r--math/eigen3/files/patch-test_CMakeLists.txt11
4 files changed, 62 insertions, 9 deletions
diff --git a/math/eigen3/Makefile b/math/eigen3/Makefile
index 1d42bb236f32..59c5eda36a3d 100644
--- a/math/eigen3/Makefile
+++ b/math/eigen3/Makefile
@@ -1,11 +1,9 @@
# $FreeBSD$
PORTNAME= eigen
-DISTVERSION= 3.3.7
+PORTVERSION= 3.3.8
CATEGORIES= math
-MASTER_SITES= https://bitbucket.org/${PORTNAME}/${PORTNAME}/get/
-DISTNAME= ${PORTVERSION}
-DIST_SUBDIR= ${PORTNAME}
+MASTER_SITES= https://gitlab.com/libeigen/eigen/-/archive/${PORTVERSION}/
MAINTAINER= kde@FreeBSD.org
COMMENT= Lightweight library for vector and matrix math
@@ -15,11 +13,24 @@ LICENSE_COMB= multi
LICENSE_FILE_LGPL21= ${WRKSRC}/COPYING.LGPL
LICENSE_FILE_MPL20= ${WRKSRC}/COPYING.MPL2
-CMAKE_ARGS= -DPKGCONFIG_INSTALL_DIR:PATH="${PREFIX}/libdata/pkgconfig"
+CMAKE_ARGS= -DPKGCONFIG_INSTALL_DIR:PATH="libdata/pkgconfig"
USES= cmake tar:bzip2
NO_BUILD= yes
NO_ARCH= yes
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTNAME}-323c052e1731
+OPTIONS_DEFINE= FULL
+OPTIONS_DEFAULT=FULL
+
+FULL_DESC= Add the support for math dependencies
+FULL_CMAKE_ON= -DBLAS_DIR:PATH="${LOCALBASE}"
+FULL_USES= blaslapack:openblas gl pkgconfig
+FULL_USE= GL=gl glew glut
+FULL_LIB_DEPENDS= libcholmod.so:math/suitesparse \
+ libsuperlu.so:math/superlu \
+ libadolc.so:math/adol-c \
+ libfftw3.so:math/fftw3 \
+ libmpfr.so:math/mpfr \
+ libgmp.so:math/gmp \
+ libboost_thread.so:devel/boost-libs
.include <bsd.port.mk>
diff --git a/math/eigen3/distinfo b/math/eigen3/distinfo
index f4f4fb2ffbfc..d318df032633 100644
--- a/math/eigen3/distinfo
+++ b/math/eigen3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1544905503
-SHA256 (eigen/3.3.7.tar.bz2) = 9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce
-SIZE (eigen/3.3.7.tar.bz2) = 1665168
+TIMESTAMP = 1604406672
+SHA256 (eigen-3.3.8.tar.bz2) = 0215c6593c4ee9f1f7f28238c4e8995584ebf3b556e9dbf933d84feb98d5b9ef
+SIZE (eigen-3.3.8.tar.bz2) = 1667794
diff --git a/math/eigen3/files/patch-Eigen_src_Core_products_Parallelizer.h b/math/eigen3/files/patch-Eigen_src_Core_products_Parallelizer.h
new file mode 100644
index 000000000000..660759aff0a9
--- /dev/null
+++ b/math/eigen3/files/patch-Eigen_src_Core_products_Parallelizer.h
@@ -0,0 +1,31 @@
+--- Eigen/src/Core/products/Parallelizer.h.orig 2020-10-05 11:24:15 UTC
++++ Eigen/src/Core/products/Parallelizer.h
+@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows,
+
+ 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,
+ 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/math/eigen3/files/patch-test_CMakeLists.txt b/math/eigen3/files/patch-test_CMakeLists.txt
new file mode 100644
index 000000000000..826374bc38f5
--- /dev/null
+++ b/math/eigen3/files/patch-test_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- test/CMakeLists.txt.orig 2020-10-05 11:24:15 UTC
++++ 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)