summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-cluster/mpich/Manifest2
-rw-r--r--sys-cluster/mpich/files/mpich-3.3-add-external-libdir-parameter.patch198
-rw-r--r--sys-cluster/mpich/mpich-3.3.ebuild (renamed from sys-cluster/mpich/mpich-3.2-r1.ebuild)29
3 files changed, 225 insertions, 4 deletions
diff --git a/sys-cluster/mpich/Manifest b/sys-cluster/mpich/Manifest
index 2f46ebaf024f..ee2a89453a2d 100644
--- a/sys-cluster/mpich/Manifest
+++ b/sys-cluster/mpich/Manifest
@@ -1,2 +1,2 @@
DIST mpich-3.0.4.tar.gz 10921075 BLAKE2B 341aaac23277aed05a4448ea03d9caf1ee14cfe327a770c95d620fc1ee1ea7bfa6df36860aa44aad162eb6d630d35fdfb30ae9a866d67680ab71c7b4326c109c SHA512 f9d8b2cf561fe5f85c12512ef4dd7b0cf5ec8b53ddb07bfa0d1db2e3c8ae0382c77e0661f46b82ec96b05d18ea2d25328bb84e9528ac06e5925f30ec8ef030d0
-DIST mpich-3.2.tar.gz 11862150 BLAKE2B 2e0414b2e11b08a59497fa255d464a2130c754ba8798b99a8b84f7232179906bb27906abbe58b9546833541c238f42ae06df90bfe1133d3ff2d85921d9736452 SHA512 083c51655b4355827bd7fa4fe528046e2bc77b7747d869ff87b79fa324c3cc2a9b5640ccb7271490ccc0dd627e354a33a449bbab448501bbfddcfe5f999ee717
+DIST mpich-3.3.tar.gz 27209008 BLAKE2B 3010f847456ed71a27e728b91887e04303a83b4abea883bf73d9794ff697052efe3bccd238933dc6e5fbc75e0be36004f1ae9fc7695a4e8887984552ae005917 SHA512 1ed6d8d30db4923fd1bd39b6e9622f0db939a45edf8d9f8bdbccfa619fde7fb920c5a0d3f2442f0dd63cf8fda823dbd2983ac5f7c16308bc79e04f61d8e119be
diff --git a/sys-cluster/mpich/files/mpich-3.3-add-external-libdir-parameter.patch b/sys-cluster/mpich/files/mpich-3.3-add-external-libdir-parameter.patch
new file mode 100644
index 000000000000..64be728f5748
--- /dev/null
+++ b/sys-cluster/mpich/files/mpich-3.3-add-external-libdir-parameter.patch
@@ -0,0 +1,198 @@
+diff --git a/confdb/aclocal_libs.m4 b/confdb/aclocal_libs.m4
+index c417204..5d98053 100644
+--- a/confdb/aclocal_libs.m4
++++ b/confdb/aclocal_libs.m4
+@@ -27,6 +27,14 @@ AC_DEFUN([PAC_SET_HEADER_LIB_PATH],[
+ [AC_MSG_WARN([--with[out]-$1-lib=PATH expects a valid PATH])
+ with_$1_lib=""])],
+ [])
++ AC_ARG_WITH([common-libdir],
++ [AS_HELP_STRING([[--with-common-libdir[=DIR]]], [use the $1
++ library installed in DIR, rather than the
++ one included in the distribution. Pass
++ "embedded" to force usage of the included
++ $1 source.])],
++ [],
++ [with_common_libdir=lib64])
+
+ # The args have been sanitized into empty/non-empty values above.
+ # Now append -I/-L args to CPPFLAGS/LDFLAGS, with more specific options
+@@ -42,9 +50,7 @@ AC_DEFUN([PAC_SET_HEADER_LIB_PATH],[
+ [AS_IF([test -n "${with_$1}"],
+ dnl is adding lib64 by default really the right thing to do? What if
+ dnl we are on a 32-bit host that happens to have both lib dirs available?
+- [PAC_APPEND_FLAG([-L${with_$1}/lib],[LDFLAGS])
+- AS_IF([test -d "${with_$1}/lib64"],
+- [PAC_APPEND_FLAG([-L${with_$1}/lib64],[LDFLAGS])])
++ [PAC_APPEND_FLAG([-L${with_$1}/${with_common_libdir}],[LDFLAGS])
+ ])
+ ])
+ ])
+@@ -79,6 +85,14 @@ AC_DEFUN([PAC_CHECK_HEADER_LIB_FATAL],[
+
+ dnl PAC_CHECK_PREFIX(with_option,prefixvar)
+ AC_DEFUN([PAC_CHECK_PREFIX],[
++ AC_ARG_WITH([prefix-libdir],
++ [AS_HELP_STRING([[--with-$1-prefix[=DIR]]], [use the $1
++ library installed in DIR, rather than the
++ one included in the distribution. Pass
++ "embedded" to force usage of the included
++ $1 source.])],
++ [],
++ [with_prefix_libdir=lib64])
+ AC_ARG_WITH([$1-prefix],
+ [AS_HELP_STRING([[--with-$1-prefix[=DIR]]], [use the $1
+ library installed in DIR, rather than the
+@@ -93,10 +107,7 @@ AC_DEFUN([PAC_CHECK_PREFIX],[
+ :
+ else
+ PAC_APPEND_FLAG([-I${with_$1_prefix}/include],[CPPFLAGS])
+- if test -d "${with_$1_prefix}/lib64" ; then
+- PAC_APPEND_FLAG([-L${with_$1_prefix}/lib64],[LDFLAGS])
+- fi
+- PAC_APPEND_FLAG([-L${with_$1_prefix}/lib],[LDFLAGS])
++ PAC_APPEND_FLAG([-L${with_$1_prefix}/${with_prefix_libdir}],[LDFLAGS])
+ fi
+ ],
+ [with_$1_prefix="embedded"])
+diff --git a/configure.ac b/configure.ac
+index 765aa9e..ef9c2e5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1240,6 +1240,11 @@ OPA_fetch_and_incr_int(&i,5);
+
+ opasrcdir=""
+ AC_SUBST([opasrcdir])
++AC_ARG_WITH([opal-libdir],
++ [AS_HELP_STRING([[--with-opal-libdir[=DIR]]],
++ [use the specified OPAL library path with DIR.])],
++ [],dnl action-if-given
++ [with_opal_libdir=lib64]) dnl action-if-not-given
+ opalibdir=""
+ AC_SUBST([opalibdir])
+ opalib=""
+@@ -1282,13 +1287,8 @@ else
+ [:],[AC_MSG_ERROR([the OpenPA installation in "${with_openpa_prefix}" appears broken])])
+ PAC_APPEND_FLAG([-I${with_openpa_prefix}/include],[CPPFLAGS])
+ PAC_PREPEND_FLAG([-l${OPALIBNAME}],[WRAPPER_LIBS])
+- if test -d ${with_openpa_prefix}/lib64 ; then
+- PAC_APPEND_FLAG([-L${with_openpa_prefix}/lib64],[WRAPPER_LDFLAGS])
+- opalibdir="-L${with_openpa_prefix}/lib64"
+- else
+- opalibdir="-L${with_openpa_prefix}/lib"
+- fi
+- PAC_APPEND_FLAG([-L${with_openpa_prefix}/lib],[WRAPPER_LDFLAGS])
++ PAC_APPEND_FLAG([-L${with_openpa_prefix}/${with_opal_libdir}],[WRAPPER_LDFLAGS])
++ opallibdir="-L${with_openpa_prefix}/${with_opal_libdir}"
+ fi
+
+ # Izem
+@@ -1463,6 +1463,11 @@ AC_ARG_WITH([hwloc-prefix],
+ [with_hwloc_prefix=embedded]) dnl action-if-not-given
+ hwlocsrcdir=""
+ AC_SUBST([hwlocsrcdir])
++AC_ARG_WITH([hwloc-libdir],
++ [AS_HELP_STRING([[--with-hwloc-libdir[=DIR]]],
++ [use the specified HWLOC library path with DIR.])],
++ [],dnl action-if-given
++ [with_hwloc_libdir=lib64]) dnl action-if-not-given
+ hwloclibdir=""
+ AC_SUBST([hwloclibdir])
+ hwloclib=""
+@@ -1502,12 +1507,8 @@ else
+
+ if test "$have_hwloc" = "yes" ; then
+ hwloclib="-lhwloc"
+- if test -d ${with_hwloc_prefix}/lib64 ; then
+- PAC_APPEND_FLAG([-L${with_hwloc_prefix}/lib64],[WRAPPER_LDFLAGS])
+- hwloclibdir="-L${with_hwloc_prefix}/lib64"
+- else
+- hwloclibdir="-L${with_hwloc_prefix}/lib"
+- fi
++ PAC_APPEND_FLAG([-L${with_hwloc_prefix}/${with_hwloc_libdir}],[WRAPPER_LDFLAGS])
++ hwloclibdir="-L${with_hwloc_prefix}/${with_hwloc_libdir}"
+ fi
+ fi
+
+@@ -1526,7 +1527,11 @@ AC_ARG_WITH([netloc-prefix],
+ [AS_HELP_STRING([[--with-netloc-prefix[=DIR]]],
+ [use the NETLOC library installed in DIR]) or system to use the system library], [],
+ [with_netloc_prefix=no])
+-
++AC_ARG_WITH([netloc-libdir],
++ [AS_HELP_STRING([[--with-netloc-libdir[=DIR]]],
++ [use the specified NETLOC library path with DIR.])],
++ [],dnl action-if-given
++ [with_netloc_libdir=lib64]) dnl action-if-not-given
+ netloclibdir=""
+ AC_SUBST([netloclibdir])
+
+@@ -1540,13 +1545,8 @@ if test "$have_hwloc" = "yes" ; then
+ PAC_APPEND_FLAG([-I${with_netloc_prefix}/include],[CPPFLAGS])
+ PAC_APPEND_FLAG([-I${with_netloc_prefix}/include],[CFLAGS])
+ PAC_PREPEND_FLAG([-lnetloc],[WRAPPER_LIBS])
+- if test -d ${with_netloc_prefix}/lib64 ; then
+- PAC_APPEND_FLAG([-L${with_netloc_prefix}/lib64],[WRAPPER_LDFLAGS])
+- netloclibdir="-L${with_netloc_prefix}/lib64"
+- else
+- PAC_APPEND_FLAG([-L${with_netloc_prefix}/lib],[WRAPPER_LDFLAGS])
+- netloclibdir="-L${with_netloc_prefix}/lib"
+- fi
++ PAC_APPEND_FLAG([-L${with_netloc_prefix}/${with_netloc_libdir}],[WRAPPER_LDFLAGS])
++ netloclibdir="-L${with_netloc_prefix}/${with_netloc_libdir}"
+ else
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include "netloc.h"
+ ],
+diff --git a/src/izem/configure.ac b/src/izem/configure.ac
+index b5417fd..fe6cf4a 100644
+--- a/src/izem/configure.ac
++++ b/src/izem/configure.ac
+@@ -344,9 +344,14 @@ esac
+
+ AC_SUBST(ZM_QUEUE_CONF)
+
++AC_ARG_WITH([izem-libdir],
++ [AS_HELP_STRING([--with-hwloc-libdir], [Set specific path to hwloc.])],
++ [],
++ [with_izem_libdir=lib64])
++
+ AC_ARG_WITH([hwloc],
+ [AS_HELP_STRING([--with-hwloc], [Set path to hwloc. Default: auto detect.])],
+- [LIBS="$LIBS -L$with_hwloc/lib"
++ [LIBS="$LIBS -L$with_hwloc/$with_izem_libdir"
+ CFLAGS="$CFLAGS -I$with_hwloc/include"],
+ [])
+
+diff --git a/src/mpid/ch4/netmod/ofi/libfabric/config/fi_provider.m4 b/src/mpid/ch4/netmod/ofi/libfabric/config/fi_provider.m4
+index 901de77..6778da7 100644
+--- a/src/mpid/ch4/netmod/ofi/libfabric/config/fi_provider.m4
++++ b/src/mpid/ch4/netmod/ofi/libfabric/config/fi_provider.m4
+@@ -189,16 +189,19 @@ AC_DEFUN([FI_CHECK_PREFIX_DIR],[
+ AC_MSG_ERROR([Cannot continue])
+ ])
+
++ AC_ARG_WITH([fiprovider-libdir],
++ [AS_HELP_STRING([[--with-fiprovider-libdir[=DIR]]],
++ [use the specified FI PROVIDER library path with DIR.])],
++ [],dnl action-if-given
++ [with_fiprovider_libdir=lib64]) dnl action-if-not-given
++
+ # Check that base/lib or base/lib64 exists
+- AS_IF([test -d "$1/lib64"],
+- [$2_LIBDIR="$1/lib64"],
+- [AS_IF([test -d "$1/lib"],
+- [$2_LIBDIR="$1/lib"],
+- [AC_MSG_WARN([could not find "lib" or "lib64" subdirectories in supplied "$1" directory"])
+- AC_MSG_ERROR([Cannot continue])
+- ])
+- ])
+- ])
++ [AS_IF([test -d "$1/${with_fiprovider_libdir}"],
++ [$2_LIBDIR="$1/${with_fiprovider_libdir}"],
++ [AC_MSG_WARN([could not find "lib" or "lib64" subdirectories in supplied "$1" directory"])
++ AC_MSG_ERROR([Cannot continue])
++ ])
++ ]])
+
+ dnl ------------------------------------------------------------------------
+
diff --git a/sys-cluster/mpich/mpich-3.2-r1.ebuild b/sys-cluster/mpich/mpich-3.3.ebuild
index 01bbbaa9867c..8eeb7b552f05 100644
--- a/sys-cluster/mpich/mpich-3.2-r1.ebuild
+++ b/sys-cluster/mpich/mpich-3.3.ebuild
@@ -6,7 +6,7 @@ EAPI=6
FORTRAN_NEEDED=fortran
FORTRAN_STANDARD="77 90"
-inherit fortran-2 multilib-minimal
+inherit fortran-2 multilib-minimal multilib autotools
MY_PV=${PV/_/}
DESCRIPTION="A high performance and portable MPI implementation"
@@ -15,12 +15,12 @@ SRC_URI="http://www.mpich.org/static/downloads/${PV}/${P}.tar.gz"
SLOT="0"
LICENSE="mpich2"
-KEYWORDS="amd64 ~arm64 hppa ppc ppc64 x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
IUSE="+cxx doc fortran mpi-threads romio threads"
COMMON_DEPEND="
>=dev-libs/libaio-0.3.109-r5[${MULTILIB_USEDEP}]
- <sys-apps/hwloc-2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwloc-2.0.2[${MULTILIB_USEDEP}]
romio? ( net-fs/nfs-utils )"
DEPEND="${COMMON_DEPEND}
@@ -40,6 +40,10 @@ MULTILIB_WRAPPED_HEADERS=(
/usr/include/opa_config.h
)
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3-add-external-libdir-parameter.patch
+)
+
src_prepare() {
default
@@ -48,6 +52,20 @@ src_prepare() {
src/packaging/pkgconfig/mpich.pc.in \
src/env/*.in \
|| die
+
+ # Fix m4 files to satisfy lib dir with multilib.
+ touch -r src/pm/hydra/confdb/aclocal_libs.m4 \
+ confdb/aclocal_libs.m4 \
+ || die
+ cp -fp confdb/aclocal_libs.m4 \
+ src/pm/hydra/confdb/aclocal_libs.m4 \
+ || die
+ cp -fp confdb/aclocal_libs.m4 \
+ src/pm/hydra/mpl/confdb/aclocal_libs.m4 \
+ || die
+ cd src/pm/hydra/mpl; eautoreconf; cd -
+ cd src/pm/hydra; eautoreconf; cd -
+ eautoreconf
}
multilib_src_configure() {
@@ -84,6 +102,11 @@ multilib_src_configure() {
ECONF_SOURCE=${S} econf \
--enable-shared \
--with-hwloc-prefix="${EPREFIX}/usr" \
+ --with-hwloc-libdir="$(get_libdir)" \
+ --with-common-libdir="$(get_libdir)" \
+ --with-prefix-libdir="$(get_libdir)" \
+ --with-izem-libdir="$(get_libdir)" \
+ --with-fiprovider-libdir="$(get_libdir)" \
${c} \
--with-pm=hydra \
--disable-fast \