mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 01:26:39 -04:00
net/openmpi: upgrade to v5.0.1
Release notes available at <https://www-lb.open-mpi.org/software/ompi/major-changes.php>. Notes: - The MPI C++ bindings were deprecated in the MPI-2.2 standard in 2009, and removed from the MPI-3.0 standard in 2012. The MPI C++ bindings were then removed from Open MPI v5.0.0 in 2022; - ofi (libfabric) was explicitly disabled in this port - I don’t know why but kept it this way; - ROMIO has been disabled (See <https://github.com/open-mpi/ompi/issues/9715>); - 32 bits platforms are not supported: this port has been repocopied to net/openmpi4 for them.
This commit is contained in:
parent
3e61f8fcd4
commit
0728e016e0
5 changed files with 2513 additions and 475 deletions
|
@ -1,8 +1,7 @@
|
|||
PORTNAME= openmpi
|
||||
PORTVERSION= 4.1.5
|
||||
PORTREVISION= 4
|
||||
PORTVERSION= 5.0.1
|
||||
CATEGORIES= net parallel
|
||||
MASTER_SITES= http://www.open-mpi.org/software/ompi/v${PORTVERSION:R}/downloads/
|
||||
MASTER_SITES= https://download.open-mpi.org/release/open-mpi/v${PORTVERSION:R}/
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= High Performance Message Passing Library
|
||||
|
@ -11,50 +10,52 @@ WWW= https://www.open-mpi.org/
|
|||
LICENSE= BSD3CLAUSE
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
NOT_FOR_ARCHS= armv6 armv7 i386 powerpc
|
||||
NOT_FOR_ARCHS_REASON= Not supported on 32-bits - see net/openmpi4
|
||||
|
||||
LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 \
|
||||
libltdl.so:devel/libltdl \
|
||||
libevent.so:devel/libevent \
|
||||
libmunge.so:security/munge
|
||||
libmunge.so:security/munge \
|
||||
libze_loader.so:devel/level-zero
|
||||
|
||||
# :keepla because port uses lt_dlopen
|
||||
USES= fortran gmake libtool:keepla localbase perl5 \
|
||||
USES= compiler:c11 fortran gmake libtool:keepla localbase perl5 \
|
||||
pkgconfig shebangfix tar:bzip2
|
||||
|
||||
HAS_CONFIGURE= yes
|
||||
CONFLICTS_INSTALL= openmpi4-4*
|
||||
|
||||
USE_PERL5= build
|
||||
|
||||
MPIBASE?= mpi
|
||||
MPIDIR?= ${MPIBASE}/${PKGBASE}
|
||||
|
||||
PLIST_SUB+= MPIBASE=${MPIBASE}
|
||||
PLIST_SUB+= MPIDIR=${MPIDIR}
|
||||
|
||||
# Workaround for https://github.com/open-mpi/ompi/issues/7516
|
||||
CONFIGURE_ENV+= DISABLE_gds_ds12=1 DISABLE_gds_ds21=1
|
||||
|
||||
CONFIGURE_ARGS+= --prefix=${PREFIX}/${MPIDIR} \
|
||||
--mandir=${PREFIX}/${MPIDIR}/share/man \
|
||||
--program-prefix= \
|
||||
GNU_CONFIGURE= yes
|
||||
GNU_CONFIGURE_PREFIX= ${PREFIX}/${MPIDIR}
|
||||
GNU_CONFIGURE_MANPREFIX=${PREFIX}/${MPIDIR}/share
|
||||
CONFIGURE_ARGS+= --program-prefix= \
|
||||
--with-hwloc=external \
|
||||
--with-libltdl \
|
||||
--without-ofi \
|
||||
--enable-mpi-fortran=usempi \
|
||||
--enable-mpi-cxx \
|
||||
--enable-cxx-exceptions \
|
||||
--enable-mpi-fortran=usempif08 \
|
||||
--with-libevent=external \
|
||||
--enable-mca-no-build=verbs,btl_openib,oob_ud \
|
||||
--without-verbs \
|
||||
--with-wrapper-ldflags=-Wl,-rpath=-Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \
|
||||
ompi_cv_fortran_ignore_tkr_data=0
|
||||
--with-wrapper-ldflags=-Wl,-rpath=-Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER}
|
||||
CFLAGS+= ${CFLAGS_F2018}
|
||||
|
||||
# See <https://github.com/open-mpi/ompi/issues/9715>
|
||||
CONFIGURE_ARGS+= --disable-io-romio
|
||||
|
||||
USE_LDCONFIG= ${PREFIX}/${MPIDIR}/lib
|
||||
|
||||
TEST_TARGET= check
|
||||
|
||||
MANDIRS= ${PREFIX}/${MPIDIR}/share/man
|
||||
|
||||
SHEBANG_FILES= ompi/mca/common/monitoring/profile2mat.pl \
|
||||
ompi/mca/common/monitoring/aggregate_profile.pl
|
||||
|
||||
OPTIONS_DEFINE= AVX DEBUG IPV6 SLURM TORQUE
|
||||
OPTIONS_DEFINE= AVX DEBUG DOCS IPV6 SLURM TORQUE
|
||||
OPTIONS_DEFAULT= SLURM
|
||||
OPTIONS_EXCLUDE_aarch64= AVX
|
||||
OPTIONS_EXCLUDE_armv6= AVX SLURM
|
||||
|
@ -77,33 +78,20 @@ AVX_CONFIGURE_OFF= --enable-mca-no-build=op-avx
|
|||
DEBUG_CONFIGURE_ENABLE= debug
|
||||
DEBUG_INSTALL_TARGET_OFF= install-strip
|
||||
|
||||
DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}recommonmark>0:textproc/py-recommonmark@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
|
||||
DOCS_USES= python:build
|
||||
|
||||
IPV6_CONFIGURE_ENABLE= ipv6
|
||||
|
||||
TORQUE_CONFIGURE_WITH= tm
|
||||
TORQUE_LIB_DEPENDS= libtorque.so:sysutils/torque
|
||||
TORQUE_PLIST_FILES= ${MPIDIR}/lib/openmpi/mca_plm_tm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_plm_tm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_ras_tm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_ras_tm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_ess_tm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_ess_tm.la \
|
||||
${MPIDIR}/share/openmpi/help-plm-tm.txt \
|
||||
${MPIDIR}/share/openmpi/help-ras-tm.txt
|
||||
|
||||
SLURM_CONFIGURE_WITH= slurm
|
||||
SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
|
||||
SLURM_PLIST_FILES= ${MPIDIR}/lib/openmpi/mca_ess_slurm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_ess_slurm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_plm_slurm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_plm_slurm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_ras_slurm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_ras_slurm.so \
|
||||
${MPIDIR}/lib/openmpi/mca_schizo_slurm.la \
|
||||
${MPIDIR}/lib/openmpi/mca_schizo_slurm.so \
|
||||
${MPIDIR}/share/openmpi/help-plm-slurm.txt \
|
||||
${MPIDIR}/share/openmpi/help-ras-slurm.txt
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${FORTRAN_DEFAULT} == gfortran && ${GCC_DEFAULT} >= 10
|
||||
FCFLAGS+= -fallow-argument-mismatch
|
||||
|
@ -115,17 +103,19 @@ PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE="@comment "
|
|||
PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE=""
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${LOCALBASE}/libdata/pkgconfig|g' \
|
||||
${WRKSRC}/ompi/tools/wrappers/Makefile.am \
|
||||
${WRKSRC}/ompi/tools/wrappers/Makefile.in \
|
||||
${WRKSRC}/opal/tools/wrappers/Makefile.am \
|
||||
${WRKSRC}/opal/tools/wrappers/Makefile.in \
|
||||
${WRKSRC}/orte/tools/wrappers/Makefile.am \
|
||||
${WRKSRC}/orte/tools/wrappers/Makefile.in \
|
||||
${WRKSRC}/opal/mca/pmix/pmix3x/pmix/Makefile.am \
|
||||
${WRKSRC}/opal/mca/pmix/pmix3x/pmix/Makefile.in
|
||||
@${REINPLACE_CMD} 's|define MCA_hwloc_external_.*header "|&${LOCALBASE}/include/|' \
|
||||
${WRKSRC}/configure
|
||||
.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 170
|
||||
PLIST_SUB+= SHORTFLOAT=""
|
||||
.else
|
||||
PLIST_SUB+= SHORTFLOAT="@comment "
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
LIBDIR2FIX= oshmem/tools/wrappers opal/tools/wrappers \
|
||||
3rd-party/openpmix ompi/tools/wrappers
|
||||
|
||||
pre-configure:
|
||||
.for d in ${LIBDIR2FIX}
|
||||
${REINPLACE_CMD} -e 's|$$(libdir)/pkgconfig|${LOCALBASE}/libdata/pkgconfig|g' \
|
||||
${WRKSRC}/${d}/Makefile.in
|
||||
.endfor
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
TIMESTAMP = 1677228694
|
||||
SHA256 (openmpi-4.1.5.tar.bz2) = a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3
|
||||
SIZE (openmpi-4.1.5.tar.bz2) = 10045426
|
||||
TIMESTAMP = 1705771645
|
||||
SHA256 (openmpi-5.0.1.tar.bz2) = e357043e65fd1b956a47d0dae6156a90cf0e378df759364936c1781f1a25ef80
|
||||
SIZE (openmpi-5.0.1.tar.bz2) = 29740669
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
--- opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c.orig 2020-04-12 11:49:10 UTC
|
||||
+++ opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c
|
||||
@@ -79,6 +79,9 @@ static int _mmap_segment_create(pmix_pshmem_seg_t *sm_
|
||||
if (0 != (rc = posix_fallocate(sm_seg->seg_id, 0, size))) {
|
||||
pmix_output_verbose(2, pmix_globals.debug_output,
|
||||
"sys call posix_fallocate(2) fail\n");
|
||||
+ if (EINVAL == rc) {
|
||||
+ goto ftruncate;
|
||||
+ }
|
||||
if (ENOSPC == rc) {
|
||||
rc = PMIX_ERR_OUT_OF_RESOURCE;
|
||||
goto out;
|
||||
@@ -98,6 +101,7 @@ static int _mmap_segment_create(pmix_pshmem_seg_t *sm_
|
||||
goto map_memory;
|
||||
}
|
||||
#endif
|
||||
+ftruncate:
|
||||
if (0 != ftruncate(sm_seg->seg_id, size)) {
|
||||
pmix_output_verbose(2, pmix_globals.debug_output,
|
||||
"sys call ftruncate(2) fail\n");
|
|
@ -1,8 +1,12 @@
|
|||
Open MPI is a project combining technologies and resources from several
|
||||
other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to
|
||||
build the best MPI library available. A completely new MPI-2 compliant
|
||||
build the best MPI library available. A completely new MPI-3.1 compliant
|
||||
implementation, Open MPI offers advantages for system and software
|
||||
vendors, application developers and computer science researchers.
|
||||
|
||||
Open MPI is based on an open component architecture allowing modular
|
||||
replacement of many system components without recompilation.
|
||||
|
||||
On 32 bits platforms, please see the legacy version net/openmpi4.
|
||||
|
||||
See also <https://github.com/open-mpi/ompi>.
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue