summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-cluster/mpich2/ChangeLog15
-rw-r--r--sys-cluster/mpich2/files/mpich2-1.0.6-no-pvfs2.patch37
-rw-r--r--sys-cluster/mpich2/mpich2-1.0.6.ebuild54
3 files changed, 87 insertions, 19 deletions
diff --git a/sys-cluster/mpich2/ChangeLog b/sys-cluster/mpich2/ChangeLog
index 02ae9db5de64..05850bed861b 100644
--- a/sys-cluster/mpich2/ChangeLog
+++ b/sys-cluster/mpich2/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for sys-cluster/mpich2
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.23 2007/12/12 05:20:45 nerdboy Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/ChangeLog,v 1.24 2007/12/24 17:32:54 nerdboy Exp $
+
+ 24 Dec 2007; Steve Arnold <nerdboy@gentoo.org>
+ +files/mpich2-1.0.6-no-pvfs2.patch, mpich2-1.0.6.ebuild:
+ Made libaio and basic romio support the standard config (removed romio USE
+ flag). It still won't quite build the shared libs correctly if pvfs2 is
+ installed but not enabled for the mpich2 build. The pvfs2 package must
+ be removed if building mpich2 without pvfs2 support, otherwise the shared
+ libraries will have a missing symbol from the detected PVFS2/AIO config.
+ The libaio and basic romio support are required for the standard build
+ (which is just unix filesystem and NFS client support) and pvfs2 support
+ is completely optional. Everything now appears to build correctly as far
+ as shared libs, both with and without pvfs2 support, the mpe and mpe-sdk
+ stuff, etc. Test away...
12 Dec 2007; Steve Arnold <nerdboy@gentoo.org> mpich2-1.0.6.ebuild:
fixed string quoting issue in bug 201182, although I can't reproduce
diff --git a/sys-cluster/mpich2/files/mpich2-1.0.6-no-pvfs2.patch b/sys-cluster/mpich2/files/mpich2-1.0.6-no-pvfs2.patch
new file mode 100644
index 000000000000..c3b58e447956
--- /dev/null
+++ b/sys-cluster/mpich2/files/mpich2-1.0.6-no-pvfs2.patch
@@ -0,0 +1,37 @@
+--- src/mpi/romio/configure.orig 2007-12-15 17:34:03.000000000 -0800
++++ src/mpi/romio/configure 2007-12-15 18:15:12.000000000 -0800
+@@ -1925,6 +1925,12 @@
+ # Check whether --with-pvfs2 was given.
+ if test "${with_pvfs2+set}" = set; then
+ withval=$with_pvfs2;
++ if test "x$withval" = "xno" ; then
++ without_pvfs2=yes
++ with_pvfs2=""
++ fi
++else
++ without_pvfs2=yes
+ fi
+
+
+@@ -7574,11 +7580,16 @@
+
+
+ if test $PVFS2_CONFIG != "notfound" ; then
+- CFLAGS="$CFLAGS $( $PVFS2_CONFIG --cflags)"
+- LIBS="$LIBS $( $PVFS2_CONFIG --libs)"
+- ROMIO_LIBLIST="$ROMIO_LIBLIST $LIBS"
+- FILE_SYSTEM="pvfs2 $FILE_SYSTEM"
+- file_system_pvfs2=1
++ if test "x$without_pvfs2" = "xyes" ; then
++ ROMIO_LIBLIST="$ROMIO_LIBLIST $LIBS"
++ file_system_pvfs2=0
++ else
++ CFLAGS="$CFLAGS $( $PVFS2_CONFIG --cflags)"
++ LIBS="$LIBS $( $PVFS2_CONFIG --libs)"
++ ROMIO_LIBLIST="$ROMIO_LIBLIST $LIBS"
++ FILE_SYSTEM="pvfs2 $FILE_SYSTEM"
++ file_system_pvfs2=1
++ fi
+ fi
+
+ if test "$PVFS2_CONFIG" = "notfound" -a -n "$with_pvfs2" ; then
diff --git a/sys-cluster/mpich2/mpich2-1.0.6.ebuild b/sys-cluster/mpich2/mpich2-1.0.6.ebuild
index 8aedb1e49135..b674c392abd3 100644
--- a/sys-cluster/mpich2/mpich2-1.0.6.ebuild
+++ b/sys-cluster/mpich2/mpich2-1.0.6.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.6.ebuild,v 1.3 2007/12/12 05:20:45 nerdboy Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/mpich2/mpich2-1.0.6.ebuild,v 1.4 2007/12/24 17:32:54 nerdboy Exp $
inherit autotools distutils eutils flag-o-matic fortran java-pkg-2
@@ -16,17 +16,17 @@ SRC_URI="http://www.mcs.anl.gov/research/projects/mpich2/downloads/${MY_P}.tar.g
LICENSE="as-is"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-IUSE="crypt cxx debug doc fast fortran mpe mpe-sdk pvfs2 romio threads"
+IUSE="crypt cxx debug doc fast fortran mpe mpe-sdk pvfs2 threads"
DEPEND="virtual/libc
sys-devel/libtool
dev-lang/perl
>=dev-lang/python-2.3
+ >=dev-libs/libaio-0.3.106
+ net-fs/nfs-utils
+ pvfs2? ( >=sys-cluster/pvfs2-2.7.0 )
mpe-sdk? ( >=virtual/jdk-1.5
x11-proto/xproto )
- romio? ( >=dev-libs/libaio-0.3.106
- net-fs/nfs-utils )
- pvfs2? ( >=sys-cluster/pvfs2-2.7.0 )
doc? ( virtual/tetex )"
RDEPEND="${DEPEND}
@@ -99,8 +99,17 @@ src_unpack() {
epatch "${FILESDIR}/${P}-makefile.patch" || die "make patch failed"
if use pvfs2; then
- sed -i -e "s:-laio:-lpvfs2 -laio:g" Makefile.in \
+ sed -i -e "s:-laio:-laio -lpvfs2:g" Makefile.in \
|| die "sed pvfs2 failed"
+ else
+ epatch "${FILESDIR}/${P}-no-pvfs2.patch" || die "no pvfs patch failed"
+ elog ""
+ ewarn "If you wish to build without pvfs2 support, then you will"
+ ewarn "need to remove the pvfs2 package if already installed."
+ ewarn "Please remove pvfs2 and then rebuild mpich2. If pvfs2"
+ ewarn "is not installed, then you can safely ignore this warning."
+ elog ""
+ epause 5
fi
use mpe-sdk && setup-jvm-opts
@@ -149,16 +158,20 @@ src_compile() {
;;
esac
- if use romio; then
- myconf="${myconf} --enable-aio"
- if use pvfs2; then
- myconf="${myconf} --with-file-system=pvfs2+nfs+ufs \
- --with-pvfs2=/usr"
- else
- myconf="${myconf} --with-file-system=nfs+ufs"
- fi
- use debug && myconf="${myconf} --enable-debug"
+ # top-level configure option is romio
+ myconf="${myconf} --enable-romio"
+
+ # several of these are romio-specific configure options
+ myconf="${myconf} --enable-aio --with-mpi=mpich2_mpi"
+ if use pvfs2; then
+ myconf="${myconf} --with-file-system=pvfs2+nfs+ufs \
+ --with-pvfs2=/usr"
+ else
+ # support for nfs and unix-like filesystems is the minimum
+ myconf="${myconf} --with-file-system=nfs+ufs --with-pvfs2=no"
fi
+ # enable debug for romio
+ use debug && myconf="${myconf} --enable-debug"
use mpe && MPE_SRC_DIR="${S}"/src/mpe2
@@ -207,19 +220,19 @@ src_compile() {
"${S}"/configure \
--with-pm=mpd,gforker \
+ --prefix=/usr \
+ --exec-prefix=/usr \
${myconf} \
${mpe_conf} \
${doc_conf} \
$(use_enable fast) \
$(use_enable cxx) \
$(use_enable mpe) \
- $(use_enable romio) \
$(use_enable threads) \
--libdir=/usr/$(get_libdir) \
--includedir=/usr/include \
--mandir=/usr/share/man \
--sysconfdir=/etc/"${PN}" \
- --prefix=/usr --exec-prefix=/usr \
--datadir=/usr/share/"${PN}" || die "configure failed"
# no parallel make here
@@ -319,7 +332,12 @@ pkg_postinst() {
elog "utilities. You probably don't want to enable the mpe-sdk USE"
elog "flag on a server, cluster node, etc."
elog ""
- elog "Note 2: this package still needs testing with other Fortran90"
+ elog "Note 2: the shared libraries are now building correctly, at"
+ elog "least with and without pvfs2 support (the romio USE flag is no"
+ elog "longer availaible, at least until the configure scripts can be"
+ elog "made to stop finding things when they're disabled)."
+ elog ""
+ elog "Note 3: this package still needs testing with other Fortran90"
elog "compilers besides gfortran (gcc4). The tests also need some"
elog "magic to build properly within the portage build environment."
elog "(currently the tests only build and run manually)"