Update/Rebuild for MUMPS-5.3.5 on EPEL7

This commit is contained in:
Antonio T 2020-12-05 11:12:49 +01:00
parent d890f27303
commit eada8e54da
2 changed files with 52 additions and 79 deletions

View File

@ -3,7 +3,7 @@ From: Satish Balay <balay@mcs.anl.gov>
Date: Fri, 30 Mar 2018 09:53:12 -0500
Subject: [PATCH] hypre: update to version 2.14.0
Reported-by: Antonio Trande <anto.trande@gmail.com>
Reported-by: Antonio Trande <sagitter@fedoraproject.org>
---
config/BuildSystem/config/packages/hypre.py | 2 +-
src/mat/impls/hypre/mhypre.c | 2 +-
@ -13,26 +13,22 @@ diff --git a/config/BuildSystem/config/packages/hypre.py b/config/BuildSystem/co
index 1249b39..620e516 100644
--- a/config/BuildSystem/config/packages/hypre.py
+++ b/config/BuildSystem/config/packages/hypre.py
@@ -4,7 +4,7 @@ import os
class Configure(config.package.GNUPackage):
@@ -5,7 +5,7 @@
def __init__(self, framework):
config.package.GNUPackage.__init__(self, framework)
- self.gitcommit = 'v2.12.0'
+ self.gitcommit = 'v2.15.1'
self.download = ['git://https://github.com/LLNL/hypre','https://github.com/LLNL/hypre/archive/'+self.gitcommit+'.tar.gz']
self.functions = ['HYPRE_IJMatrixCreate']
self.includes = ['HYPRE.h']
diff --git a/src/mat/impls/hypre/mhypre.c b/src/mat/impls/hypre/mhypre.c
index 8a51581..65595f2 100644
--- a/src/mat/impls/hypre/mhypre.c
self.version = '2.19.0'
- self.minversion = '2.14'
+ self.minversion = '2.11.2'
self.versionname = 'HYPRE_RELEASE_VERSION'
self.versioninclude = 'HYPRE_config.h'
self.requiresversion = 1
--- a/src/mat/impls/hypre/mhypre.c
+++ b/src/mat/impls/hypre/mhypre.c
@@ -1450,6 +1450,6 @@ PETSC_EXTERN PetscErrorCode MatCreate_HYPRE(Mat B)
@@ -2131,6 +2131,6 @@
static PetscErrorCode hypre_array_destroy(void *ptr)
{
PetscFunctionBegin;
- hypre_TFree(ptr);
+ hypre_TFree(ptr,HYPRE_MEMORY_HOST);
- hypre_TFree(ptr,HYPRE_MEMORY_HOST);
+ hypre_TFree(ptr);
PetscFunctionReturn(0);
}
--
2.10.5

View File

@ -9,10 +9,8 @@
%{?el7:%global _pkgdocdir %{_docdir}/%{name}}
#
%if 0%{?fedora}
%bcond_without mpich
%bcond_without openmpi
%endif
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
%bcond_without arch64
@ -33,15 +31,6 @@
%global blasvar p
%endif
%if 0%{?rhel} && 0%{?rhel} >= 7
%bcond_without mpich
%bcond_without openmpi
%endif
%if 0%{?rhel} == 7
%global dts devtoolset-8-
%endif
#
## PETSC looks incompatible with serial MUMPS
%bcond_without mumps_serial
@ -53,7 +42,7 @@
#
## Suitesparse
## Currently, suitesparse-5.4.0 is available on Fedora 32+, but this version of PETSc needs at least 5.6.0
## Currently, suitesparse-5.4.0 is available on Fedora 32+, but this version of PETSc needs the 5.6.0 at least
%bcond_with suitesparse
%if 0%{?fedora} && 0%{?fedora} >= 32
%bcond_with suitesparse64
@ -61,7 +50,19 @@
#
## SuperLUDIST needs parmetis
%if 0%{?fedora} || 0%{?rhel} > 7
%bcond_without superludist
%bcond_without cgns
%bcond_without hdf5
%else
# Needed superludist >= 6.1.1
%bcond_with superludist
# hdf5 is required by cgns
# and see rhbz#1904164
%bcond_with cgns
%bcond_with hdf5
%endif
%bcond_with superlumt
#
@ -72,10 +73,6 @@
%endif
#
# hdf5' is required by 'cgns'
%bcond_without cgns
%bcond_without hdf5
# 'scalapack' is required by 'mumps'
%if %{with openmpi}
%bcond_without mpi
@ -184,9 +181,10 @@
--with-shared-libraries=1 \\\
--with-fortran-interfaces=1 \\\
--with-windows-graphics=0 \\\
--with-cc=mpicc \\\
--with-cxx=mpicxx \\\
--with-fc=mpif77 \\\
--with-cc=${MPI_BIN}/mpicc \\\
--with-cxx=${MPI_BIN}/mpicxx \\\
--with-fc=${MPI_BIN}/mpif90 \\\
--with-mpiexec="${MPI_BIN}/mpiexec -n `getconf _NPROCESSORS_ONLN` -env MPIEXEC_TIMEOUT 3000 --mca btl_base_warn_component_unused 0" \\\
--with-shared-ld=ld \\\
--with-pic=1 \\\
--with-clib-autodetect=0 \\\
@ -262,7 +260,7 @@
Name: petsc
Summary: Portable Extensible Toolkit for Scientific Computation
Version: %{releasever}.1
Release: 2%{?dist}
Release: 3%{?dist}
License: BSD
URL: https://www.mcs.anl.gov/petsc
Source0: https://www.mcs.anl.gov/petsc/mirror/release-snapshots/petsc-%{version}.tar.gz
@ -274,7 +272,7 @@ Patch0: %{name}-3.11-no-rpath.patch
Patch1: %{name}-lib64.patch
# Reverting patch for Hypre-2.11.2
Patch2: %{name}-3.11-hypre_2.11.2_reverting.patch
Patch2: %{name}-3.14-hypre_2.11.2_reverting.patch
Patch3: %{name}-3.13-fix_mumps_includes.patch
Patch4: %{name}-3.13.0-fix_metis64.patch
@ -301,15 +299,12 @@ BuildRequires: suitesparse-devel >= 5.6.0
%if %{with blas}
BuildRequires: %{blaslib}-devel
%endif
BuildRequires: %{?dts}gcc, %{?dts}gcc-c++, cmake3
BuildRequires: %{?dts}gcc-gfortran
BuildRequires: gcc, gcc-c++, cmake3
BuildRequires: gcc-gfortran
BuildRequires: make
BuildRequires: libX11-devel
%if 0%{?el7}
BuildRequires: python2-devel
%else
BuildRequires: python3-devel
BuildRequires: python3-setuptools
%endif
BuildRequires: pcre-devel
%if 0%{?el7}
BuildRequires: pkgconfig
@ -346,11 +341,7 @@ Portable Extensible Toolkit for Scientific Computation (developer files).
%package doc
Summary: Portable Extensible Toolkit for Scientific Computation (documentation files)
%if 0%{?el7}
BuildRequires: python2-sphinx
%else
BuildRequires: python3-sphinx
%endif
BuildArch: noarch
%description doc
Portable Extensible Toolkit for Scientific Computation.
@ -507,15 +498,13 @@ pushd %{name}-%{version}
%patch7 -p1
%if 0%{?fedora} || 0%{?rhel} >= 8
find . -name 'setup.py' | xargs pathfix.py -pn -i "%{__python3}"
find . -name 'configure' | xargs pathfix.py -pn -i "%{__python3}"
find config -name '*.py' | xargs pathfix.py -pn -i "%{__python3}"
find src/benchmarks/streams -name '*.py' | xargs pathfix.py -pn -i "%{__python3}"
%endif
%if 0%{?el7}
%patch2 -R -p1
%patch2 -p1
%endif
popd
@ -549,12 +538,7 @@ popd
%build
pushd %{name}-%{version}
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%configure --with-cc=/opt/rh/devtoolset-8/root/usr/bin/gcc --with-cxx=/opt/rh/devtoolset-8/root/usr/bin/g++ --with-fc=/opt/rh/devtoolset-8/root/usr/bin/gfortran \
%else
%configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \
%endif
%{petsc_build_options} \
--with-64-bit-indices=0 \
%if %{with blas}
@ -587,12 +571,7 @@ popd
%if %{with arch64}
pushd build64
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%configure --with-cc=/opt/rh/devtoolset-8/root/usr/bin/gcc --with-cxx=/opt/rh/devtoolset-8/root/usr/bin/g++ --with-fc=/opt/rh/devtoolset-8/root/usr/bin/gfortran \
%else
%configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran \
%endif
%{petsc_build_options} \
--with-64-bit-indices=1 \
%if %{with metis64}
@ -621,14 +600,10 @@ popd
%if %{with openmpi}
pushd buildopenmpi_dir
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%endif
%{_openmpi_load}
%configure \
--FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lmpi_mpifh" \
--LIBS=" -lmpi_mpifh" \
--LIBS=" -lmpi -lmpi_mpifh" \
%{petsc_mpibuild_options} \
%if %{with metis}
--with-metis=1 \
@ -654,14 +629,10 @@ popd
%if %{with mpich}
pushd buildmpich_dir
%if 0%{?el7}
%{?dts:source /opt/rh/devtoolset-8/enable}
%endif
%{_mpich_load}
%configure \
--FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lmpifort" \
--LIBS=" -lmpifort" \
--FC_LINKER_FLAGS="$LDFLAGS -lgfortran -lfmpich -lmpichf90" \
--LIBS=" -lmpich -lfmpich -lmpichf90" \
%{petsc_mpibuild_options} \
%if %{with metis}
--with-metis=1 \
@ -836,17 +807,19 @@ cp -a %{name}-%{version}/docs/* $RPM_BUILD_ROOT%{_pkgdocdir}
%if %{with check}
%check
%if %{with openmpi}
%{_openmpi_load}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildopenmpi_dir/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildopenmpi_dir
export PETSC_ARCH=%{_arch}
export MPI_INTERFACE_HOSTNAME=localhost
export OMPI_MCA_btl_base_warn_component_unused=0
%if %{with debug}
export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes"
export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}"
xvfb-run -a make all test -C buildopenmpi_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildopenmpi_dir/lib/petsc/bin/petscmpiexec -valgrind'
%else
xvfb-run -a make all test -C buildopenmpi_dir V=1
@ -854,25 +827,24 @@ xvfb-run -a make all test -C buildopenmpi_dir V=1
%{_openmpi_unload}
%endif
%if 0%{?fedora} || 0%{?rhel} >= 7
%if %{with mpich}
%{_mpich_load}
export LD_LIBRARY_PATH=%{_builddir}/%{name}-%{version}/buildmpich_dir/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/buildmpich_dir
export PETSC_ARCH=%{_arch}
export MPI_INTERFACE_HOSTNAME=localhost
export OMPI_MCA_btl_base_warn_component_unused=0
%if %{with debug}
export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=yes"
export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I${MPI_FORTRAN_MOD_DIR}"
xvfb-run -a make all test -C buildmpich_dir V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/buildmpich_dir/lib/petsc/bin/petscmpiexec -valgrind'
%else
xvfb-run -a make all test -C buildmpich_dir V=1
%endif
%{_mpich_unload}
%endif
%endif
export LD_LIBRARY_PATH=%{_libdir}:%{_builddir}/%{name}-%{version}/%{name}-%{version}/%{_arch}/lib
export PETSC_DIR=%{_builddir}/%{name}-%{version}/%{name}-%{version}
@ -883,9 +855,9 @@ export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=
export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -valgrind'
xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN` -valgrind'
%else
xvfb-run -a make all test -C %{name}-%{version} V=1
xvfb-run -a make all test -C %{name}-%{version} V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/%{name}-%{version}/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN`'
%endif
%if %{with arch64}
@ -902,9 +874,9 @@ export PETSCVALGRIND_OPTIONS=" --tool=memcheck --leak-check=yes --track-origins=
export CFLAGS="-O0 -g -Wl,-z,now -fPIC"
export CXXFLAGS="-O0 -g -Wl,-z,now -fPIC"
export FFLAGS="-O0 -g -Wl,-z,now -fPIC -I%{_libdir}/gfortran/modules"
xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -valgrind'
xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN` -valgrind'
%else
xvfb-run -a make all test -C build64 V=1
xvfb-run -a make all test -C build64 V=1 MPIEXEC='%{_builddir}/%{name}-%{version}/build64/lib/petsc/bin/petscmpiexec -n `getconf _NPROCESSORS_ONLN`'
%endif
%endif
%endif
@ -976,6 +948,11 @@ xvfb-run -a make all test -C build64 V=1
%endif
%changelog
* Sat Dec 05 2020 Antonio Trande <sagitter@fedoraproject.org> - 3.14.1-3
- Update/Rebuild for MUMPS-5.3.5 on EPEL7
- Exclude superludist support on EPEL7
- Add Make BR
* Fri Nov 20 2020 Antonio Trande <sagitter@fedoraproject.org> - 3.14.1-2
- Fix pkg-config files