summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Bronder <jsbronder@gentoo.org>2011-05-04 03:29:40 +0000
committerJustin Bronder <jsbronder@gentoo.org>2011-05-04 03:29:40 +0000
commite5fa8d716ca563da23b9723b9f3ab26be63d8408 (patch)
tree0acfa06208dadaf947edf5baa31fa5ab74c1e45c /sys-cluster
parentAll older than -good-0.10.23 versions are gone from tree, so remove now unnec... (diff)
downloadgentoo-2-e5fa8d716ca563da23b9723b9f3ab26be63d8408.tar.gz
gentoo-2-e5fa8d716ca563da23b9723b9f3ab26be63d8408.tar.bz2
gentoo-2-e5fa8d716ca563da23b9723b9f3ab26be63d8408.zip
Version bump (#362655). Use system hwloc. Use hydra instead of mpd for pm (#145367). Disable more tests as recommended by upstream.
(Portage version: 2.1.9.46/cvs/Linux x86_64)
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/mpich2/ChangeLog10
-rw-r--r--sys-cluster/mpich2/mpich2-1.4_rc2.ebuild148
2 files changed, 156 insertions, 2 deletions
diff --git a/sys-cluster/mpich2/ChangeLog b/sys-cluster/mpich2/ChangeLog
index a39675ed9b59..2c6f5c1be0cd 100644
--- a/sys-cluster/mpich2/ChangeLog
+++ b/sys-cluster/mpich2/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-cluster/mpich2
-# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.67 2010/12/16 15:54:28 jlec Exp $
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.68 2011/05/04 03:29:40 jsbronder Exp $
+
+*mpich2-1.4_rc2 (04 May 2011)
+
+ 04 May 2011; Justin Bronder <jsbronder@gentoo.org> +mpich2-1.4_rc2.ebuild:
+ Version bump (#362655). Use system hwloc. Use hydra instead of mpd for pm
+ (#145367). Disable more tests as recommended by upstream.
16 Dec 2010; Justin Lecher <jlec@gentoo.org> mpich2-1.2.1_p1-r1.ebuild:
Removal of fortran.eclass, #348851
diff --git a/sys-cluster/mpich2/mpich2-1.4_rc2.ebuild b/sys-cluster/mpich2/mpich2-1.4_rc2.ebuild
new file mode 100644
index 000000000000..28c4c5ac057d
--- /dev/null
+++ b/sys-cluster/mpich2/mpich2-1.4_rc2.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.4_rc2.ebuild,v 1.1 2011/05/04 03:29:40 jsbronder Exp $
+
+EAPI=2
+
+inherit eutils toolchain-funcs
+
+MY_PV=${PV/_/}
+DESCRIPTION="MPICH2 - A portable MPI implementation"
+HOMEPAGE="http://www.mcs.anl.gov/research/projects/mpich2/index.php"
+SRC_URI="http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/${MY_PV}/${PN}-${MY_PV}.tar.gz"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
+IUSE="+cxx debug doc fortran threads romio mpi-threads"
+
+COMMON_DEPEND="dev-libs/libaio
+ >=sys-apps/hwloc-1.1.1
+ romio? ( net-fs/nfs-utils )"
+
+DEPEND="${COMMON_DEPEND}
+ dev-lang/perl
+ sys-devel/libtool"
+
+RDEPEND="${COMMON_DEPEND}
+ !sys-cluster/openmpi
+ !sys-cluster/lam-mpi"
+
+S="${WORKDIR}"/${PN}-${MY_PV}
+
+pkg_setup() {
+ if use mpi-threads && ! use threads; then
+ ewarn "mpi-threads requires threads, assuming that's what you want"
+ fi
+}
+
+src_prepare() {
+ # Cannot use bin/mpiexec as hydra is built by autotools and is
+ # a shell wrapped executable.
+ sed -i \
+ -e "s,@MPIEXEC@,${S}/src/pm/hydra/mpiexec.hydra,g" \
+ $(find ./test/ -name 'Makefile.in') || die
+
+ # #293665
+ # We could use MPICH2LIB_XFLAGS here and unset the cooresponding ones
+ # in the environment, however that's messy and doesn't for for LDFLAGS.
+ sed -i \
+ -e 's,\(.*=\ *\)"@WRAPPER_[A-Z]*FLAGS@",\1"",' \
+ src/env/*.conf.in || die
+}
+
+src_configure() {
+ local c="--enable-shared --enable-sharedlibs=gcc"
+ local romio_conf
+
+ # The configure statements can be somewhat confusing, as they
+ # don't all show up in the top level configure, however, they
+ # are picked up in the children directories.
+
+ use debug && c="${c} --enable-g=all --enable-debuginfo"
+
+ if use mpi-threads; then
+ # MPI-THREAD requries threading.
+ c="${c} --with-thread-package=pthreads"
+ c="${c} --enable-threads=runtime"
+ else
+ if use threads ; then
+ c="${c} --with-thread-package=pthreads"
+ else
+ c="${c} --with-thread-package=none"
+ fi
+ c="${c} --enable-threads=single"
+ fi
+
+ # enable f90 support for appropriate compilers
+ case "$(tc-getFC)" in
+ gfortran|if*)
+ c="${c} --enable-f77 --enable-fc";;
+ g77)
+ c="${c} --enable-f77 --disable-fc";;
+ esac
+
+ c="${c} --sysconfdir=/etc/${PN}"
+ econf ${c} ${romio_conf} \
+ --docdir=/usr/share/doc/${PF} \
+ --with-pm=hydra \
+ --disable-mpe \
+ --with-hwloc-prefix=/usr \
+ --disable-fast \
+ --enable-smpcoll \
+ $(use_enable romio) \
+ $(use_enable cxx) \
+ || die
+}
+
+src_compile() {
+ # Oh, the irony.
+ # http://wiki.mcs.anl.gov/mpich2/index.php/Frequently_Asked_Questions#Q:_The_build_fails_when_I_use_parallel_make.
+ # https://trac.mcs.anl.gov/projects/mpich2/ticket/711
+ emake -j1 || die
+}
+
+src_test() {
+ if ! use romio; then
+ # These tests in errhan/ rely on MPI::File ...which is in romio
+ echo "" > test/mpi/errors/cxx/errhan/testlist
+ fi
+
+ # See #362655 and comments in the testlist files.
+ # large_message: only on machines with > 8gb of ram
+ # bcastlength: This is an extension to MPI that's not necessary
+ # non_zero_root: performance test
+ # Also note that I/O tests may fail on non-local filesystems.
+ sed -i '/^[# ]*large_message/d' test/mpi/pt2pt/testlist || die
+ sed -i '/^[# ]*bcastlength/d' test/mpi/errors/coll/testlist || die
+ sed -i '/^[# ]*non_zero_root/d' test/mpi/perf/testlist || die
+
+ if use debug; then
+ # http://bugs.gentoo.org/show_bug.cgi?id=362655#c8
+ sed -i '/^[# ]*scancel/d' test/mpi/pt2pt/testlist || die
+ sed -i '/^[# ]*pscancel/d' test/mpi/pt2pt/testlist || die
+ sed -i '/^[# ]*cancelrecv/d' test/mpi/pt2pt/testlist || die
+ fi
+
+ emake -j1 \
+ CC="${S}"/bin/mpicc \
+ CXX="${S}"/bin/mpicxx \
+ F77="${S}"/bin/mpif77 \
+ FC="${S}"/bin/mpif90 \
+ testing
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+
+ dodir /usr/share/doc/${PF}
+ dodoc COPYRIGHT README CHANGES RELEASE_NOTES || die
+ newdoc src/pm/mpd/README README.hydra|| die
+ if use romio; then
+ newdoc src/mpi/romio/README README.romio || die
+ fi
+
+ if ! use doc; then
+ rm -rf "${D}"/usr/share/doc/${PF}/www*
+ fi
+}