diff --git a/net/openmpi4/Makefile b/net/openmpi4/Makefile index 984a90e8b3a8..072fcd88c251 100644 --- a/net/openmpi4/Makefile +++ b/net/openmpi4/Makefile @@ -1,121 +1,119 @@ PORTNAME= openmpi -PORTVERSION= 4.1.8 +DISTVERSION= 4.1.8 +PORTREVISION= 1 CATEGORIES= net parallel -MASTER_SITES= https://download.open-mpi.org/release/open-mpi/v${PORTVERSION:R}/ +MASTER_SITES= https://download.open-mpi.org/release/open-mpi/v${DISTVERSION:R}/ PKGNAMESUFFIX= 4 MAINTAINER= ports@FreeBSD.org COMMENT= High Performance Message Passing Library WWW= https://www.open-mpi.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 \ +LIB_DEPENDS= libhwloc.so:devel/hwloc2 \ libltdl.so:devel/libltdl \ libevent.so:devel/libevent \ libmunge.so:security/munge # :keepla because port uses lt_dlopen USES= fortran gmake libtool:keepla localbase perl5 \ pkgconfig shebangfix tar:bzip2 - -CONFLICTS_INSTALL= openmpi-5* - -USE_PERL5= build - MPIBASE?= mpi MPIDIR?= ${MPIBASE}/${PORTNAME} +USE_LDCONFIG= ${PREFIX}/${MPIDIR}/lib +USE_PERL5= build -PLIST_SUB+= MPIDIR=${MPIDIR} +SHEBANG_FILES= ompi/mca/common/monitoring/profile2mat.pl \ + ompi/mca/common/monitoring/aggregate_profile.pl GNU_CONFIGURE= yes -GNU_CONFIGURE_PREFIX= ${PREFIX}/${MPIDIR} GNU_CONFIGURE_MANPREFIX=${PREFIX}/${MPIDIR}/share +GNU_CONFIGURE_PREFIX= ${PREFIX}/${MPIDIR} CONFIGURE_ARGS+= --program-prefix= \ --with-hwloc=external \ --with-libltdl \ --without-ofi \ --enable-mpi-fortran=usempi \ --enable-mpi-cxx \ --enable-cxx-exceptions \ --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 -USE_LDCONFIG= ${PREFIX}/${MPIDIR}/lib +TEST_TARGET= check -MANDIRS= ${PREFIX}/${MPIDIR}/share/man +PIE_UNSAFE= yes -TEST_TARGET= check +CONFLICTS_INSTALL= openmpi-5* -SHEBANG_FILES= ompi/mca/common/monitoring/profile2mat.pl \ - ompi/mca/common/monitoring/aggregate_profile.pl +MANDIRS= ${PREFIX}/${MPIDIR}/share/man -PIE_UNSAFE= yes +PLIST_SUB+= MPIDIR=${MPIDIR} OPTIONS_DEFINE= AVX DEBUG IPV6 SLURM OPTIONS_DEFAULT= SLURM OPTIONS_EXCLUDE_aarch64= AVX OPTIONS_EXCLUDE_armv6= AVX SLURM OPTIONS_EXCLUDE_armv7= AVX SLURM OPTIONS_EXCLUDE_i386= SLURM OPTIONS_EXCLUDE_mips= AVX SLURM OPTIONS_EXCLUDE_mips64= AVX OPTIONS_EXCLUDE_powerpc= AVX SLURM OPTIONS_EXCLUDE_powerpc64= AVX OPTIONS_EXCLUDE_powerpc64le= AVX OPTIONS_EXCLUDE_riscv64= AVX OPTIONS_SUB= yes AVX_DESC= Enable AVX instructions SLURM_DESC= Enable SLURM support AVX_CONFIGURE_OFF= --enable-mca-no-build=op-avx DEBUG_CONFIGURE_ENABLE= debug DEBUG_INSTALL_TARGET_OFF= install-strip IPV6_CONFIGURE_ENABLE= ipv6 -SLURM_CONFIGURE_WITH= slurm SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm +SLURM_CONFIGURE_WITH= slurm 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 .if ${FORTRAN_DEFAULT} == gfortran && ${GCC_DEFAULT} >= 10 FCFLAGS+= -fallow-argument-mismatch .endif .if ${ARCH} != aarch64 && ${ARCH} != amd64 && ${ARCH} != i386 && !${ARCH:Mpowerpc*} PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE="@comment " .else PLIST_SUB+= NO_MCA_PATCHER_OVERWRITE="" .endif pre-configure: ${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 .include diff --git a/net/openmpi4/files/patch-ompi_mca_sharedfp_sm_sharedfp__sm.h b/net/openmpi4/files/patch-ompi_mca_sharedfp_sm_sharedfp__sm.h index 929884acd3bf..0508e78b6a96 100644 --- a/net/openmpi4/files/patch-ompi_mca_sharedfp_sm_sharedfp__sm.h +++ b/net/openmpi4/files/patch-ompi_mca_sharedfp_sm_sharedfp__sm.h @@ -1,10 +1,10 @@ ---- ompi/mca/sharedfp/sm/sharedfp_sm.h.orig 2022-04-01 19:57:04.609982000 +0200 -+++ ompi/mca/sharedfp/sm/sharedfp_sm.h 2022-04-01 19:57:19.417411000 +0200 +--- ompi/mca/sharedfp/sm/sharedfp_sm.h.orig 2025-02-04 17:12:40 UTC ++++ ompi/mca/sharedfp/sm/sharedfp_sm.h @@ -29,6 +29,7 @@ #include "ompi/mca/sharedfp/sharedfp.h" #include "ompi/mca/common/ompio/common_ompio.h" #include +#include BEGIN_C_DECLS diff --git a/net/openmpi4/files/patch-opal_mca_pmix_pmix3x_pmix_src_mca_pshmem_mmap_pshmem__mmap.c b/net/openmpi4/files/patch-opal_mca_pmix_pmix3x_pmix_src_mca_pshmem_mmap_pshmem__mmap.c index 2718655bf401..d4d2b02c1efe 100644 --- a/net/openmpi4/files/patch-opal_mca_pmix_pmix3x_pmix_src_mca_pshmem_mmap_pshmem__mmap.c +++ b/net/openmpi4/files/patch-opal_mca_pmix_pmix3x_pmix_src_mca_pshmem_mmap_pshmem__mmap.c @@ -1,20 +1,20 @@ ---- 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.orig 2025-02-04 17:12:41 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_ +@@ -65,6 +65,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_ +@@ -84,6 +87,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");