From b41e2c8f39aa90685fbc1234d4327a41243fcaa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= Date: Fri, 7 Jun 2024 20:59:55 +0100 Subject: [PATCH] sundials: update to 7.2.0 --- ...x-building-openmp-example-with-flang.patch | 22 +++++++++++++++ ...008-sundials-petsc-pkg-config-module.patch | 14 +++++----- mingw-w64-sundials/PKGBUILD | 28 +++++++++++-------- 3 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 mingw-w64-sundials/0001-fix-building-openmp-example-with-flang.patch diff --git a/mingw-w64-sundials/0001-fix-building-openmp-example-with-flang.patch b/mingw-w64-sundials/0001-fix-building-openmp-example-with-flang.patch new file mode 100644 index 0000000000..0afd9f5279 --- /dev/null +++ b/mingw-w64-sundials/0001-fix-building-openmp-example-with-flang.patch @@ -0,0 +1,22 @@ +--- a/examples/ida/F2003_openmp/CMakeLists.txt ++++ b/examples/ida/F2003_openmp/CMakeLists.txt +@@ -48,7 +48,7 @@ + # libraries to link against + target_link_libraries( + ${example} sundials_ida sundials_fida_mod sundials_nvecopenmp +- sundials_fnvecopenmp_mod ${SUNDIALS_LIBS}) ++ sundials_fnvecopenmp_mod ${SUNDIALS_LIBS} OpenMP::OpenMP_Fortran) + + # Install fortran modules to a unique directory to avoid naming collisions + set(CMAKE_Fortran_MODULE_DIRECTORY +--- a/examples/ida/F2003_openmp/idaHeat2D_kry_omp_f2003.f90 ++++ b/examples/ida/F2003_openmp/idaHeat2D_kry_omp_f2003.f90 +@@ -40,7 +40,7 @@ + + !======= Inclusions =========== + use, intrinsic :: iso_c_binding +- use, intrinsic :: omp_lib ++ use omp_lib + use fsundials_core_mod + + !======= Declarations ========= diff --git a/mingw-w64-sundials/0008-sundials-petsc-pkg-config-module.patch b/mingw-w64-sundials/0008-sundials-petsc-pkg-config-module.patch index 162fd5bcb9..e383f42151 100644 --- a/mingw-w64-sundials/0008-sundials-petsc-pkg-config-module.patch +++ b/mingw-w64-sundials/0008-sundials-petsc-pkg-config-module.patch @@ -1,6 +1,5 @@ -diff -Naur sundials-6.4.1.orig/cmake/tpl/FindPETSC.cmake sundials-6.4.1/cmake/tpl/FindPETSC.cmake ---- sundials-6.4.1.orig/cmake/tpl/FindPETSC.cmake 2022-10-31 17:34:43.000000000 -0500 -+++ sundials-6.4.1/cmake/tpl/FindPETSC.cmake 2022-11-06 11:53:08.547602900 -0600 +--- a/cmake/tpl/FindPETSC.cmake ++++ b/cmake/tpl/FindPETSC.cmake @@ -34,7 +34,8 @@ set(_pkg_version_spec ">=${PETSC_FIND_VERSION}") endif() @@ -11,9 +10,10 @@ diff -Naur sundials-6.4.1.orig/cmake/tpl/FindPETSC.cmake sundials-6.4.1/cmake/tp unset(_pkg_version_spec) # Find the PETSC libraries -@@ -112,4 +113,4 @@ - ) +@@ -121,5 +121,5 @@ + INTERFACE_LINK_LIBRARIES "${PETSC_LIBRARIES}") endif() --mark_as_advanced(PETSC_INCLUDE_DIRS PETSC_LIBRARIES PETSC_VERSION_MAJOR PETSC_VERSION_MINOR PETSC_VERSION_PATCH PETSC_VERSION) -+mark_as_advanced(PETSC_PKG_CONFIG_MODULE PETSC_INCLUDE_DIRS PETSC_LIBRARIES PETSC_VERSION_MAJOR PETSC_VERSION_MINOR PETSC_VERSION_PATCH PETSC_VERSION) +-mark_as_advanced(PETSC_INCLUDE_DIRS PETSC_LIBRARIES PETSC_VERSION_MAJOR ++mark_as_advanced(PETSC_PKG_CONFIG_MODULE PETSC_INCLUDE_DIRS PETSC_LIBRARIES PETSC_VERSION_MAJOR + PETSC_VERSION_MINOR PETSC_VERSION_PATCH PETSC_VERSION) diff --git a/mingw-w64-sundials/PKGBUILD b/mingw-w64-sundials/PKGBUILD index 377385856a..20c7446253 100644 --- a/mingw-w64-sundials/PKGBUILD +++ b/mingw-w64-sundials/PKGBUILD @@ -13,7 +13,7 @@ fi _realname=sundials pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=7.1.1 +pkgver=7.2.0 pkgrel=1 pkgdesc="SUite of Nonlinear and DIfferential/ALgebraic equation Solvers (mingw-w64)" arch=('any') @@ -31,17 +31,21 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-omp" "${MINGW_PACKAGE_PREFIX}-suitesparse" + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran") $([[ "$_enable_mpi" == "yes" ]] && echo \ "${MINGW_PACKAGE_PREFIX}-petsc" \ "${MINGW_PACKAGE_PREFIX}-superlu_dist")) makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-fc" $([[ "$_enable_mpi" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-msmpi")) optdepends=("${MINGW_PACKAGE_PREFIX}-python: for running examples") source=(https://github.com/LLNL/sundials/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz + '0001-fix-building-openmp-example-with-flang.patch' '0008-sundials-petsc-pkg-config-module.patch') -sha256sums=('ea7d6edfb52448ddfdc1ec48f89a721fe6c0a259c10f8ef56f60fcded87a94bb' - 'd4a56ef02d87d8d17970733fe8391c12fea9465f093681a1091a24b2ad0a787a') +sha256sums=('5c6c0a66a7e27c45bfb57b27f7579463855a85fc3976fed1d5c9dd88dc1ae3ab' + '785b7a824702fcc3267cec5d3f9c418dee2940efc9513516c642fd3129e36eb5' + '46f341d50e97960fd93ee516e7ade99ca5ac87db7d5d077ae09d26da3e4f7355') apply_patch_with_msg() { for _patch in "$@" @@ -55,6 +59,7 @@ prepare() { cd "${_realname}-${pkgver}" apply_patch_with_msg \ + 0001-fix-building-openmp-example-with-flang.patch \ 0008-sundials-petsc-pkg-config-module.patch } @@ -68,10 +73,6 @@ build() { _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi - if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then - export FFLAGS="-Qunused-arguments" - fi - if [[ "$_enable_mpi" != "yes" ]]; then _extra_config+=("-DENABLE_MPI=OFF" "-DENABLE_PETSC=OFF" @@ -95,12 +96,14 @@ build() { fi I_MPI_ROOT="" \ + CFLAGS+=" -Wno-return-type -Wno-deprecated-declarations" \ + LDFLAGS+=" -Wl,--export-all-symbols" \ MSYS2_ARG_CONV_EXCL="CMAKE_INSTALL_PREFIX=;EXAMPLES_INSTALL_PATH=" \ ${MINGW_PREFIX}/bin/cmake \ -D BUILD_ARKODE=ON \ -D BUILD_CVODE=ON \ -D BUILD_CVODES=ON \ - -D BUILD_FORTRAN_MODULE_INTERFACE=OFF \ + -D BUILD_FORTRAN_MODULE_INTERFACE=ON \ -D BUILD_IDA=ON \ -D BUILD_IDAS=ON \ -D BUILD_KINSOL=ON \ @@ -133,16 +136,17 @@ build() { -D ENABLE_XBRAID=OFF \ -D EXAMPLES_ENABLE_C=ON \ -D EXAMPLES_ENABLE_CXX=ON \ - -D EXAMPLES_ENABLE_F2003=OFF \ + -D EXAMPLES_ENABLE_F2003=ON \ -D EXAMPLES_INSTALL=ON \ -D EXAMPLES_INSTALL_PATH=${MINGW_PREFIX}/share/sundials/examples \ -D LAPACK_LIBRARIES=${MINGW_PREFIX}/lib/libopenblas.dll.a \ -D SUNDIALS_BUILD_WITH_PROFILING=OFF \ -D SUNDIALS_BUILD_WITH_MONITORING=ON \ - -D SUNDIALS_INDEX_SIZE=32 \ + -D SUNDIALS_INDEX_SIZE=64 \ -D SUNDIALS_PRECISION=DOUBLE \ - -DSUNDIALS_LAPACK_CASE=LOWER \ - -DSUNDIALS_LAPACK_UNDERSCORES=ONE \ + -D SUNDIALS_LAPACK_CASE=LOWER \ + -D SUNDIALS_LAPACK_UNDERSCORES=ONE \ + -D Fortran_INSTALL_MODDIR=include/sundials/fortran \ -B build-${MSYSTEM} \ -S ${_realname}-${pkgver}