sci-chemistry/mpqc: fix build system and MPI

Closes: https://bugs.gentoo.org/710822
Closes: https://bugs.gentoo.org/801682
Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
David Seifert
2022-01-29 01:00:17 +01:00
parent dad58a7d48
commit e4bd2f6d1e
2 changed files with 61 additions and 24 deletions

View File

@@ -0,0 +1,37 @@
https://bugs.gentoo.org/801682
rename MPI 1.0 to 3.0+ functions:
- MPI_Errhandler_set -> MPI_Comm_set_errhandler
--- a/src/lib/util/group/memmtmpi.cc
+++ b/src/lib/util/group/memmtmpi.cc
@@ -241,8 +241,8 @@
MPI_Comm_dup(comm, &comp_comm_);
MPI_Comm_dup(comm, &comm_comm_);
- MPI_Errhandler_set(comp_comm_, MPI_ERRORS_ARE_FATAL);
- MPI_Errhandler_set(comm_comm_, MPI_ERRORS_ARE_FATAL);
+ MPI_Comm_set_errhandler(comp_comm_, MPI_ERRORS_ARE_FATAL);
+ MPI_Comm_set_errhandler(comm_comm_, MPI_ERRORS_ARE_FATAL);
serial_ = 0;
req_tag_ = 15001;
--- a/src/lib/util/group/messmpi.cc
+++ b/src/lib/util/group/messmpi.cc
@@ -129,7 +129,7 @@
if (keyval->booleanvalue("errors_return")) {
if (me()==0)
ExEnv::outn() << indent << "MPIMessageGrp: errors_return is true" << endl;
- MPI_Errhandler_set(commgrp, MPI_ERRORS_RETURN);
+ MPI_Comm_set_errhandler(commgrp, MPI_ERRORS_RETURN);
}
if (debug_) {
@@ -200,7 +200,7 @@
MPI_Comm_dup(comm, &commgrp);
global_commgrp = commgrp;
- MPI_Errhandler_set(commgrp, MPI_ERRORS_ARE_FATAL);
+ MPI_Comm_set_errhandler(commgrp, MPI_ERRORS_ARE_FATAL);
if (!nmpi_grps) {
threadgrp = ThreadGrp::get_default_threadgrp();

View File

@@ -1,7 +1,7 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EAPI=8
inherit autotools toolchain-funcs
@@ -12,30 +12,31 @@ SRC_URI="mirror://sourceforge/mpqc/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="doc mpi threads static-libs tk"
IUSE="doc mpi threads tk"
RDEPEND="
virtual/blas
virtual/lapack
mpi? ( virtual/mpi[cxx] )
tk? ( dev-lang/tk:0 )"
DEPEND="${RDEPEND}
DEPEND="${RDEPEND}"
BDEPEND="
dev-lang/perl
sys-devel/flex
sys-apps/sed
virtual/pkgconfig
doc? (
app-doc/doxygen
media-gfx/graphviz )"
media-gfx/graphviz
)"
PATCHES=(
"${FILESDIR}/${P}-as-needed.patch"
"${FILESDIR}/${P}-respect-ldflags.patch"
"${FILESDIR}/${P}-test-failure-hack.patch"
"${FILESDIR}/${P}-blas.patch"
"${FILESDIR}/${P}-wformat-security.patch"
"${FILESDIR}"/${P}-as-needed.patch
"${FILESDIR}"/${P}-respect-ldflags.patch
"${FILESDIR}"/${P}-test-failure-hack.patch
"${FILESDIR}"/${P}-blas.patch
"${FILESDIR}"/${P}-wformat-security.patch
"${FILESDIR}"/${P}-MPI-3.0.patch
)
DOCS=(CHANGES CITATION README)
src_prepare() {
# do not install tkmolrender if not requested
@@ -48,7 +49,7 @@ src_prepare() {
|| die "failed to disable tkmolrender"
fi
default
mv configure.{in,ac} || die
eautoreconf
}
@@ -60,40 +61,40 @@ src_configure() {
fi
econf \
--enable-shared \
$(use_enable threads) \
$(use_enable mpi parallel) \
$(use_enable static-libs static)
$(use_enable mpi parallel)
sed \
-e "s:^CFLAGS =.*$:CFLAGS=${CFLAGS}:" \
-e "s:^FFLAGS =.*$:FFLAGS=${FFLAGS:- -O2}:" \
-e "s:^CXXFLAGS =.*$:CXXFLAGS=${CXXFLAGS}:" \
-e "s|^CFLAGS =.*$|CFLAGS=${CFLAGS}|" \
-e "s|^FFLAGS =.*$|FFLAGS=${FFLAGS:- -O2}|" \
-e "s|^CXXFLAGS =.*$|CXXFLAGS=${CXXFLAGS}|" \
-i lib/LocalMakefile || die
}
src_test() {
cd src/bin/mpqc/validate || die
# we'll only run the small test set, since the
# medium and large ones take >10h and >24h on my
# 1.8Ghz P4M
emake -j1 check1
emake -C src/bin/mpqc/validate -j1 check1
}
src_install() {
emake installroot="${D}" install install_devel install_inc
dodoc CHANGES CITATION README
# make extended docs
if use doc; then
cd doc || die
emake all
doman man/man1/* man/man3/*
dodoc -r html/
dodoc -r html
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
echo
einfo "MPQC can be picky with regard to compilation flags."
einfo "If during mpqc runs you have trouble converging or "
einfo "experience oscillations during SCF interations, "
@@ -101,5 +102,4 @@ pkg_postinst() {
einfo "Particularly, replacing -march=pentium4 by -march=pentium3"
einfo "might help if you encounter problems with correlation "
einfo "consistent basis sets."
echo
}