From 534ab5c97ee0a66f6d38cfddd0870d244f0d2de07f7f56c32b4c3b7b68820d94 Mon Sep 17 00:00:00 2001 From: Dirk Stoecker Date: Sun, 22 Aug 2021 19:38:49 +0000 Subject: [PATCH] Accepting request 913225 from home:badshah400:branches:science * Update to version 3.4.0 * Drop patches incorporated or otherwise fixed upstream: * eigen3-CastXML-support-for-aarch64.patch. * eigen3-make-sparseqr-unit-test-stable.patch. * eigen3-failtests-handling.patch. * Rebase following patches for updated sources: * 0001-Disable-Altivec-for-ppc64le.patch. * 0001-Do-stack-allignment-on-ppc.patch. * Minor line offset adjustments of other patches to apply cleanly. OBS-URL: https://build.opensuse.org/request/show/913225 OBS-URL: https://build.opensuse.org/package/show/science/eigen3?expand=0&rev=39 --- 0001-Disable-Altivec-for-ppc64le.patch | 12 +- 0001-Do-stack-allignment-on-ppc.patch | 12 +- 01_install_FindEigen3.patch | 8 +- eigen-3.3.9.tar.bz2 | 3 - eigen-3.4.0.tar.bz2 | 3 + eigen3-3.3.1-fixcmake.patch | 10 +- eigen3-CastXML-support-for-aarch64.patch | 54 -------- eigen3-failtests-handling.patch | 132 -------------------- eigen3-make-sparseqr-unit-test-stable.patch | 66 ---------- eigen3.changes | 15 +++ eigen3.spec | 17 +-- 11 files changed, 45 insertions(+), 287 deletions(-) delete mode 100644 eigen-3.3.9.tar.bz2 create mode 100644 eigen-3.4.0.tar.bz2 delete mode 100644 eigen3-CastXML-support-for-aarch64.patch delete mode 100644 eigen3-failtests-handling.patch delete mode 100644 eigen3-make-sparseqr-unit-test-stable.patch diff --git a/0001-Disable-Altivec-for-ppc64le.patch b/0001-Disable-Altivec-for-ppc64le.patch index 4f504f9..9b4bad0 100644 --- a/0001-Disable-Altivec-for-ppc64le.patch +++ b/0001-Disable-Altivec-for-ppc64le.patch @@ -7,16 +7,16 @@ Subject: [PATCH] Disable Altivec for ppc64le Eigen/Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: eigen-3.3.8/Eigen/Core +Index: eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h =================================================================== ---- eigen-3.3.8.orig/Eigen/Core -+++ eigen-3.3.8/Eigen/Core -@@ -220,7 +220,7 @@ - #undef bool +--- eigen-3.4.0.orig/Eigen/src/Core/util/ConfigureVectorization.h ++++ eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h +@@ -374,7 +374,7 @@ #undef vector #undef pixel + - #elif defined __ALTIVEC__ + #elif defined __ALTIVEC__ && _CALL_ELF != 2 + #define EIGEN_VECTORIZE #define EIGEN_VECTORIZE_ALTIVEC - #include diff --git a/0001-Do-stack-allignment-on-ppc.patch b/0001-Do-stack-allignment-on-ppc.patch index 99505ef..c468d71 100644 --- a/0001-Do-stack-allignment-on-ppc.patch +++ b/0001-Do-stack-allignment-on-ppc.patch @@ -7,16 +7,16 @@ Subject: [PATCH] Do stack allignment on ppc Eigen/src/Core/util/Macros.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: eigen-3.3.8/Eigen/src/Core/util/Macros.h +Index: eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h =================================================================== ---- eigen-3.3.8.orig/Eigen/src/Core/util/Macros.h -+++ eigen-3.3.8/Eigen/src/Core/util/Macros.h -@@ -718,7 +718,7 @@ namespace Eigen { +--- eigen-3.4.0.orig/Eigen/src/Core/util/ConfigureVectorization.h ++++ eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h +@@ -103,7 +103,7 @@ // certain common platform (compiler+architecture combinations) to avoid these problems. // Only static alignment is really problematic (relies on nonstandard compiler extensions), // try to keep heap alignment even when we have to disable static alignment. -- #if EIGEN_COMP_GNUC && !(EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64 || EIGEN_ARCH_PPC || EIGEN_ARCH_IA64) -+ #if EIGEN_COMP_GNUC && !(EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64 || EIGEN_ARCH_IA64) +- #if EIGEN_COMP_GNUC && !(EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64 || EIGEN_ARCH_PPC || EIGEN_ARCH_IA64 || EIGEN_ARCH_MIPS) ++ #if EIGEN_COMP_GNUC && !(EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64 || EIGEN_ARCH_IA64 || EIGEN_ARCH_MIPS) #define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1 #elif EIGEN_ARCH_ARM_OR_ARM64 && EIGEN_COMP_GNUC_STRICT && EIGEN_GNUC_AT_MOST(4, 6) // Old versions of GCC on ARM, at least 4.4, were once seen to have buggy static alignment support. diff --git a/01_install_FindEigen3.patch b/01_install_FindEigen3.patch index 7054269..c1ceba6 100644 --- a/01_install_FindEigen3.patch +++ b/01_install_FindEigen3.patch @@ -1,8 +1,8 @@ -Index: eigen-3.3.8/CMakeLists.txt +Index: eigen-3.4.0/CMakeLists.txt =================================================================== ---- eigen-3.3.8.orig/CMakeLists.txt -+++ eigen-3.3.8/CMakeLists.txt -@@ -429,6 +429,11 @@ install(FILES +--- eigen-3.4.0.orig/CMakeLists.txt ++++ eigen-3.4.0/CMakeLists.txt +@@ -466,6 +466,11 @@ install(FILES DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel ) diff --git a/eigen-3.3.9.tar.bz2 b/eigen-3.3.9.tar.bz2 deleted file mode 100644 index 6f2032f..0000000 --- a/eigen-3.3.9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fa5cafe78f66d2b501b43016858070d52ba47bd9b1016b0165a7b8e04675677 -size 1667231 diff --git a/eigen-3.4.0.tar.bz2 b/eigen-3.4.0.tar.bz2 new file mode 100644 index 0000000..a95645e --- /dev/null +++ b/eigen-3.4.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626 +size 2143091 diff --git a/eigen3-3.3.1-fixcmake.patch b/eigen3-3.3.1-fixcmake.patch index 389dec9..7bc8d5b 100644 --- a/eigen3-3.3.1-fixcmake.patch +++ b/eigen3-3.3.1-fixcmake.patch @@ -1,8 +1,8 @@ -Index: eigen-3.3.8/CMakeLists.txt +Index: eigen-3.4.0/CMakeLists.txt =================================================================== ---- eigen-3.3.8.orig/CMakeLists.txt -+++ eigen-3.3.8/CMakeLists.txt -@@ -536,7 +536,7 @@ set ( EIGEN_VERSION_MAJOR ${EIGEN_WORLD +--- eigen-3.4.0.orig/CMakeLists.txt ++++ eigen-3.4.0/CMakeLists.txt +@@ -598,7 +598,7 @@ set ( EIGEN_VERSION_MAJOR ${EIGEN_WORLD set ( EIGEN_VERSION_MINOR ${EIGEN_MAJOR_VERSION} ) set ( EIGEN_VERSION_PATCH ${EIGEN_MINOR_VERSION} ) set ( EIGEN_DEFINITIONS "") @@ -10,4 +10,4 @@ Index: eigen-3.3.8/CMakeLists.txt +set ( EIGEN_INCLUDE_DIR ${INCLUDE_INSTALL_DIR} ) set ( EIGEN_ROOT_DIR ${CMAKE_INSTALL_PREFIX} ) - # Interface libraries require at least CMake 3.0 + include (CMakePackageConfigHelpers) diff --git a/eigen3-CastXML-support-for-aarch64.patch b/eigen3-CastXML-support-for-aarch64.patch deleted file mode 100644 index 59e896b..0000000 --- a/eigen3-CastXML-support-for-aarch64.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 880fa43b2ba9c25f45ae3ad4871a6aabe558329f Mon Sep 17 00:00:00 2001 -From: Brad King -Date: Wed, 16 Sep 2020 13:37:27 -0400 -Subject: [PATCH] Add support for CastXML on ARM aarch64 - -CastXML simulates the preprocessors of other compilers, but actually -parses the translation unit with an internal Clang compiler. -Use the same `vld1q_u64` workaround that we do for Clang. - -Fixes: #1979 ---- - Eigen/src/Core/arch/NEON/Complex.h | 4 ++-- - Eigen/src/Core/util/Macros.h | 6 ++++++ - 2 files changed, 8 insertions(+), 2 deletions(-) - -Index: eigen-3.3.8/Eigen/src/Core/arch/NEON/Complex.h -=================================================================== ---- eigen-3.3.8.orig/Eigen/src/Core/arch/NEON/Complex.h -+++ eigen-3.3.8/Eigen/src/Core/arch/NEON/Complex.h -@@ -17,7 +17,7 @@ namespace internal { - - inline uint32x4_t p4ui_CONJ_XOR() { - // See bug 1325, clang fails to call vld1q_u64. --#if EIGEN_COMP_CLANG -+#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML - uint32x4_t ret = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 }; - return ret; - #else -@@ -291,7 +291,7 @@ ptranspose(PacketBlock& ker - #if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG - - // See bug 1325, clang fails to call vld1q_u64. --#if EIGEN_COMP_CLANG -+#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML - static uint64x2_t p2ul_CONJ_XOR = {0x0, 0x8000000000000000}; - #else - const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 }; -Index: eigen-3.3.8/Eigen/src/Core/util/Macros.h -=================================================================== ---- eigen-3.3.8.orig/Eigen/src/Core/util/Macros.h -+++ eigen-3.3.8/Eigen/src/Core/util/Macros.h -@@ -35,6 +35,12 @@ - #define EIGEN_COMP_CLANG 0 - #endif - -+/// \internal EIGEN_COMP_CASTXML set to 1 if being preprocessed by CastXML -+#if defined(__castxml__) -+ #define EIGEN_COMP_CASTXML 1 -+#else -+ #define EIGEN_COMP_CASTXML 0 -+#endif - - /// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm - #if defined(__llvm__) diff --git a/eigen3-failtests-handling.patch b/eigen3-failtests-handling.patch deleted file mode 100644 index ba7ff5e..0000000 --- a/eigen3-failtests-handling.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 72c0bbe2bd1c49c75b6efdb81d0558f8b62578d1 Mon Sep 17 00:00:00 2001 -From: Gael Guennebaud -Date: Wed, 12 Dec 2018 15:48:36 +0100 -Subject: [PATCH] Simplify handling of tests that must fail to compile. Each - test is now a normal ctest target, and build properties (compiler+flags) are - preserved (instead of starting a new build-dir from scratch). - ---- - CMakeLists.txt | 5 +---- - cmake/EigenTesting.cmake | 45 ++++++++++++++++++---------------------- - failtest/CMakeLists.txt | 10 --------- - test/CMakeLists.txt | 5 ----- - 4 files changed, 21 insertions(+), 44 deletions(-) - -Index: eigen-3.3.8/CMakeLists.txt -=================================================================== ---- eigen-3.3.8.orig/CMakeLists.txt -+++ eigen-3.3.8/CMakeLists.txt -@@ -497,10 +497,7 @@ message(STATUS "") - message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}") - message(STATUS "") - --option(EIGEN_FAILTEST "Enable failtests." OFF) --if(EIGEN_FAILTEST) -- add_subdirectory(failtest) --endif() -+add_subdirectory(failtest) - - string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_tolower) - if(cmake_generator_tolower MATCHES "makefile") -Index: eigen-3.3.8/cmake/EigenTesting.cmake -=================================================================== ---- eigen-3.3.8.orig/cmake/EigenTesting.cmake -+++ eigen-3.3.8/cmake/EigenTesting.cmake -@@ -320,37 +320,32 @@ endmacro(ei_add_test_sycl) - # note that the test runner for these is CMake itself, when passed -DEIGEN_FAILTEST=ON - # so here we're just running CMake commands immediately, we're not adding any targets. - macro(ei_add_failtest testname) -- get_property(EIGEN_FAILTEST_FAILURE_COUNT GLOBAL PROPERTY EIGEN_FAILTEST_FAILURE_COUNT) -- get_property(EIGEN_FAILTEST_COUNT GLOBAL PROPERTY EIGEN_FAILTEST_COUNT) - -- message(STATUS "Checking failtest: ${testname}") -- set(filename "${testname}.cpp") -- file(READ "${filename}" test_source) -- -- try_compile(succeeds_when_it_should_fail -- "${CMAKE_CURRENT_BINARY_DIR}" -- "${CMAKE_CURRENT_SOURCE_DIR}/${filename}" -- COMPILE_DEFINITIONS "-DEIGEN_SHOULD_FAIL_TO_BUILD") -- if (succeeds_when_it_should_fail) -- message(STATUS "FAILED: ${testname} build succeeded when it should have failed") -- endif() -- -- try_compile(succeeds_when_it_should_succeed -- "${CMAKE_CURRENT_BINARY_DIR}" -- "${CMAKE_CURRENT_SOURCE_DIR}/${filename}" -- COMPILE_DEFINITIONS) -- if (NOT succeeds_when_it_should_succeed) -- message(STATUS "FAILED: ${testname} build failed when it should have succeeded") -- endif() -- -- if (succeeds_when_it_should_fail OR NOT succeeds_when_it_should_succeed) -- math(EXPR EIGEN_FAILTEST_FAILURE_COUNT ${EIGEN_FAILTEST_FAILURE_COUNT}+1) -- endif() -+ set(test_target_ok ${testname}_ok) -+ set(test_target_ko ${testname}_ko) - -- math(EXPR EIGEN_FAILTEST_COUNT ${EIGEN_FAILTEST_COUNT}+1) -+ # Add executables -+ add_executable(${test_target_ok} ${testname}.cpp) -+ add_executable(${test_target_ko} ${testname}.cpp) -+ -+ # Remove them from the normal build process -+ set_target_properties(${test_target_ok} ${test_target_ko} PROPERTIES -+ EXCLUDE_FROM_ALL TRUE -+ EXCLUDE_FROM_DEFAULT_BUILD TRUE) -+ -+ # Configure the failing test -+ target_compile_definitions(${test_target_ko} PRIVATE EIGEN_SHOULD_FAIL_TO_BUILD) -+ -+ # Add the tests to ctest. -+ add_test(NAME ${test_target_ok} -+ COMMAND ${CMAKE_COMMAND} --build . --target ${test_target_ok} --config $ -+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) -+ add_test(NAME ${test_target_ko} -+ COMMAND ${CMAKE_COMMAND} --build . --target ${test_target_ko} --config $ -+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) - -- set_property(GLOBAL PROPERTY EIGEN_FAILTEST_FAILURE_COUNT ${EIGEN_FAILTEST_FAILURE_COUNT}) -- set_property(GLOBAL PROPERTY EIGEN_FAILTEST_COUNT ${EIGEN_FAILTEST_COUNT}) -+ # Expect the second test to fail -+ set_tests_properties(${test_target_ko} PROPERTIES WILL_FAIL TRUE) - endmacro(ei_add_failtest) - - # print a summary of the different options -Index: eigen-3.3.8/failtest/CMakeLists.txt -=================================================================== ---- eigen-3.3.8.orig/failtest/CMakeLists.txt -+++ eigen-3.3.8/failtest/CMakeLists.txt -@@ -1,4 +1,3 @@ --message(STATUS "Running the failtests") - - ei_add_failtest("failtest_sanity_check") - -@@ -64,12 +63,3 @@ ei_add_failtest("bdcsvd_int") - ei_add_failtest("eigensolver_int") - ei_add_failtest("eigensolver_cplx") - --if (EIGEN_FAILTEST_FAILURE_COUNT) -- message(FATAL_ERROR -- "${EIGEN_FAILTEST_FAILURE_COUNT} out of ${EIGEN_FAILTEST_COUNT} failtests FAILED. " -- "To debug these failures, manually compile these programs in ${CMAKE_CURRENT_SOURCE_DIR}, " -- "with and without #define EIGEN_SHOULD_FAIL_TO_BUILD.") --else() -- message(STATUS "Failtest SUCCESS: all ${EIGEN_FAILTEST_COUNT} failtests passed.") -- message(STATUS "") --endif() -Index: eigen-3.3.8/test/CMakeLists.txt -=================================================================== ---- eigen-3.3.8.orig/test/CMakeLists.txt -+++ eigen-3.3.8/test/CMakeLists.txt -@@ -380,10 +380,6 @@ endif(CUDA_FOUND) - - endif(EIGEN_TEST_CUDA) - -- --file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/failtests) --add_test(NAME failtests WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/failtests COMMAND ${CMAKE_COMMAND} ${Eigen_SOURCE_DIR} -G "${CMAKE_GENERATOR}" -DEIGEN_FAILTEST=ON) -- - option(EIGEN_TEST_BUILD_DOCUMENTATION "Test building the doxygen documentation" OFF) - IF(EIGEN_TEST_BUILD_DOCUMENTATION) - add_dependencies(buildtests doc) diff --git a/eigen3-make-sparseqr-unit-test-stable.patch b/eigen3-make-sparseqr-unit-test-stable.patch deleted file mode 100644 index fa45505..0000000 --- a/eigen3-make-sparseqr-unit-test-stable.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 3b5deeb546d4017b24846f5b0dc3296a50a039fe Mon Sep 17 00:00:00 2001 -From: Gael Guennebaud -Date: Tue, 19 Feb 2019 22:57:51 +0100 -Subject: [PATCH] bug #899: make sparseqr unit test more stable by 1) trying - with larger threshold and 2) relax rank computation for rank-deficient - problems. - ---- - test/sparseqr.cpp | 31 ++++++++++++++++++++++++++----- - 1 file changed, 26 insertions(+), 5 deletions(-) - -diff --git a/test/sparseqr.cpp b/test/sparseqr.cpp -index 3ffe62314..3576cc626 100644 ---- a/test/sparseqr.cpp -+++ b/test/sparseqr.cpp -@@ -43,6 +43,7 @@ int generate_sparse_rectangular_problem(MatrixType& A, DenseMat& dA, int maxRows - - template void test_sparseqr_scalar() - { -+ typedef typename NumTraits::Real RealScalar; - typedef SparseMatrix MatrixType; - typedef Matrix DenseMat; - typedef Matrix DenseVector; -@@ -91,14 +92,34 @@ template void test_sparseqr_scalar() - exit(0); - return; - } -- -- VERIFY_IS_APPROX(A * x, b); -- -- //Compare with a dense QR solver -+ -+ // Compare with a dense QR solver - ColPivHouseholderQR dqr(dA); - refX = dqr.solve(b); - -- VERIFY_IS_EQUAL(dqr.rank(), solver.rank()); -+ bool rank_deficient = A.cols()>A.rows() || dqr.rank() we might have to increase the threshold -+ // to get a correct solution. -+ RealScalar th = RealScalar(20)*dA.colwise().norm().maxCoeff()*(A.rows()+A.cols()) * NumTraits::epsilon(); -+ for(Index k=0; (k<16) && !test_isApprox(A*x,b); ++k) -+ { -+ th *= RealScalar(10); -+ solver.setPivotThreshold(th); -+ solver.compute(A); -+ x = solver.solve(b); -+ } -+ } -+ -+ VERIFY_IS_APPROX(A * x, b); -+ -+ // For rank deficient problem, the estimated rank might -+ // be slightly off, so let's only raise a warning in such cases. -+ if(rank_deficient) ++g_test_level; -+ VERIFY_IS_EQUAL(solver.rank(), dqr.rank()); -+ if(rank_deficient) --g_test_level; -+ - if(solver.rank()==A.cols()) // full rank - VERIFY_IS_APPROX(x, refX); - // else --- -GitLab - diff --git a/eigen3.changes b/eigen3.changes index d07df88..dcea8cd 100644 --- a/eigen3.changes +++ b/eigen3.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Fri Aug 20 01:01:50 UTC 2021 - Atri Bhattacharya + +- Update to version 3.4.0 + * Long list of changes, see + . +- Drop patches incorporated or otherwise fixed upstream: + * eigen3-CastXML-support-for-aarch64.patch. + * eigen3-make-sparseqr-unit-test-stable.patch. + * eigen3-failtests-handling.patch. +- Rebase following patches for updated sources: + * 0001-Disable-Altivec-for-ppc64le.patch. + * 0001-Do-stack-allignment-on-ppc.patch. +- Minor line offset adjustments of other patches to apply cleanly. + ------------------------------------------------------------------- Tue Dec 8 19:27:09 UTC 2020 - Atri Bhattacharya diff --git a/eigen3.spec b/eigen3.spec index 555d187..fc0b952 100644 --- a/eigen3.spec +++ b/eigen3.spec @@ -1,7 +1,7 @@ # -# spec file for package eigen3 +# spec file # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -33,10 +33,10 @@ %endif Name: eigen3%{?pkgsuffix} -Version: 3.3.9 +Version: 3.4.0 Release: 0 Summary: C++ Template Library for Linear Algebra -License: MPL-2.0 AND LGPL-2.1-only AND LGPL-2.1-or-later AND BSD-3-Clause +License: BSD-3-Clause AND LGPL-2.1-only AND MPL-2.0 AND LGPL-2.1-or-later URL: http://eigen.tuxfamily.org/ Source0: https://gitlab.com/libeigen/eigen/-/archive/%{version}/%{srcname}-%{version}.tar.bz2 Patch0: 0001-Disable-Altivec-for-ppc64le.patch @@ -45,14 +45,8 @@ Patch1: 0001-Do-stack-allignment-on-ppc.patch Patch3: 01_install_FindEigen3.patch # PATCH-FIX-OPENSUSE eigen3-3.3.1-fixcmake.patch -- Fix double {prefix} as we use INCLUDE_INSTALL_DIR with {_includedir} Patch4: eigen3-3.3.1-fixcmake.patch -# PATCH-FIX-UPSTREAM eigen3-CastXML-support-for-aarch64.patch badshah400@gmail.com -- Add CastXML support for ARM aarch64 [https://gitlab.com/libeigen/eigen/-/issues/1979] -Patch5: eigen3-CastXML-support-for-aarch64.patch %if %{with tests} # SECTION Patches to fix tests -# PATCH-FIX-UPSTREAM https://gitlab.com/libeigen/eigen/-/commit/72c0bbe2bd1c49c75b6efdb81d0558f8b62578d1 -Patch7: eigen3-failtests-handling.patch -# PATCH-FIX-UPSTREAM eigen3-make-sparseqr-unit-test-stable.patch https://gitlab.com/libeigen/eigen/-/issues/899 badshah400@gmail.com -- Make sparseqr test more stable to prevent random failures; patch taken from upstream commit -Patch8: eigen3-make-sparseqr-unit-test-stable.patch # PATCH-FIX-UPSTREAM eigen3-googlehash-detection.patch badshah400@gmail.com -- GoogleHash needs C++11 std to compile test code and be succesfully detected Patch9: eigen3-googlehash-detection.patch # PATCH-FIX-UPSTREAM eigen3-fix-forward_adolc-unit-test.patch badshah400@gmail -- Prevent conflict of std::min/max with eigen's macros by importing eigen test-suite's main.h header only after all system headers have been included @@ -122,7 +116,7 @@ echo "HTML_TIMESTAMP = NO" >> doc/Doxyfile.in %build %cmake \ - -DINCLUDE_INSTALL_DIR=include/eigen3 \ + -DINCLUDE_INSTALL_DIR:PATH=include/eigen3 \ -DCMAKE_SKIP_RPATH:BOOL=OFF \ -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ -DEIGEN_TEST_CXX11:Bool=%{?with_tests:ON}%{!?with_tests:OFF} \ @@ -160,6 +154,7 @@ export EIGEN_REPEAT=1 %doc build/doc/html/ %else + %files devel %license COPYING.* %{_includedir}/eigen3/