diff options
-rw-r--r-- | sys-cluster/mpich/Manifest | 2 | ||||
-rw-r--r-- | sys-cluster/mpich/files/mpich-3.3-add-external-libdir-parameter.patch | 198 | ||||
-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 \ |