diff options
author | Eli Schwartz <eschwartz93@gmail.com> | 2024-06-10 00:05:03 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@gentoo.org> | 2024-07-12 01:54:15 -0400 |
commit | 496a4f0ce86f43da3fe77ffd6c9bef2e41cf3852 (patch) | |
tree | 808ff5b0c8d5c1f61080fce60815a432b688addd /sys-cluster | |
parent | sys-cluster/openmpi: make sure elibtoolize is applied (diff) | |
download | gentoo-496a4f0ce86f43da3fe77ffd6c9bef2e41cf3852.tar.gz gentoo-496a4f0ce86f43da3fe77ffd6c9bef2e41cf3852.tar.bz2 gentoo-496a4f0ce86f43da3fe77ffd6c9bef2e41cf3852.zip |
sys-cluster/openmpi: add 5.0.3
A bunch of upstream changes occurred. In particular:
- openmpi drops ALL support for 32-bit, and errors out in ./configure if
you try. This follows pmix. Rip out all the multilib-minimal
scaffolding.
- libompitrace "was incomplete and unmaintained" and is now removed from
the sources
- upstream now defaults to --disable-dlopen, and configuring with
libltdl enabled externally returns errors saying a non libltdl header
doesn't exist. Unclear if it actually supports this
- a couple dependencies can now be configured --with-*=external instead
of passing paths
- libibverbs handling is gone upstream and no longer makes sense to
configure via USE flags (or at all):
https://github.com/open-mpi/ompi/commit/59c8ab6da4276ff398453a54910c6c0fb67a153c
Delayed:
- heterogeneous was broken in older versions, and its USE flag is
supposed to be restored. But the upstream docs still suggest it is
broken.
Independent of upstream rework of pmix, we take the opportunity of a
version bump to build against the system pmix, resolving a longstanding
bug due to openmpi publicly shipping its own pmix installation that
stomps all over the global system namespace. Temporarily drop keywords
which the pmix package lacks.
Bug: https://bugs.gentoo.org/828123
Closes: https://bugs.gentoo.org/652432
Closes: https://bugs.gentoo.org/927828
Closes: https://bugs.gentoo.org/930362
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/openmpi/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/openmpi/openmpi-5.0.3.ebuild | 141 |
2 files changed, 142 insertions, 0 deletions
diff --git a/sys-cluster/openmpi/Manifest b/sys-cluster/openmpi/Manifest index aad192529f00..687b6214d0a6 100644 --- a/sys-cluster/openmpi/Manifest +++ b/sys-cluster/openmpi/Manifest @@ -1,3 +1,4 @@ DIST openmpi-4.1.4.tar.bz2 10042839 BLAKE2B b020e3530ae5dde7b144e7c33b1a3f26f622526a4b48a97a0956fc6f49bbf9dfd5be9ebeeaf3bdc5168a307507408ba5dd8e2a537148821e1d476678177dc5d6 SHA512 c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653 DIST openmpi-4.1.5.tar.bz2 10045426 BLAKE2B 135a8373ed6173b7a94def18e3b964c6b6050c909382e0dbb1898a6d261ae428931358121ef6d325d303f4f510017a94970f7c66b280a5fc460365821f36dece SHA512 7a2188684ed7542fe42e1717ae72cb859b4f3d6f722c9d3ba04bfed6c2178b3e7da3a536629d312c23571fed4d9b2ca5e20e85898ae5144e9332bd898e6e1cc6 DIST openmpi-4.1.6.tar.bz2 10017002 BLAKE2B 4f119e1ed9b8787f0f860295ab1721fe2fd5300b8e182230a9eba3a864680b02bbd30618cc6d798a693a121626fc0ad5f447144d9ba91becb734f1a530d7a23a SHA512 0ef3240f9c436fb19b67e836cac376eafeb7825d12de3387dad04329dee9f182799d17d785ea23eba763810f479015bb5230593c28950b616b2f0aa1c0a81e71 +DIST openmpi-5.0.3.tar.bz2 29761888 BLAKE2B a084813f3dada12bbe77dcc6ef0ec0454980779f97ccb46f37f3d7df3bf7299e6484ec3427c2ca784e70876f62dc061a13cb7f08348e3d649e27f2bece9a09ac SHA512 60e8f6dcd6b1531ce8164e02f40be9a364ab484166a2a7b13bdff115a508f0596e97ad0a4204a47799ae608ba484a7ba9503042bddffe675f09ce22071b0b4a9 diff --git a/sys-cluster/openmpi/openmpi-5.0.3.ebuild b/sys-cluster/openmpi/openmpi-5.0.3.ebuild new file mode 100644 index 000000000000..f22be0582eaa --- /dev/null +++ b/sys-cluster/openmpi/openmpi-5.0.3.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FORTRAN_NEEDED=fortran +inherit cuda flag-o-matic fortran-2 libtool + +MY_P=${P/-mpi} + +IUSE_OPENMPI_FABRICS=" + openmpi_fabrics_ofed + openmpi_fabrics_knem" + +IUSE_OPENMPI_RM=" + openmpi_rm_pbs + openmpi_rm_slurm" + +DESCRIPTION="A high-performance message passing library (MPI)" +HOMEPAGE="https://www.open-mpi.org" +SRC_URI="https://www.open-mpi.org/software/ompi/v$(ver_cut 1-2)/downloads/${MY_P}.tar.bz2" +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 -arm -ppc -x86 ~amd64-linux" +IUSE="cma cuda cxx fortran ipv6 peruse romio valgrind + ${IUSE_OPENMPI_FABRICS} ${IUSE_OPENMPI_RM}" + +REQUIRED_USE=" + openmpi_rm_slurm? ( !openmpi_rm_pbs ) + openmpi_rm_pbs? ( !openmpi_rm_slurm ) +" + +RDEPEND=" + !sys-cluster/mpich + !sys-cluster/mpich2 + !sys-cluster/nullmpi + >=dev-libs/libevent-2.0.22:=[threads(+)] + >=sys-apps/hwloc-2.0.2:= + sys-cluster/pmix:= + >=sys-libs/zlib-1.2.8-r1 + cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.19-r1:= ) + openmpi_fabrics_ofed? ( sys-cluster/rdma-core ) + openmpi_fabrics_knem? ( sys-cluster/knem ) + openmpi_rm_pbs? ( sys-cluster/torque ) + openmpi_rm_slurm? ( sys-cluster/slurm ) +" +DEPEND="${RDEPEND} + valgrind? ( dev-debug/valgrind )" + +pkg_setup() { + fortran-2_pkg_setup + + elog + elog "OpenMPI has an overwhelming count of configuration options." + elog "Don't forget the EXTRA_ECONF environment variable can let you" + elog "specify configure options if you find them necessary." + elog +} + +src_prepare() { + default + elibtoolize + + # Avoid test which ends up looking at system mounts + echo "int main() { return 0; }" > test/util/opal_path_nfs.c || die + + # Necessary for scalibility, see + # http://www.open-mpi.org/community/lists/users/2008/09/6514.php + echo 'oob_tcp_listen_mode = listen_thread' \ + >> opal/etc/openmpi-mca-params.conf || die +} + +src_configure() { + # -Werror=lto-type-mismatch, -Werror=strict-aliasing + # The former even prevents successfully running ./configure, but both appear + # at `make` time as well. + # https://bugs.gentoo.org/913040 + # https://github.com/open-mpi/ompi/issues/12674 + # https://github.com/open-mpi/ompi/issues/12675 + append-flags -fno-strict-aliasing + filter-lto + + local myconf=( + --disable-mpi-java + # configure takes a looooong time, but upstream currently force + # constriants on caching: + # https://github.com/open-mpi/ompi/blob/9eec56222a5c98d13790c9ee74877f1562ac27e8/config/opal_config_subdir.m4#L118 + # so no --cache-dir for now. + --enable-mpi-fortran=$(usex fortran all no) + --enable-orterun-prefix-by-default + --enable-pretty-print-stacktrace + + --sysconfdir="${EPREFIX}/etc/${PN}" + + --with-hwloc=external + --with-libevent=external + + # Oiriginally supposed to be re-enabled for 5.0! + # See https://github.com/open-mpi/ompi/issues/9697#issuecomment-1003746357 + # and https://bugs.gentoo.org/828123#c14 + # + # However as of 5.0.3 the docs still say: + # + # As such, supporting data heterogeneity is a feature that has fallen + # into disrepair and is currently known to be broken in this release + # of Open MPI. + --disable-heterogeneous + + $(use_enable cxx mpi-cxx) + $(use_enable ipv6) + $(use_enable peruse) + $(use_enable romio io-romio) + + $(use_with cma) + + $(use_with cuda cuda "${EPREFIX}"/opt/cuda) + $(use_with valgrind) + $(use_with openmpi_fabrics_knem knem "${EPREFIX}"/usr) + $(use_with openmpi_rm_pbs tm) + $(use_with openmpi_rm_slurm slurm) + ) + + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myconf[@]}" +} + +src_compile() { + emake V=1 +} + +src_test() { + emake -C test check +} + +src_install() { + default + + # Remove la files, no static libs are installed and we have pkg-config + find "${ED}" -name '*.la' -delete || die +} |