Compare commits

..

4 commits

Author SHA1 Message Date
Orion Poplawski
763c280f76 Rebuild in side-tag 2025-08-12 07:23:12 -06:00
Orion Poplawski
9057815884 Disable ucx on ppx64le because it is broken - https://github.com/openucx/ucx/issues/10780 2025-08-02 17:33:05 -06:00
Orion Poplawski
26bf738df2 Drop old python2 support 2025-08-02 17:32:54 -06:00
Orion Poplawski
1c0666add8 Update to 5.0.8
Add upstream patch to fix s390x alignments
2025-08-02 17:32:40 -06:00
7 changed files with 70 additions and 86 deletions

2
.gitignore vendored
View file

@ -69,5 +69,3 @@ openmpi-1.4.1-RH.tar.bz2
/openmpi-5.0.5.tar.bz2
/openmpi-5.0.6.tar.bz2
/openmpi-5.0.8.tar.bz2
/openmpi-5.0.9.tar.bz2
/openmpi-5.0.10.tar.bz2

30
13281.patch Normal file
View file

@ -0,0 +1,30 @@
From d5c84ea4595ea1fbb5b213621e0966ebe0fd3cc9 Mon Sep 17 00:00:00 2001
From: Joseph Schuchart <joseph.schuchart@stonybrook.edu>
Date: Wed, 28 May 2025 10:11:58 -0400
Subject: [PATCH] Force alignment of opal_atomic_int128_t to be 16B
Some architectures will align 128bit integer on 8B but require 16B alignment
for 128bit CAS instructions and otherwise fall back to a lock-based
atomicity model. By forcing 16bit alignment we can ensure that the variables
are properly aligned and the fall-back is not triggered.
Thanks to Ulrich Weigand for the analysis and proposed fix in https://github.com/open-mpi/ompi/issues/10988#issuecomment-2913388506.
Signed-off-by: Joseph Schuchart <joseph.schuchart@stonybrook.edu>
---
opal/include/opal_stdatomic.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/opal/include/opal_stdatomic.h b/opal/include/opal_stdatomic.h
index 35437551208..f7dd8353d3b 100644
--- a/opal/include/opal_stdatomic.h
+++ b/opal/include/opal_stdatomic.h
@@ -72,7 +72,7 @@ typedef _Atomic opal_int128_t opal_atomic_int128_t;
# else
-typedef volatile opal_int128_t opal_atomic_int128_t;
+typedef volatile opal_int128_t opal_atomic_int128_t __opal_attribute_aligned__(16);
# endif

View file

@ -1,16 +0,0 @@
diff --git a/oshmem/mca/memheap/base/memheap_base_frame.c b/oshmem/mca/memheap/base/memheap_base_frame.c
index 53a71b27a9..82658e0979 100644
--- a/oshmem/mca/memheap/base/memheap_base_frame.c
+++ b/oshmem/mca/memheap/base/memheap_base_frame.c
@@ -33,9 +33,9 @@
int mca_memheap_base_output = -1;
int mca_memheap_base_key_exchange = 1;
-opal_list_t mca_memheap_base_components_opened = {{0}};
+opal_list_t mca_memheap_base_components_opened = {};
int mca_memheap_base_already_opened = 0;
-mca_memheap_map_t mca_memheap_base_map = {{{{0}}}};
+mca_memheap_map_t mca_memheap_base_map = {};
int mca_memheap_num_segments_warn = 32;
static int mca_memheap_base_register(mca_base_register_flag_t flags)

View file

@ -1,31 +0,0 @@
diff -ru openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4
--- openmpi-5.0.10/config/oac/oac_setup_sphinx.m4 2026-02-23 21:21:40.731399193 +0100
+++ openmpi-5.0.10-new/config/oac/oac_setup_sphinx.m4 2026-07-27 17:10:12.450825327 +0200
@@ -115,7 +115,7 @@
author = 'Testing'
import sphinx_rtd_theme
# Note the extra quoting needed for square brackets because this is m4
-extensions = [[ 'recommonmark', 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]]
+extensions = [[ 'sphinx_rtd_theme', 'sphinx.ext.extlinks' ]]
html_theme = 'sphinx_rtd_theme'
EOF
echo "Hello world" > index.rst
diff -ru openmpi-5.0.10/docs/conf.py openmpi-5.0.10-new/docs/conf.py
--- openmpi-5.0.10/docs/conf.py 2026-02-23 21:21:10.775279351 +0100
+++ openmpi-5.0.10-new/docs/conf.py 2026-07-27 17:10:34.017830912 +0200
@@ -174,7 +174,6 @@
# ones.
import sphinx_rtd_theme
extensions = [
- 'recommonmark',
"sphinx_rtd_theme",
"sphinx.ext.extlinks",
]
diff -ru openmpi-5.0.10/docs/requirements.txt openmpi-5.0.10-new/docs/requirements.txt
--- openmpi-5.0.10/docs/requirements.txt 2026-02-23 21:21:10.811279501 +0100
+++ openmpi-5.0.10-new/docs/requirements.txt 2026-07-27 17:10:43.482113314 +0200
@@ -1,4 +1,3 @@
sphinx>=4.2.0
-recommonmark
docutils
sphinx-rtd-theme

View file

@ -1,13 +0,0 @@
diff --git a/ompi/mca/part/persist/part_persist.h b/ompi/mca/part/persist/part_persist.h
index ccc8f8f197..86fb9bac42 100644
--- a/ompi/mca/part/persist/part_persist.h
+++ b/ompi/mca/part/persist/part_persist.h
@@ -490,7 +490,7 @@ mca_part_persist_psend_init(const void* buf,
return err;
}
-__opal_attribute_always_inline__ static inline int
+static inline int
mca_part_persist_start(size_t count, ompi_request_t** requests)
{
int err = OMPI_SUCCESS;

View file

@ -12,7 +12,13 @@
%bcond_with ucx
%endif
# ARM 32-bit is not supported by rdma
# https://bugzilla.redhat.com/show_bug.cgi?id=1780584
%ifarch %{arm}
%bcond_with rdma
%else
%bcond_without rdma
%endif
# No more Java on i686
%ifarch %{java_arches}
@ -43,22 +49,14 @@
%bcond_without pmix
# Run autogen - needed for some patches
%bcond autogen 1
%bcond autogen 0
Name: openmpi%{?_cc_name_suffix}
Version: 5.0.10
Version: 5.0.8
Release: %autorelease
Summary: Open Message Passing Interface
# Automatically converted from old format: BSD and MIT and Romio - review is highly recommended.
# main code is BSD-3-Clause-Open-MPI
# 3rd-party/romio341 is mpich2
# 3rd-party/treematch is BSD-3-Clause
# oshmem/mca/memheap/ptmalloc/malloc.c is LicenseRef-Fedora-Public-Domain
# opal/util/qsort.c is BSD-4-Clause-UC
# java/ (in subpackage) is Apache-2.0
# 3rd-party/openpmix/src/mca/psec/munge/psec_munge.c is LGPL-2.0-or-later
# doc/ see bellow in subpackage
License: BSD-3-Clause-Open-MPI AND mpich2 AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain AND BSD-4-Clause-UC
License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio
URL: http://www.open-mpi.org/
ExcludeArch: %{ix86}
@ -67,12 +65,8 @@ Source0: https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-%{
Source1: openmpi.module.in
Source3: openmpi.pth.py3
Source4: macros.openmpi
# Fix always inline failure - https://github.com/open-mpi/ompi/pull/13756
Patch: openmpi-inline.patch
# Fix brace initialization - https://github.com/open-mpi/ompi/pull/13758
Patch: openmpi-braces.patch
# Drop unused recommonmark - https://github.com/open-mpi/ompi/pull/14215
Patch: openmpi-drop-recommonmark.patch
Patch0: https://github.com/open-mpi/ompi/pull/13281.patch
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
@ -86,6 +80,7 @@ BuildRequires: perl(File::Find)
BuildRequires: valgrind-devel
%endif
%if %{with rdma}
BuildRequires: opensm-devel > 3.3.0
BuildRequires: rdma-core-devel
%endif
# Doesn't compile:
@ -93,14 +88,18 @@ BuildRequires: rdma-core-devel
# loop->getLoopHead()->getStartAddress(), loop_stmts );
#BuildRequires: dyninst-devel
BuildRequires: hwloc-devel
# So configure can find lstopo
BuildRequires: hwloc-gui
%if %{with java}
BuildRequires: java-25-devel
BuildRequires: java-devel
%else
Obsoletes: %{name}-java < %{version}-%{release}
Obsoletes: %{name}-java-devel < %{version}-%{release}
%endif
# Old libevent causes issues
%if !0%{?el7}
BuildRequires: libevent-devel
%endif
BuildRequires: libfabric-devel
%ifnarch s390x
BuildRequires: papi-devel
@ -114,6 +113,8 @@ BuildRequires: perl(Getopt::Long)
%if %{with pmix}
BuildRequires: pmix-devel >= 4.2.7
%endif
# For configure to find /usr/bin/prte
BuildRequires: prrte
BuildRequires: prrte-devel
BuildRequires: python%{python3_pkgversion}-devel
%if %{with psm2}
@ -123,14 +124,21 @@ BuildRequires: libpsm2-devel
BuildRequires: ucx-devel
%endif
BuildRequires: zlib-devel
%if !0%{?el7}
BuildRequires: rpm-mpi-hooks
%endif
%if %{with sphinx}
# For docs
BuildRequires: /usr/bin/sphinx-build
BuildRequires: python3-recommonmark
BuildRequires: python3-sphinx_rtd_theme
%endif
Provides: mpi
%if 0%{?rhel} == 7
# Need this for /etc/profile.d/modules.sh
Requires: environment-modules
%endif
Requires: environment(modules)
Requires: prrte
# openmpi currently requires ssh to run
@ -154,18 +162,19 @@ researchers. For more information, see http://www.open-mpi.org/ .
Summary: Development files for openmpi
Requires: %{name} = %{version}-%{release}, gcc-gfortran
Provides: mpi-devel
%if !0%{?el7}
Requires: rpm-mpi-hooks
# Make sure this package is rebuilt with correct Python version when updating
# Otherwise mpi.req from rpm-mpi-hooks doesn't work
# https://bugzilla.redhat.com/show_bug.cgi?id=1705296
Requires: (python(abi) = %{python3_version} if python3)
%endif
%description devel
Contains development headers and libraries for openmpi.
%package doc
Summary: HTML documentation for openmpi
License: BSD-3-Clause AND BSD-3-Clause-Open-MPI AND mpich2 AND MIT AND (MIT OR GPL-2.0-or-later) AND (OFL-1.1 AND MIT)
BuildArch: noarch
%description doc
@ -174,18 +183,16 @@ HTML documentation for openmpi.
%if %{with java}
%package java
Summary: Java library
License: Apache-2.0
Requires: %{name} = %{version}-%{release}
Requires: java-25-headless
Requires: java-headless
%description java
Java library.
%package java-devel
Summary: Java development files for openmpi
License: Apache-2.0
Requires: %{name}-java = %{version}-%{release}
Requires: java-25-devel
Requires: java-devel
%description java-devel
Contains development wrapper for compiling Java with openmpi.
@ -234,10 +241,12 @@ OpenMPI support for Python 3.
--enable-memchecker \
%endif
--with-hwloc=/usr \
%if !0%{?el7}
--with-libevent=external \
%if %{with pmix}
--with-pmix=external \
%endif
%endif
%make_build V=1
@ -303,6 +312,7 @@ make check || ( cat test/*/test-suite.log && exit $fail )
%dir %{_libdir}/%{name}/bin
%dir %{_libdir}/%{name}/lib
%dir %{_libdir}/%{name}/lib/openmpi
%dir %{_libdir}/%{name}/lib/openmpi/cmake
%dir %{_libdir}/%{name}/include
%dir %{_mandir}/%{namearch}
%dir %{_mandir}/%{namearch}/man*
@ -331,6 +341,9 @@ make check || ( cat test/*/test-suite.log && exit $fail )
%{_mandir}/%{namearch}/man7/Open-MPI.7*
%{_libdir}/%{name}/lib/*.so.40*
%{_libdir}/%{name}/lib/*.so.80*
%if 0%{?el7}
%{_libdir}/%{name}/lib/pmix/
%endif
%{_mandir}/%{namearch}/man1/mpirun.1*
%{_mandir}/%{namearch}/man1/mpisync.1*
%{_mandir}/%{namearch}/man1/ompi*
@ -343,6 +356,9 @@ make check || ( cat test/*/test-suite.log && exit $fail )
%dir %{_libdir}/%{name}/share/openmpi
%{_libdir}/%{name}/share/openmpi/amca-param-sets
%{_libdir}/%{name}/share/openmpi/help*.txt
%if 0%{?el7}
%{_libdir}/%{name}/share/pmix/
%endif
%files devel
%dir %{_includedir}/%{namearch}

View file

@ -1 +1 @@
SHA512 (openmpi-5.0.10.tar.bz2) = 24d29c2e88549e5a59f47dac0a2327db99644c59fd2991441d0ec23edb95aa7328fcd67bd44601ce9f11b0af90d36fddf82643e23f0f6e7c013c99f9bbd9738e
SHA512 (openmpi-5.0.8.tar.bz2) = de9128edaa1886f90f1452b8cee3c3962d7666beed96d7b95c601278c2debc7d7efecc9403792d428ce12131ce30416d6bc6bb657fb1a5490f53c6b6e369b080