From f679d3e0afbc4b2c9f881eec8951405bcf2bf43b Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 25 Nov 2018 21:08:06 -0700 Subject: [PATCH 001/139] Update to 4.0.0 --- .gitignore | 1 + openmpi.spec | 22 ++++++++++++++++++---- sources | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 683340a..77e4735 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-2.1.5.tar.bz2 /openmpi-2.1.6rc1.tar.bz2 /openmpi-3.1.3.tar.bz2 +/openmpi-4.0.0.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 61617b7..1b5a73a 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -20,7 +20,7 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 3.1.3 +Version: 4.0.0 Release: 1%{?dist} Summary: Open Message Passing Interface Group: Development/Libraries @@ -28,7 +28,7 @@ License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -67,6 +67,9 @@ BuildRequires: infinipath-psm-devel BuildRequires: libpsm2-devel %endif BuildRequires: torque-devel +%ifarch aarch64 ppc64le x86_64 +BuildRequires: ucx-devel +%endif BuildRequires: zlib-devel BuildRequires: rpm-mpi-hooks @@ -245,20 +248,22 @@ make check %{_libdir}/%{name}/bin/mpi[er]* %{_libdir}/%{name}/bin/ompi* %{_libdir}/%{name}/bin/orte[-dr_]* +%ifarch aarch64 ppc64le x86_64 %{_libdir}/%{name}/bin/oshmem_info %{_libdir}/%{name}/bin/oshrun -%{_libdir}/%{name}/bin/prun %{_libdir}/%{name}/bin/shmemrun +%endif %{_libdir}/%{name}/lib/*.so.40* %{_libdir}/%{name}/lib/libmca*.so.41* %{_libdir}/%{name}/lib/libmca*.so.50* %{_mandir}/%{namearch}/man1/mpi[er]* %{_mandir}/%{namearch}/man1/ompi* %{_mandir}/%{namearch}/man1/orte[-dr_]* +%ifarch aarch64 ppc64le x86_64 %{_mandir}/%{namearch}/man1/oshmem_info* %{_mandir}/%{namearch}/man1/oshrun* -%{_mandir}/%{namearch}/man1/prun* %{_mandir}/%{namearch}/man1/shmemrun* +%endif %{_mandir}/%{namearch}/man7/ompi_* %{_mandir}/%{namearch}/man7/opal_* %{_mandir}/%{namearch}/man7/orte* @@ -278,9 +283,13 @@ make check %{_libdir}/%{name}/bin/mpi[cCf]* %{_libdir}/%{name}/bin/opal_* %{_libdir}/%{name}/bin/orte[cCf]* +%ifarch aarch64 ppc64le x86_64 %{_libdir}/%{name}/bin/osh[cCf]* +%endif %{_libdir}/%{name}/bin/profile2mat.pl +%ifarch aarch64 ppc64le x86_64 %{_libdir}/%{name}/bin/shmem[cCf]* +%endif %{_includedir}/%{namearch}/* %{_fmoddir}/%{name}/ %{_libdir}/%{name}/lib/*.so @@ -288,8 +297,10 @@ make check %{_libdir}/%{name}/lib/pkgconfig/ %{_libdir}/pkgconfig/*.pc %{_mandir}/%{namearch}/man1/mpi[cCf]* +%ifarch aarch64 ppc64le x86_64 %{_mandir}/%{namearch}/man1/osh[cCf]* %{_mandir}/%{namearch}/man1/shmem[cCf]* +%endif %{_mandir}/%{namearch}/man1/opal_* %{_mandir}/%{namearch}/man3/* %{_libdir}/%{name}/share/openmpi/openmpi-valgrind.supp @@ -316,6 +327,9 @@ make check %changelog +* Sat Dec 15 2018 Orion Poplawski - 4.0.0-1 +- Update to 4.0.0 + * Sat Dec 15 2018 Orion Poplawski - 3.1.3-1 - Update to 3.1.3 - Drop ppc64le patch fixed upstream diff --git a/sources b/sources index edcaaa5..a93c23c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-3.1.3.tar.bz2) = 700821df676de5f85ce2793298242dcaea73f585f89540e30999792a568f193545a9f9b2bcb3ea22effa3bf14744531c4eb5fc4c84a8d7bbe5e5fdd76ab3a04a +SHA512 (openmpi-4.0.0.tar.bz2) = 978097dcbb16df2a616dcbbef9536fed0f7be40914daa8f927882d91bdda9265e54334fc12aeef49b41073d8782321b5611a7e9c71182258a45bca5f640e927b From a1fb0a6ce855ca1dd23c63816df2ab2cd855d6fd Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 4 Feb 2019 21:41:00 -0700 Subject: [PATCH 002/139] mca-btl-openib-device-params.ini is now installed on arm32 --- openmpi.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 1b5a73a..b4274fc 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -273,7 +273,7 @@ make check %dir %{_libdir}/%{name}/share/openmpi %{_libdir}/%{name}/share/openmpi/amca-param-sets %{_libdir}/%{name}/share/openmpi/help*.txt -%ifnarch s390 %{arm} +%ifnarch s390 %{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini %endif From 1ba31991a3bb740c78cc8a377a2452ba83349c1c Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 30 Mar 2019 19:35:27 -0600 Subject: [PATCH 003/139] Update to 4.0.1 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5bdb48c..e5ef2bc 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-2.1.6.tar.bz2 /openmpi-3.1.3.tar.bz2 /openmpi-4.0.0.tar.bz2 +/openmpi-4.0.1.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index e544f44..a3e274c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -20,8 +20,8 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 4.0.0 -Release: 2%{?dist} +Version: 4.0.1 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -332,6 +332,9 @@ make check %changelog +* Sat Mar 30 2019 Orion Poplawski - 4.0.1-1 +- Update to 4.0.1 + * Sun Mar 10 2019 Orion Poplawski - 4.0.0-2 - Enable valgrind on s390x - Cleanup arch conditionals diff --git a/sources b/sources index a93c23c..047b1ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.0.tar.bz2) = 978097dcbb16df2a616dcbbef9536fed0f7be40914daa8f927882d91bdda9265e54334fc12aeef49b41073d8782321b5611a7e9c71182258a45bca5f640e927b +SHA512 (openmpi-4.0.1.tar.bz2) = 09f35dc2e44b4f84aab9c5af9d81f90bbdb030e4d90800a5d3ffae88cb32b7faecc9bea0abb113da53c21f73e9d19db68f961f997bc47bdd28d83a87beee0731 From d1b7aac1de3d153c40cc84f2d6c5b97e012d3914 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 30 Mar 2019 20:28:43 -0600 Subject: [PATCH 004/139] Update to 4.0.1 --- sources | 1 - 1 file changed, 1 deletion(-) delete mode 100644 sources diff --git a/sources b/sources deleted file mode 100644 index 047b1ea..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (openmpi-4.0.1.tar.bz2) = 09f35dc2e44b4f84aab9c5af9d81f90bbdb030e4d90800a5d3ffae88cb32b7faecc9bea0abb113da53c21f73e9d19db68f961f997bc47bdd28d83a87beee0731 From b27bff5713a713b3be52893573b517adc29b7a03 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 31 Mar 2019 10:27:56 -0600 Subject: [PATCH 005/139] Upload sources --- sources | 1 + 1 file changed, 1 insertion(+) create mode 100644 sources diff --git a/sources b/sources new file mode 100644 index 0000000..047b1ea --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (openmpi-4.0.1.tar.bz2) = 09f35dc2e44b4f84aab9c5af9d81f90bbdb030e4d90800a5d3ffae88cb32b7faecc9bea0abb113da53c21f73e9d19db68f961f997bc47bdd28d83a87beee0731 From d3998d784cadfb4d7cad84b7a56b34e65f9e1c2a Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 7 May 2019 19:59:53 -0600 Subject: [PATCH 006/139] Drop old --enable-mpi-thread-multiple option --- openmpi.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 41a0c25..6771ecb 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -159,7 +159,6 @@ OpenMPI support for Python 3. --sysconfdir=%{_sysconfdir}/%{namearch} \ --disable-silent-rules \ --enable-builtin-atomics \ - --enable-mpi-thread-multiple \ %ifnarch %{power64} --enable-mpi-cxx \ %endif From 0983e4dd5521acb1bfc339984b65a35b4b41f928 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 7 May 2019 20:22:54 -0600 Subject: [PATCH 007/139] Add a guard for python3 version (#1705296) Add requires on python(abi) to python packages --- openmpi.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 6771ecb..3541dd7 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,7 +21,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -105,6 +105,10 @@ 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 @@ -137,6 +141,7 @@ Contains development wrapper for compiling Java with openmpi. %package -n python2-openmpi Summary: OpenMPI support for Python 2 Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python2_version} %description -n python2-openmpi OpenMPI support for Python 2. @@ -144,6 +149,7 @@ OpenMPI support for Python 2. %package -n python%{python3_pkgversion}-openmpi Summary: OpenMPI support for Python 3 Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python3_version} %description -n python%{python3_pkgversion}-openmpi OpenMPI support for Python 3. @@ -331,6 +337,10 @@ make check %changelog +* Tue May 7 2019 Orion Poplawski - 4.0.1-2 +- Add a guard for python3 version (#1705296) +- Add requires on python(abi) to python packages + * Sun Apr 28 2019 Orion Poplawski - 4.0.1-1 - Update to 4.0.1 @@ -779,7 +789,7 @@ make check - Update to fix licencing and packaging issues: Use the system plpa and ltdl librarires rather than the ones in the tarball Remove licence incompatible files from the tarball. -- update module.in to prepend-path PYTHONPATH +- update module.in to prepend-path PYTHONPATH * Tue Mar 9 2010 Jay Fenlason - 1.4.1-3 - remove the pkgconfig file completely like we did in RHEL. From d91ddbc6579d50fb35c867b8eb1ef8ec83505740 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 15 May 2019 20:29:09 -0600 Subject: [PATCH 008/139] Add upstream patch to fix issue with UCX usage in BTL/UCT --- 6668.patch | 34 ++++++++++++++++++++++++++++++++++ openmpi.spec | 9 +++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 6668.patch diff --git a/6668.patch b/6668.patch new file mode 100644 index 0000000..0d6fcbc --- /dev/null +++ b/6668.patch @@ -0,0 +1,34 @@ +From c6ba949f3a0618e26ce2ef53b052b3d38cbbd0d8 Mon Sep 17 00:00:00 2001 +From: Nathan Hjelm +Date: Wed, 15 May 2019 12:24:22 -0600 +Subject: [PATCH] btl/uct: check for support before disabling UCX memory hooks + +Signed-off-by: Nathan Hjelm +--- + opal/mca/btl/uct/btl_uct_component.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/opal/mca/btl/uct/btl_uct_component.c b/opal/mca/btl/uct/btl_uct_component.c +index 971b31a1d85..830c262325d 100644 +--- a/opal/mca/btl/uct/btl_uct_component.c ++++ b/opal/mca/btl/uct/btl_uct_component.c +@@ -17,6 +17,7 @@ + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. + * Copyright (c) 2018 Triad National Security, LLC. All rights + * reserved. ++ * Copyright (c) 2019 Google, LLC. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow +@@ -129,7 +130,10 @@ static int mca_btl_uct_component_open(void) + mca_btl_uct_component.num_contexts_per_module = MCA_BTL_UCT_MAX_WORKERS; + } + +- if (mca_btl_uct_component.disable_ucx_memory_hooks) { ++ if (mca_btl_uct_component.disable_ucx_memory_hooks && ++ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) == ++ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) & ++ opal_mem_hooks_support_level()))) { + ucm_set_external_event(UCM_EVENT_VM_UNMAPPED); + opal_mem_hooks_register_release(mca_btl_uct_mem_release_cb, NULL); + } diff --git a/openmpi.spec b/openmpi.spec index 3541dd7..6ba71f1 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,7 +21,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -32,6 +32,8 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +# Fix for UCX usage with BTL/UCT +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6668.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -156,7 +158,7 @@ OpenMPI support for Python 3. %prep -%setup -q -n openmpi-%{version} +%autosetup -p1 -n openmpi-%{version} %build ./configure --prefix=%{_libdir}/%{name} \ @@ -337,6 +339,9 @@ make check %changelog +* Wed May 15 2019 Orion Poplawski - 4.0.1-3 +- Add upstream patch to fix issue with UCX usage in BTL/UCT + * Tue May 7 2019 Orion Poplawski - 4.0.1-2 - Add a guard for python3 version (#1705296) - Add requires on python(abi) to python packages From 7ef7dc2bf928f63d5e3f2a65e2cfbb80560da8cf Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 15 May 2019 22:21:03 -0600 Subject: [PATCH 009/139] Add upstream patch OSC/UCX: use correct rkey for atomic_fadd in rget/rput --- 6594.patch | 32 ++++++++++++++++++++++++++++++++ openmpi.spec | 7 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 6594.patch diff --git a/6594.patch b/6594.patch new file mode 100644 index 0000000..3c9e5ba --- /dev/null +++ b/6594.patch @@ -0,0 +1,32 @@ +From 68c88e86f2c8ff515a4c54927077143de13516b9 Mon Sep 17 00:00:00 2001 +From: Valentin Petrov +Date: Tue, 16 Apr 2019 14:04:11 +0300 +Subject: [PATCH] OSC/UCX: use correct rkey for atomic_fadd in rget/rput + +Signed-off-by: Valentin Petrov +--- + ompi/mca/osc/ucx/osc_ucx_comm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ompi/mca/osc/ucx/osc_ucx_comm.c b/ompi/mca/osc/ucx/osc_ucx_comm.c +index ec760d4fda3..bc3b7f5e7ed 100644 +--- a/ompi/mca/osc/ucx/osc_ucx_comm.c ++++ b/ompi/mca/osc/ucx/osc_ucx_comm.c +@@ -881,7 +881,7 @@ int ompi_osc_ucx_rput(const void *origin_addr, int origin_count, + + CHECK_VALID_RKEY(module, target, target_count); + +- rkey = (module->win_info_array[target]).rkey; ++ rkey = (module->state_info_array[target]).rkey; + + OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req); + assert(NULL != ucx_req); +@@ -942,7 +942,7 @@ int ompi_osc_ucx_rget(void *origin_addr, int origin_count, + + CHECK_VALID_RKEY(module, target, target_count); + +- rkey = (module->win_info_array[target]).rkey; ++ rkey = (module->state_info_array[target]).rkey; + + OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req); + assert(NULL != ucx_req); diff --git a/openmpi.spec b/openmpi.spec index 6ba71f1..3335d86 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,7 +21,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -34,6 +34,8 @@ Source3: openmpi.pth.py3 Source4: macros.openmpi # Fix for UCX usage with BTL/UCT Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6668.patch +# OSC/UCX: use correct rkey for atomic_fadd in rget/rput +Patch1: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6594.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -339,6 +341,9 @@ make check %changelog +* Wed May 15 2019 Orion Poplawski - 4.0.1-4 +- Add upstream patch OSC/UCX: use correct rkey for atomic_fadd in rget/rput + * Wed May 15 2019 Orion Poplawski - 4.0.1-3 - Add upstream patch to fix issue with UCX usage in BTL/UCT From fd6b4d86790095c40eb8ce0c13addc67e0d2c7ec Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 27 May 2019 07:46:18 -0600 Subject: [PATCH 010/139] Drop UCX support for now --- openmpi.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 3335d86..328504c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,7 +21,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -72,9 +72,10 @@ BuildRequires: infinipath-psm-devel BuildRequires: libpsm2-devel %endif BuildRequires: torque-devel -%ifarch aarch64 ppc64le x86_64 -BuildRequires: ucx-devel -%endif +# UCX appears to be leading to a segfault +#ifarch aarch64 ppc64le x86_64 +#BuildRequires: ucx-devel +#endif BuildRequires: zlib-devel %if !0%{?el7} BuildRequires: rpm-mpi-hooks @@ -341,6 +342,9 @@ make check %changelog +* Mon May 27 2019 Orion Poplawski - 4.0.1-5 +- Drop UCX support for now + * Wed May 15 2019 Orion Poplawski - 4.0.1-4 - Add upstream patch OSC/UCX: use correct rkey for atomic_fadd in rget/rput From f7e1092b143f9f5e5eb7bb78b0daf489386c0bcd Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 28 May 2019 19:18:07 -0600 Subject: [PATCH 011/139] Create with ucx conditional --- openmpi.spec | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 328504c..e9feba3 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -19,6 +19,13 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) +# UCX appears to be leading to a segfault +#ifarch aarch64 ppc64le x86_64 +#bcond_without ucx +#else +%bcond_with ucx +#endif + Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 Release: 5%{?dist} @@ -72,10 +79,9 @@ BuildRequires: infinipath-psm-devel BuildRequires: libpsm2-devel %endif BuildRequires: torque-devel -# UCX appears to be leading to a segfault -#ifarch aarch64 ppc64le x86_64 -#BuildRequires: ucx-devel -#endif +%if %{with ucx} +BuildRequires: ucx-devel +%endif BuildRequires: zlib-devel %if !0%{?el7} BuildRequires: rpm-mpi-hooks @@ -259,7 +265,7 @@ make check %{_libdir}/%{name}/bin/mpi[er]* %{_libdir}/%{name}/bin/ompi* %{_libdir}/%{name}/bin/orte[-dr_]* -%ifarch aarch64 ppc64le x86_64 +%if %{with ucx} %{_libdir}/%{name}/bin/oshmem_info %{_libdir}/%{name}/bin/oshrun %{_libdir}/%{name}/bin/shmemrun @@ -273,7 +279,7 @@ make check %{_mandir}/%{namearch}/man1/mpi[er]* %{_mandir}/%{namearch}/man1/ompi* %{_mandir}/%{namearch}/man1/orte[-dr_]* -%ifarch aarch64 ppc64le x86_64 +%if %{with ucx} %{_mandir}/%{namearch}/man1/oshmem_info* %{_mandir}/%{namearch}/man1/oshrun* %{_mandir}/%{namearch}/man1/shmemrun* @@ -298,11 +304,11 @@ make check %{_libdir}/%{name}/bin/mpi[cCf]* %{_libdir}/%{name}/bin/opal_* %{_libdir}/%{name}/bin/orte[cCf]* -%ifarch aarch64 ppc64le x86_64 +%if %{with ucx} %{_libdir}/%{name}/bin/osh[cCf]* %endif %{_libdir}/%{name}/bin/profile2mat.pl -%ifarch aarch64 ppc64le x86_64 +%if %{with ucx} %{_libdir}/%{name}/bin/shmem[cCf]* %endif %{_includedir}/%{namearch}/* @@ -312,7 +318,7 @@ make check %{_libdir}/%{name}/lib/pkgconfig/ %{_libdir}/pkgconfig/*.pc %{_mandir}/%{namearch}/man1/mpi[cCf]* -%ifarch aarch64 ppc64le x86_64 +%if %{with ucx} %{_mandir}/%{namearch}/man1/osh[cCf]* %{_mandir}/%{namearch}/man1/shmem[cCf]* %endif From d5202bd7e9823affef7f7c4860fe10a93becb4f0 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 20 Jun 2019 22:27:49 -0600 Subject: [PATCH 012/139] Rebuild for libfabric 1.8 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index e9feba3..26c4f89 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -28,7 +28,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -348,6 +348,9 @@ make check %changelog +* Fri Jun 21 2019 Orion Poplawski - 4.0.1-6 +- Rebuild for libfabric 1.8 + * Mon May 27 2019 Orion Poplawski - 4.0.1-5 - Drop UCX support for now From ef35fd3f1b4c5233ca97af2bb7088bdd4cfd32e0 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 20 Jun 2019 22:32:52 -0600 Subject: [PATCH 013/139] Re-enable UCX support, issue hopefully fixed in 1.5.2 --- openmpi.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 26c4f89..db3c5ec 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -19,12 +19,11 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) -# UCX appears to be leading to a segfault -#ifarch aarch64 ppc64le x86_64 -#bcond_without ucx -#else +%ifarch aarch64 ppc64le x86_64 +%bcond_without ucx +%else %bcond_with ucx -#endif +%endif Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 @@ -350,6 +349,7 @@ make check %changelog * Fri Jun 21 2019 Orion Poplawski - 4.0.1-6 - Rebuild for libfabric 1.8 +- Re-enable UCX, hopefully issue fixed in 1.5.2 * Mon May 27 2019 Orion Poplawski - 4.0.1-5 - Drop UCX support for now From 86f4b25695c4afe7633ca9239d9b2fd6c73b59ae Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 25 Jul 2019 23:30:19 +0000 Subject: [PATCH 014/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index db3c5ec..a1ed621 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -347,6 +347,9 @@ make check %changelog +* Thu Jul 25 2019 Fedora Release Engineering - 4.0.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Fri Jun 21 2019 Orion Poplawski - 4.0.1-6 - Rebuild for libfabric 1.8 - Re-enable UCX, hopefully issue fixed in 1.5.2 From b5ec0b294fdc229a9a54feb9975ba2c187359d69 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Fri, 9 Aug 2019 01:40:59 -0400 Subject: [PATCH 015/139] Remove torque support (torque retired: bug #1676147) --- openmpi.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index a1ed621..37924bd 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -77,7 +77,6 @@ BuildRequires: python%{python3_pkgversion}-devel BuildRequires: infinipath-psm-devel BuildRequires: libpsm2-devel %endif -BuildRequires: torque-devel %if %{with ucx} BuildRequires: ucx-devel %endif @@ -347,6 +346,9 @@ make check %changelog +* Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 +- Remove torque support (torque retired: bug #1676147) + * Thu Jul 25 2019 Fedora Release Engineering - 4.0.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 7d5556a503774957e8698b9db68f3796cf7b394d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 19 Aug 2019 00:13:00 +0200 Subject: [PATCH 016/139] Rebuilt for Python 3.8 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 37924bd..dc98079 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -346,6 +346,9 @@ make check %changelog +* Sun Aug 18 2019 Miro Hrončok - 4.0.1-9 +- Rebuilt for Python 3.8 + * Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 - Remove torque support (torque retired: bug #1676147) From 184e65743f4e66e85252d1e4dabea58d4118b785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 7 May 2019 10:23:38 +0200 Subject: [PATCH 017/139] Fix warning about macro expanded in comment --- openmpi.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index dc98079..82c4dd7 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -32,7 +32,7 @@ Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ -# We can't use %{name} here because of _cc_name_suffix +# We can't use %%{name} here because of _cc_name_suffix Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 From 2ba690820ba7629ffeda5639725c91ceae63bfa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 25 Aug 2019 12:51:14 +0200 Subject: [PATCH 018/139] Rebuilt for hwloc-2.0 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 82c4dd7..b316385 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -346,6 +346,9 @@ make check %changelog +* Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-10 +- Rebuilt for hwloc-2.0 + * Sun Aug 18 2019 Miro Hrončok - 4.0.1-9 - Rebuilt for Python 3.8 From 1d457c8c91640225b6c792bf2a080a2d8f286e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 29 Aug 2019 10:11:35 +0200 Subject: [PATCH 019/139] Fix MANPATH so normal modules can still be loaded --- openmpi.module.in | 2 +- openmpi.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/openmpi.module.in b/openmpi.module.in index 7e96154..41583c4 100644 --- a/openmpi.module.in +++ b/openmpi.module.in @@ -6,7 +6,7 @@ conflict mpi prepend-path PATH @LIBDIR@/bin prepend-path LD_LIBRARY_PATH @LIBDIR@/lib prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig -prepend-path MANPATH @MANDIR@ +prepend-path MANPATH :@MANDIR@ setenv MPI_BIN @LIBDIR@/bin setenv MPI_SYSCONFIG @ETCDIR@ setenv MPI_FORTRAN_MOD_DIR @FMODDIR@ diff --git a/openmpi.spec b/openmpi.spec index b316385..b1b212c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.1 -Release: 10%{?dist} +Release: 11%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -346,6 +346,9 @@ make check %changelog +* Thu Aug 29 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-11 +- Fix MANPATH so normal modules can still be loaded (#1564899) + * Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-10 - Rebuilt for hwloc-2.0 From 9d271f4752df5e1ef887c27577c7c382c4b98442 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Thu, 29 Aug 2019 17:10:13 -0400 Subject: [PATCH 020/139] Update to 4.0.2rc1 Closes bug #1746564 --- .gitignore | 1 + 6594.patch | 32 -------------------------------- 6668.patch | 34 ---------------------------------- openmpi.spec | 16 ++++++++-------- sources | 2 +- 5 files changed, 10 insertions(+), 75 deletions(-) delete mode 100644 6594.patch delete mode 100644 6668.patch diff --git a/.gitignore b/.gitignore index 3aa8772..efefb4e 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-3.1.4.tar.bz2 /openmpi-4.0.0.tar.bz2 /openmpi-4.0.1.tar.bz2 +/openmpi-4.0.2rc1.tar.bz2 diff --git a/6594.patch b/6594.patch deleted file mode 100644 index 3c9e5ba..0000000 --- a/6594.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 68c88e86f2c8ff515a4c54927077143de13516b9 Mon Sep 17 00:00:00 2001 -From: Valentin Petrov -Date: Tue, 16 Apr 2019 14:04:11 +0300 -Subject: [PATCH] OSC/UCX: use correct rkey for atomic_fadd in rget/rput - -Signed-off-by: Valentin Petrov ---- - ompi/mca/osc/ucx/osc_ucx_comm.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ompi/mca/osc/ucx/osc_ucx_comm.c b/ompi/mca/osc/ucx/osc_ucx_comm.c -index ec760d4fda3..bc3b7f5e7ed 100644 ---- a/ompi/mca/osc/ucx/osc_ucx_comm.c -+++ b/ompi/mca/osc/ucx/osc_ucx_comm.c -@@ -881,7 +881,7 @@ int ompi_osc_ucx_rput(const void *origin_addr, int origin_count, - - CHECK_VALID_RKEY(module, target, target_count); - -- rkey = (module->win_info_array[target]).rkey; -+ rkey = (module->state_info_array[target]).rkey; - - OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req); - assert(NULL != ucx_req); -@@ -942,7 +942,7 @@ int ompi_osc_ucx_rget(void *origin_addr, int origin_count, - - CHECK_VALID_RKEY(module, target, target_count); - -- rkey = (module->win_info_array[target]).rkey; -+ rkey = (module->state_info_array[target]).rkey; - - OMPI_OSC_UCX_REQUEST_ALLOC(win, ucx_req); - assert(NULL != ucx_req); diff --git a/6668.patch b/6668.patch deleted file mode 100644 index 0d6fcbc..0000000 --- a/6668.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c6ba949f3a0618e26ce2ef53b052b3d38cbbd0d8 Mon Sep 17 00:00:00 2001 -From: Nathan Hjelm -Date: Wed, 15 May 2019 12:24:22 -0600 -Subject: [PATCH] btl/uct: check for support before disabling UCX memory hooks - -Signed-off-by: Nathan Hjelm ---- - opal/mca/btl/uct/btl_uct_component.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/opal/mca/btl/uct/btl_uct_component.c b/opal/mca/btl/uct/btl_uct_component.c -index 971b31a1d85..830c262325d 100644 ---- a/opal/mca/btl/uct/btl_uct_component.c -+++ b/opal/mca/btl/uct/btl_uct_component.c -@@ -17,6 +17,7 @@ - * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. - * Copyright (c) 2018 Triad National Security, LLC. All rights - * reserved. -+ * Copyright (c) 2019 Google, LLC. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow -@@ -129,7 +130,10 @@ static int mca_btl_uct_component_open(void) - mca_btl_uct_component.num_contexts_per_module = MCA_BTL_UCT_MAX_WORKERS; - } - -- if (mca_btl_uct_component.disable_ucx_memory_hooks) { -+ if (mca_btl_uct_component.disable_ucx_memory_hooks && -+ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) == -+ ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) & -+ opal_mem_hooks_support_level()))) { - ucm_set_external_event(UCM_EVENT_VM_UNMAPPED); - opal_mem_hooks_register_release(mca_btl_uct_mem_release_cb, NULL); - } diff --git a/openmpi.spec b/openmpi.spec index b1b212c..6502202 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -26,22 +26,18 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.1 -Release: 11%{?dist} +Version: 4.0.2 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc1.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Fix for UCX usage with BTL/UCT -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6668.patch -# OSC/UCX: use correct rkey for atomic_fadd in rget/rput -Patch1: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6594.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -165,7 +161,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version} +%autosetup -p1 -n openmpi-%{version}rc1 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -346,6 +342,10 @@ make check %changelog +* Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 +- Update to 4.0.2rc1 +- Closes bug #1746564 + * Thu Aug 29 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-11 - Fix MANPATH so normal modules can still be loaded (#1564899) diff --git a/sources b/sources index 047b1ea..696ee63 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.1.tar.bz2) = 09f35dc2e44b4f84aab9c5af9d81f90bbdb030e4d90800a5d3ffae88cb32b7faecc9bea0abb113da53c21f73e9d19db68f961f997bc47bdd28d83a87beee0731 +SHA512 (openmpi-4.0.2rc1.tar.bz2) = 7009b9b9a2ef398195e95735d907171091a13f6287d3290862465720249eac1815d9152f1804adc8ec8129ad858536f759521d392fac8c1e495928e6634372b6 From 7231dd36d020c9290e5758d0abe9b7c984db48ad Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Thu, 29 Aug 2019 23:12:32 -0400 Subject: [PATCH 021/139] Temp hack for F32 aarch64 until they fix gcc PIC flags --- openmpi.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openmpi.spec b/openmpi.spec index 6502202..da5c4ca 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -6,7 +6,12 @@ # so uncomment and define to use #global opt_cflags %global opt_cxx g++ +%ifarch aarch64 +# TEMP: hack for F32 aarch64 until they fix gcc PIC flags +%global opt_cxxflags -fPIC +%else #global opt_cxxflags +%endif %global opt_f77 gfortran #global opt_fflags %global opt_fc gfortran From 04d88995828e555f45a75dc58668927ffe05bd4b Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Fri, 30 Aug 2019 16:40:36 -0400 Subject: [PATCH 022/139] Apply upstream PR 6946 to avoid linking private glibc symbol __mmap Add build deps to run upstream autogen.pl Remove embedded tabs in the spec --- 6946.patch | 46 ++++++++++++++++++++ openmpi.spec | 116 ++++++++++++++++++++++++++++----------------------- 2 files changed, 110 insertions(+), 52 deletions(-) create mode 100644 6946.patch diff --git a/6946.patch b/6946.patch new file mode 100644 index 0000000..f40430d --- /dev/null +++ b/6946.patch @@ -0,0 +1,46 @@ +From fbbacc1303f02b4c955975911b82e8755ea0721c Mon Sep 17 00:00:00 2001 +From: Harumi Kuno +Date: Tue, 30 Jul 2019 06:32:27 -0700 +Subject: [PATCH] Fix mmap infinite recurse in memory patcher + +This commit fixes issue #6853 by removing +MacOS/Darwin-specific logic from intercept_mmap. + +Signed-off-by: Harumi Kuno +--- + opal/mca/memory/patcher/configure.m4 | 4 ---- + opal/mca/memory/patcher/memory_patcher_component.c | 5 ----- + 2 files changed, 9 deletions(-) + +diff --git a/opal/mca/memory/patcher/configure.m4 b/opal/mca/memory/patcher/configure.m4 +index 6881ec69366..0c5d8553259 100644 +--- a/opal/mca/memory/patcher/configure.m4 ++++ b/opal/mca/memory/patcher/configure.m4 +@@ -40,10 +40,6 @@ AC_DEFUN([MCA_opal_memory_patcher_CONFIG],[ + + AC_CHECK_HEADERS([linux/mman.h sys/syscall.h]) + +- AC_CHECK_DECLS([__mmap], [], [], [#include ]) +- +- AC_CHECK_FUNCS([__mmap]) +- + AC_CHECK_DECLS([__syscall], [], [], [#include ]) + + AC_CHECK_FUNCS([__syscall]) +diff --git a/opal/mca/memory/patcher/memory_patcher_component.c b/opal/mca/memory/patcher/memory_patcher_component.c +index 5db3a6016f8..687d430fa36 100644 +--- a/opal/mca/memory/patcher/memory_patcher_component.c ++++ b/opal/mca/memory/patcher/memory_patcher_component.c +@@ -125,12 +125,7 @@ static void *_intercept_mmap(void *start, size_t length, int prot, int flags, in + } + + if (!original_mmap) { +-#ifdef HAVE___MMAP +- /* the darwin syscall returns an int not a long so call the underlying __mmap function */ +- result = __mmap (start, length, prot, flags, fd, offset); +-#else + result = (void*)(intptr_t) memory_patcher_syscall(SYS_mmap, start, length, prot, flags, fd, offset); +-#endif + } else { + result = original_mmap (start, length, prot, flags, fd, offset); + } diff --git a/openmpi.spec b/openmpi.spec index da5c4ca..9a01566 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,71 +30,77 @@ %bcond_with ucx %endif -Name: openmpi%{?_cc_name_suffix} -Version: 4.0.2 -Release: 0.1.rc1%{?dist} -Summary: Open Message Passing Interface -License: BSD and MIT and Romio -URL: http://www.open-mpi.org/ +Name: openmpi%{?_cc_name_suffix} +Version: 4.0.2 +Release: 0.2.rc1%{?dist} +Summary: Open Message Passing Interface +License: BSD and MIT and Romio +URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc1.tar.bz2 -Source1: openmpi.module.in -Source2: openmpi.pth.py2 -Source3: openmpi.pth.py3 -Source4: macros.openmpi +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc1.tar.bz2 +Source1: openmpi.module.in +Source2: openmpi.pth.py2 +Source3: openmpi.pth.py3 +Source4: macros.openmpi +# Upstream PR 6946 to avoid linking private glibc symbol __mmap +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6946.patch -BuildRequires: gcc-c++ -BuildRequires: gcc-gfortran -BuildRequires: valgrind-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: gcc-gfortran +BuildRequires: libtool +BuildRequires: valgrind-devel %ifnarch %{arm} -BuildRequires: opensm-devel > 3.3.0 +BuildRequires: opensm-devel > 3.3.0 %endif -BuildRequires: rdma-core-devel +BuildRequires: rdma-core-devel # Doesn't compile: # vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead' # loop->getLoopHead()->getStartAddress(), loop_stmts ); -#BuildRequires: dyninst-devel -BuildRequires: hwloc-devel +#BuildRequires: dyninst-devel +BuildRequires: hwloc-devel # So configure can find lstopo -BuildRequires: hwloc-gui -BuildRequires: java-devel +BuildRequires: hwloc-gui +BuildRequires: java-devel # Old libevent causes issues %if !0%{?el7} -BuildRequires: libevent-devel +BuildRequires: libevent-devel %endif -BuildRequires: libfabric-devel +BuildRequires: libfabric-devel %ifnarch s390 s390x -BuildRequires: papi-devel +BuildRequires: papi-devel %endif -BuildRequires: orangefs-devel -BuildRequires: perl-generators -BuildRequires: perl(Getopt::Long) -BuildRequires: pmix-devel -BuildRequires: python2 -BuildRequires: python2-devel -BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: orangefs-devel +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Getopt::Long) +BuildRequires: pmix-devel +BuildRequires: python2 +BuildRequires: python2-devel +BuildRequires: python%{python3_pkgversion}-devel %ifarch x86_64 -BuildRequires: infinipath-psm-devel -BuildRequires: libpsm2-devel +BuildRequires: infinipath-psm-devel +BuildRequires: libpsm2-devel %endif %if %{with ucx} -BuildRequires: ucx-devel +BuildRequires: ucx-devel %endif -BuildRequires: zlib-devel +BuildRequires: zlib-devel %if !0%{?el7} -BuildRequires: rpm-mpi-hooks +BuildRequires: rpm-mpi-hooks %endif -Provides: mpi +Provides: mpi %if 0%{?rhel} # Need this for /etc/profile.d/modules.sh -Requires: environment-modules +Requires: environment-modules %endif -Requires: environment(modules) +Requires: environment(modules) # openmpi currently requires ssh to run # https://svn.open-mpi.org/trac/ompi/ticket/4228 -Requires: openssh-clients +Requires: openssh-clients # Private openmpi libraries %global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so @@ -125,21 +131,21 @@ Requires: (python(abi) = %{python3_version} if python3) Contains development headers and libraries for openmpi. %package java -Summary: Java library -Requires: %{name} = %{version}-%{release} +Summary: Java library +Requires: %{name} = %{version}-%{release} %if 0%{?fedora} >= 20 || 0%{?rhel} >= 7 -Requires: java-headless +Requires: java-headless %else -Requires: java +Requires: java %endif %description java Java library. %package java-devel -Summary: Java development files for openmpi -Requires: %{name}-java = %{version}-%{release} -Requires: java-devel +Summary: Java development files for openmpi +Requires: %{name}-java = %{version}-%{release} +Requires: java-devel %description java-devel Contains development wrapper for compiling Java with openmpi. @@ -149,17 +155,17 @@ Contains development wrapper for compiling Java with openmpi. %global namearch openmpi-%{_arch}%{?_cc_name_suffix} %package -n python2-openmpi -Summary: OpenMPI support for Python 2 -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python2_version} +Summary: OpenMPI support for Python 2 +Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python2_version} %description -n python2-openmpi OpenMPI support for Python 2. %package -n python%{python3_pkgversion}-openmpi -Summary: OpenMPI support for Python 3 -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python3_version} +Summary: OpenMPI support for Python 3 +Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python3_version} %description -n python%{python3_pkgversion}-openmpi OpenMPI support for Python 3. @@ -169,6 +175,7 @@ OpenMPI support for Python 3. %autosetup -p1 -n openmpi-%{version}rc1 %build +./autogen.pl --force ./configure --prefix=%{_libdir}/%{name} \ --mandir=%{_mandir}/%{namearch} \ --includedir=%{_includedir}/%{namearch} \ @@ -347,6 +354,11 @@ make check %changelog +* Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 +- Apply upstream PR 6946 to avoid linking private glibc symbol __mmap +- Add build deps to run upstream autogen.pl +- Remove embedded tabs in the spec + * Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 - Update to 4.0.2rc1 - Closes bug #1746564 From fe46b6f9006fa23c8e67509b1dfc5d9e50c5e60b Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Sat, 31 Aug 2019 16:02:55 -0400 Subject: [PATCH 023/139] update comments Signed-off-by: Philip Kovacs --- openmpi.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 9a01566..5dd6687 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -7,7 +7,7 @@ #global opt_cflags %global opt_cxx g++ %ifarch aarch64 -# TEMP: hack for F32 aarch64 until they fix gcc PIC flags +# TEMP: hack for aarch64 %global opt_cxxflags -fPIC %else #global opt_cxxflags @@ -355,7 +355,7 @@ make check %changelog * Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 -- Apply upstream PR 6946 to avoid linking private glibc symbol __mmap +- Apply upstream PR 6946 to avoid linking to __mmap - Add build deps to run upstream autogen.pl - Remove embedded tabs in the spec From 73fc922a86b83d082c47846e8ca6c27bda302438 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Fri, 6 Sep 2019 17:24:21 -0400 Subject: [PATCH 024/139] Rebuild for annobin update to correct aarch64 build (bug #1748529) --- openmpi.spec | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 5dd6687..46e01ae 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -6,12 +6,7 @@ # so uncomment and define to use #global opt_cflags %global opt_cxx g++ -%ifarch aarch64 -# TEMP: hack for aarch64 -%global opt_cxxflags -fPIC -%else #global opt_cxxflags -%endif %global opt_f77 gfortran #global opt_fflags %global opt_fc gfortran @@ -32,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 0.2.rc1%{?dist} +Release: 0.3.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -43,7 +38,7 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Upstream PR 6946 to avoid linking private glibc symbol __mmap +# Upstream PR 6946 to avoid linking to __mmap Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6946.patch BuildRequires: autoconf @@ -354,6 +349,9 @@ make check %changelog +* Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 +- Rebuild for annobin update to correct aarch64 build (bug #1748529) + * Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 - Apply upstream PR 6946 to avoid linking to __mmap - Add build deps to run upstream autogen.pl From cc7377149715cf9b55bb8489cc4aebcb2aa603d6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 14 Sep 2019 18:45:22 -0600 Subject: [PATCH 025/139] Update to 4.0.2rc2 Re-enable C++ bindings on power64 --- .gitignore | 1 + 6946.patch | 46 ---------------------------------------------- openmpi.spec | 14 +++++++------- sources | 2 +- 4 files changed, 9 insertions(+), 54 deletions(-) delete mode 100644 6946.patch diff --git a/.gitignore b/.gitignore index efefb4e..639c05f 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.0.tar.bz2 /openmpi-4.0.1.tar.bz2 /openmpi-4.0.2rc1.tar.bz2 +/openmpi-4.0.2rc2.tar.bz2 diff --git a/6946.patch b/6946.patch deleted file mode 100644 index f40430d..0000000 --- a/6946.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fbbacc1303f02b4c955975911b82e8755ea0721c Mon Sep 17 00:00:00 2001 -From: Harumi Kuno -Date: Tue, 30 Jul 2019 06:32:27 -0700 -Subject: [PATCH] Fix mmap infinite recurse in memory patcher - -This commit fixes issue #6853 by removing -MacOS/Darwin-specific logic from intercept_mmap. - -Signed-off-by: Harumi Kuno ---- - opal/mca/memory/patcher/configure.m4 | 4 ---- - opal/mca/memory/patcher/memory_patcher_component.c | 5 ----- - 2 files changed, 9 deletions(-) - -diff --git a/opal/mca/memory/patcher/configure.m4 b/opal/mca/memory/patcher/configure.m4 -index 6881ec69366..0c5d8553259 100644 ---- a/opal/mca/memory/patcher/configure.m4 -+++ b/opal/mca/memory/patcher/configure.m4 -@@ -40,10 +40,6 @@ AC_DEFUN([MCA_opal_memory_patcher_CONFIG],[ - - AC_CHECK_HEADERS([linux/mman.h sys/syscall.h]) - -- AC_CHECK_DECLS([__mmap], [], [], [#include ]) -- -- AC_CHECK_FUNCS([__mmap]) -- - AC_CHECK_DECLS([__syscall], [], [], [#include ]) - - AC_CHECK_FUNCS([__syscall]) -diff --git a/opal/mca/memory/patcher/memory_patcher_component.c b/opal/mca/memory/patcher/memory_patcher_component.c -index 5db3a6016f8..687d430fa36 100644 ---- a/opal/mca/memory/patcher/memory_patcher_component.c -+++ b/opal/mca/memory/patcher/memory_patcher_component.c -@@ -125,12 +125,7 @@ static void *_intercept_mmap(void *start, size_t length, int prot, int flags, in - } - - if (!original_mmap) { --#ifdef HAVE___MMAP -- /* the darwin syscall returns an int not a long so call the underlying __mmap function */ -- result = __mmap (start, length, prot, flags, fd, offset); --#else - result = (void*)(intptr_t) memory_patcher_syscall(SYS_mmap, start, length, prot, flags, fd, offset); --#endif - } else { - result = original_mmap (start, length, prot, flags, fd, offset); - } diff --git a/openmpi.spec b/openmpi.spec index 46e01ae..277fc91 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,19 +27,17 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 0.3.rc1%{?dist} +Release: 0.4.rc2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc2.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Upstream PR 6946 to avoid linking to __mmap -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/6946.patch BuildRequires: autoconf BuildRequires: automake @@ -167,7 +165,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version}rc1 +%autosetup -p1 -n openmpi-%{version}rc2 %build ./autogen.pl --force @@ -177,9 +175,7 @@ OpenMPI support for Python 3. --sysconfdir=%{_sysconfdir}/%{namearch} \ --disable-silent-rules \ --enable-builtin-atomics \ -%ifnarch %{power64} --enable-mpi-cxx \ -%endif --enable-mpi-java \ --enable-mpi1-compatibility \ --with-sge \ @@ -349,6 +345,10 @@ make check %changelog +* Sat Sep 14 2019 Orion Poplawski - 4.0.2-0.4.rc2 +- Update to 4.0.2rc2 +- Re-enable C++ bindings on power64 + * Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 - Rebuild for annobin update to correct aarch64 build (bug #1748529) diff --git a/sources b/sources index 696ee63..33db3ec 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.2rc1.tar.bz2) = 7009b9b9a2ef398195e95735d907171091a13f6287d3290862465720249eac1815d9152f1804adc8ec8129ad858536f759521d392fac8c1e495928e6634372b6 +SHA512 (openmpi-4.0.2rc2.tar.bz2) = a87dfff53f31bb4dae27e6953d111b7d6c22a1165f17061546ed286e3f5b1a9ea5a95876e3480dc87d0e20bb7753f99a0825bf204724d895a340fb3b66062255 From 554b26025b33fb64a24f057a212f4804bac8b039 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Mon, 7 Oct 2019 19:15:02 -0400 Subject: [PATCH 026/139] Update to 4.0.2 --- .gitignore | 1 + openmpi.spec | 21 ++++++++++----------- sources | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 639c05f..8a5e418 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.1.tar.bz2 /openmpi-4.0.2rc1.tar.bz2 /openmpi-4.0.2rc2.tar.bz2 +/openmpi-4.0.2.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 277fc91..9243dbe 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,23 +27,20 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 0.4.rc2%{?dist} +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}rc2.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -BuildRequires: autoconf -BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: gcc-gfortran -BuildRequires: libtool BuildRequires: valgrind-devel %ifnarch %{arm} BuildRequires: opensm-devel > 3.3.0 @@ -165,10 +162,9 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version}rc2 +%autosetup -p1 -n openmpi-%{version} %build -./autogen.pl --force ./configure --prefix=%{_libdir}/%{name} \ --mandir=%{_mandir}/%{namearch} \ --includedir=%{_includedir}/%{namearch} \ @@ -345,19 +341,22 @@ make check %changelog +* Mon Oct 7 2019 Philip Kovacs - 4.0.2-1 +- Update to 4.0.2 + * Sat Sep 14 2019 Orion Poplawski - 4.0.2-0.4.rc2 - Update to 4.0.2rc2 - Re-enable C++ bindings on power64 -* Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 +* Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 - Rebuild for annobin update to correct aarch64 build (bug #1748529) -* Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 +* Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 - Apply upstream PR 6946 to avoid linking to __mmap - Add build deps to run upstream autogen.pl - Remove embedded tabs in the spec -* Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 +* Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 - Update to 4.0.2rc1 - Closes bug #1746564 @@ -370,7 +369,7 @@ make check * Sun Aug 18 2019 Miro Hrončok - 4.0.1-9 - Rebuilt for Python 3.8 -* Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 +* Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 - Remove torque support (torque retired: bug #1676147) * Thu Jul 25 2019 Fedora Release Engineering - 4.0.1-7 diff --git a/sources b/sources index 33db3ec..dd00f76 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.2rc2.tar.bz2) = a87dfff53f31bb4dae27e6953d111b7d6c22a1165f17061546ed286e3f5b1a9ea5a95876e3480dc87d0e20bb7753f99a0825bf204724d895a340fb3b66062255 +SHA512 (openmpi-4.0.2.tar.bz2) = 634d45d989f1e0b8848bfb4eb4527c7edd76d4fccd77a5f8d85a46a5822f97ba653adf13df857c87ae56a8117b4ae2d45ec24249c6ee41a562446d4112ddb770 From 68667408057cb46901b3ce9d4ed3deb654d63c64 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 16 Oct 2019 21:16:41 -0600 Subject: [PATCH 027/139] Re-enable C++ bindings on power64 --- openmpi.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 5fa9d4d..ecd873d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -21,7 +21,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 3.1.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -157,9 +157,7 @@ OpenMPI support for Python 3. --disable-silent-rules \ --enable-builtin-atomics \ --enable-mpi-thread-multiple \ -%ifnarch %{power64} --enable-mpi-cxx \ -%endif --enable-mpi-java \ --with-sge \ --with-valgrind \ @@ -320,6 +318,9 @@ make check %changelog +* Wed Oct 16 2019 Orion Poplawski - 3.1.4-2 +- Re-enable C++ bindings on power64 + * Sun Apr 28 2019 Orion Poplawski - 3.1.4-1 - Update to 3.1.4 From 956db074f073a239d8f66adc4a06eb451869a8b6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 23 Oct 2019 20:51:27 -0600 Subject: [PATCH 028/139] OpenMPI 3.1 does not support hwloc 2.X in Fedora 31+ --- openmpi.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmpi.spec b/openmpi.spec index ecd873d..d06385d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -162,7 +162,10 @@ OpenMPI support for Python 3. --with-sge \ --with-valgrind \ --enable-memchecker \ +# OpenMPI 3.1 does not support hwloc 2.X in Fedora 31+ +%if ! (0%{?fedora} >= 31) --with-hwloc=/usr \ +%endif %if !0%{?el7} --with-libevent=external \ --with-pmix=external \ From 08f03014e79710dd55c1962340278705a2a4fcc4 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 23 Oct 2019 22:17:38 -0600 Subject: [PATCH 029/139] Remove comment that breaks the configure statement --- openmpi.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index d06385d..9894eed 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -162,7 +162,6 @@ OpenMPI support for Python 3. --with-sge \ --with-valgrind \ --enable-memchecker \ -# OpenMPI 3.1 does not support hwloc 2.X in Fedora 31+ %if ! (0%{?fedora} >= 31) --with-hwloc=/usr \ %endif From 03674c8f8fca7ef89473a5db8a8d0df061547c9f Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 15 Nov 2019 17:11:04 -0700 Subject: [PATCH 030/139] Drop python2 for Fedora 32+ (bz#1773125) --- openmpi.spec | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 9243dbe..8aeff19 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -19,6 +19,12 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) +%if 0%{?fedora} >= 32 +%bcond_with python2 +%else +%bcond_without python2 +%endif + %ifarch aarch64 ppc64le x86_64 %bcond_without ucx %else @@ -27,7 +33,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -67,8 +73,6 @@ BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) BuildRequires: pmix-devel -BuildRequires: python2 -BuildRequires: python2-devel BuildRequires: python%{python3_pkgversion}-devel %ifarch x86_64 BuildRequires: infinipath-psm-devel @@ -144,13 +148,16 @@ Contains development wrapper for compiling Java with openmpi. # particular package, version, compiler %global namearch openmpi-%{_arch}%{?_cc_name_suffix} +%if %{with python2} %package -n python2-openmpi Summary: OpenMPI support for Python 2 +BuildRequires: python2-devel Requires: %{name} = %{version}-%{release} Requires: python(abi) = %{python2_version} %description -n python2-openmpi OpenMPI support for Python 2. +%endif %package -n python%{python3_pkgversion}-openmpi Summary: OpenMPI support for Python 3 @@ -208,7 +215,11 @@ sed 's#@LIBDIR@#%{_libdir}/%{name}#; s#@FMODDIR@#%{_fmoddir}/%{name}#; s#@INCDIR@#%{_includedir}/%{namearch}#; s#@MANDIR@#%{_mandir}/%{namearch}#; +%if %{with python2} s#@PY2SITEARCH@#%{python2_sitearch}/%{name}#; +%else + /@PY2SITEARCH@/d; +%endif s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#; s#@COMPILER@#openmpi-%{_arch}%{?_cc_name_suffix}#; s#@SUFFIX@#%{?_cc_name_suffix}_openmpi#' \ @@ -237,8 +248,10 @@ sed -i -e s/-ldl// -e s/-lhwloc// \ %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt # install .pth files +%if %{with python2} mkdir -p %{buildroot}/%{python2_sitearch}/%{name} install -pDm0644 %{SOURCE2} %{buildroot}/%{python2_sitearch}/openmpi.pth +%endif mkdir -p %{buildroot}/%{python3_sitearch}/%{name} install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth @@ -331,9 +344,11 @@ make check %{_libdir}/%{name}/share/doc/ %{_mandir}/%{namearch}/man1/mpijavac.1.gz +%if %{with python2} %files -n python2-openmpi %dir %{python2_sitearch}/%{name} %{python2_sitearch}/openmpi.pth +%endif %files -n python%{python3_pkgversion}-openmpi %dir %{python3_sitearch}/%{name} @@ -341,6 +356,9 @@ make check %changelog +* Fri Nov 15 2019 Orion Poplawski - 4.0.2-2 +- Drop python2 for Fedora 32+ (bz#1773125) + * Mon Oct 7 2019 Philip Kovacs - 4.0.2-1 - Update to 4.0.2 From 9ccbdc95cef128da1c1ff97f527e6aff0c7d2791 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 24 Nov 2019 16:35:22 -0700 Subject: [PATCH 031/139] Add upstream fix for error in calculating aggregators in 32bit mode --- 7126.patch | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++ openmpi.spec | 8 +++++- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 7126.patch diff --git a/7126.patch b/7126.patch new file mode 100644 index 0000000..72e0e64 --- /dev/null +++ b/7126.patch @@ -0,0 +1,77 @@ +From ea1355beae918b3acd67d5c0ccc44afbcc5b7ca9 Mon Sep 17 00:00:00 2001 +From: Edgar Gabriel +Date: Tue, 29 Oct 2019 15:21:22 -0500 +Subject: [PATCH] fcoll/two_phase: fix error in calculating aggregators in + 32bit mode + +In fcoll_two_phase_supprot_fns.c: calculation of the aggregator index +failed for large offsets on 32bit machine, due to improper handling of +64bit offsets. + +Fixes Issue #7110 + +Signed-off-by: Edgar Gabriel +--- + .../two_phase/fcoll_two_phase_support_fns.c | 25 +++++++++++-------- + 1 file changed, 14 insertions(+), 11 deletions(-) + +diff --git a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c +index 777cf08b9ae..69a56f2c6c7 100644 +--- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c ++++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c +@@ -10,7 +10,7 @@ + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. +- * Copyright (c) 2008-2011 University of Houston. All rights reserved. ++ * Copyright (c) 2008-2019 University of Houston. All rights reserved. + * Copyright (c) 2014-2018 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights +@@ -156,23 +156,26 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, + { + + +- int rank_index, rank; ++ int rank_index, rank; + OMPI_MPI_OFFSET_TYPE avail_bytes; +- +- rank_index = (int) ((off - min_off + fd_size)/ fd_size - 1); +- ++ long long off_ll = (long long) off; ++ long long min_off_ll = (long long) min_off; ++ long long fd_size_ll = (long long) fd_size; ++ long long rank_index_ll; ++ ++ rank_index_ll = (((off_ll - min_off_ll + fd_size_ll)/ fd_size_ll) - 1); ++ rank_index = (int) rank_index_ll; + if (striping_unit > 0){ + rank_index = 0; + while (off > fd_end[rank_index]) rank_index++; + } + +- + if (rank_index >= num_aggregators || rank_index < 0) { + fprintf(stderr, +- "Error in ompi_io_ompio_calcl_aggregator():"); ++ "Error in mca_fcoll_two_phase_calc_aggregator:"); + fprintf(stderr, +- "rank_index(%d) >= num_aggregators(%d)fd_size=%lld off=%lld\n", +- rank_index,num_aggregators,fd_size,off); ++ "rank_index(%d) >= num_aggregators(%d) fd_size=%ld off=%ld min_off=%ld striping_unit=%d\n", ++ rank_index, num_aggregators, fd_size, off, min_off, striping_unit); + ompi_mpi_abort(&ompi_mpi_comm_world.comm, 1); + } + +@@ -184,9 +187,9 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, + + rank = aggregator_list[rank_index]; + +- #if 0 ++#if 0 + printf("rank : %d, rank_index : %d\n",rank, rank_index); +- #endif ++#endif + + return rank; + } diff --git a/openmpi.spec b/openmpi.spec index 8aeff19..182b47b 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -33,7 +33,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -45,6 +45,9 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +# fcoll/two_phase: fix error in calculating aggregators in 32bit mode +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch + BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: valgrind-devel @@ -356,6 +359,9 @@ make check %changelog +* Sun Nov 24 2019 Orion Poplawski - 4.0.2-3 +- Add upstream fix for error in calculating aggregators in 32bit mode + * Fri Nov 15 2019 Orion Poplawski - 4.0.2-2 - Drop python2 for Fedora 32+ (bz#1773125) From 7adb0173da1e61c3f938d7db0ac5085786f9e963 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 26 Nov 2019 21:37:39 -0700 Subject: [PATCH 032/139] Update to 3.1.5 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 50d993d..4ef64b2 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-2.1.6.tar.bz2 /openmpi-3.1.3.tar.bz2 /openmpi-3.1.4.tar.bz2 +/openmpi-3.1.5.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 9894eed..007231d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -20,8 +20,8 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 3.1.4 -Release: 2%{?dist} +Version: 3.1.5 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -320,6 +320,9 @@ make check %changelog +* Tue Nov 26 2019 Orion Poplawski - 3.1.5-1 +- Update to 3.1.5 + * Wed Oct 16 2019 Orion Poplawski - 3.1.4-2 - Re-enable C++ bindings on power64 diff --git a/sources b/sources index 3074f9b..4c7ed59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-3.1.4.tar.bz2) = 5b4aafffc79fd85cb94a11a6e2fac563b142ac532191009eb35826c432ed3c391a6616e2ca92eacbf36137468eadb7c0f7ddc787034bc95c4214232ed5128338 +SHA512 (openmpi-3.1.5.tar.bz2) = 040591c8715717568b1af60f4710e4bf31fab84ac1919dc29bf6f42c2a5aa65ad0b13850033a8ef94363f391511061de729c837867822ea02366e51b90bcddd4 From f25cd0ee4eb1dd2a0feef805f0a3dcedcee8f086 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 9 Dec 2019 19:44:37 -0700 Subject: [PATCH 033/139] Add upstream fix for error in calculating aggregators in 32bit mode --- openmpi.spec | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 182b47b..818bb24 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -32,21 +32,22 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.2 -Release: 3%{?dist} +Version: 4.0.3 +Release: 0.1.201911280241%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +Source0: https://download.open-mpi.org/nightly/open-mpi/v4.0.x/openmpi-v4.0.x-201911280241-d4dd837.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi # fcoll/two_phase: fix error in calculating aggregators in 32bit mode -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch +#Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -172,7 +173,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version} +%autosetup -p1 -n openmpi-v4.0.x-201911280241-d4dd837 %build ./configure --prefix=%{_libdir}/%{name} \ From 21ec6551233c8aadb74b9d2c6d91aaeae7f07946 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Tue, 10 Dec 2019 21:55:11 +0100 Subject: [PATCH 034/139] Revert "Add upstream fix for error in calculating aggregators in 32bit mode" This reverts commit f25cd0ee4eb1dd2a0feef805f0a3dcedcee8f086. hmm, that's a mistake. I meant to just push the arm exclusion... --- openmpi.spec | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 818bb24..182b47b 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -32,22 +32,21 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3 -Release: 0.1.201911280241%{?dist} +Version: 4.0.2 +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 -Source0: https://download.open-mpi.org/nightly/open-mpi/v4.0.x/openmpi-v4.0.x-201911280241-d4dd837.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi # fcoll/two_phase: fix error in calculating aggregators in 32bit mode -#Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -173,7 +172,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-v4.0.x-201911280241-d4dd837 +%autosetup -p1 -n openmpi-%{version} %build ./configure --prefix=%{_libdir}/%{name} \ From e6fc7e40572b6364a6ffda79e95638e722179b2e Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Tue, 10 Dec 2019 21:57:45 +0100 Subject: [PATCH 035/139] disable rdma on ARM 32-bit (bz#1780584) --- openmpi.spec | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 182b47b..ab4ece2 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -31,9 +31,17 @@ %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 + Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -51,10 +59,10 @@ Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: valgrind-devel -%ifnarch %{arm} +%if %{with rdma} BuildRequires: opensm-devel > 3.3.0 -%endif BuildRequires: rdma-core-devel +%endif # Doesn't compile: # vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead' # loop->getLoopHead()->getStartAddress(), loop_stmts ); @@ -302,7 +310,9 @@ make check %dir %{_libdir}/%{name}/share/openmpi %{_libdir}/%{name}/share/openmpi/amca-param-sets %{_libdir}/%{name}/share/openmpi/help*.txt +%if %{with rdma} %{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini +%endif %if 0%{?el7} %{_libdir}/%{name}/share/pmix/ %endif @@ -359,6 +369,9 @@ make check %changelog +* Tue Dec 10 2019 Dominik Mierzejewski - 4.0.2-4 +- disable rdma on ARM 32-bit (bz#1780584) + * Sun Nov 24 2019 Orion Poplawski - 4.0.2-3 - Add upstream fix for error in calculating aggregators in 32bit mode From f88321bc97d40c7a96a2ec747fa88d71a755d7c6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 29 Jan 2020 20:20:13 +0000 Subject: [PATCH 036/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index ab4ece2..2bca505 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -369,6 +369,9 @@ make check %changelog +* Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Tue Dec 10 2019 Dominik Mierzejewski - 4.0.2-4 - disable rdma on ARM 32-bit (bz#1780584) From be5edebef64065ff3e45849938ce9086581a3567 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 1 Feb 2020 20:41:53 -0700 Subject: [PATCH 037/139] Update to 4.0.3rc3 --- .gitignore | 1 + openmpi.spec | 10 +++++----- sources | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 8a5e418..8bc2a8b 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2rc1.tar.bz2 /openmpi-4.0.2rc2.tar.bz2 /openmpi-4.0.2.tar.bz2 +/openmpi-4.0.3rc3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 2bca505..451b187 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,8 +40,8 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.2 -Release: 5%{?dist} +Version: 4.0.3rc3 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -53,9 +53,6 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# fcoll/two_phase: fix error in calculating aggregators in 32bit mode -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch - BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: valgrind-devel @@ -369,6 +366,9 @@ make check %changelog +* Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 +- Update to 4.0.3rc3 + * Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index dd00f76..901a157 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.2.tar.bz2) = 634d45d989f1e0b8848bfb4eb4527c7edd76d4fccd77a5f8d85a46a5822f97ba653adf13df857c87ae56a8117b4ae2d45ec24249c6ee41a562446d4112ddb770 +SHA512 (openmpi-4.0.3rc3.tar.bz2) = db39986a156f082db97501d6b40c18e9c8de392e00863d100b422c106783b982db0178f9edc602baabf8694853d78aecaca2d931bac15516c020d3c466ef707e From d7eaa774118468dd0b3232a95c5749d867aac685 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 15 Feb 2020 15:47:32 -0700 Subject: [PATCH 038/139] Rebuild From b201da47240e02e3bfe31a25b45c58413536bef5 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 1 Mar 2020 16:19:52 -0700 Subject: [PATCH 039/139] Update to 4.0.3rc4 --- .gitignore | 1 + 7126.patch | 77 ---------------------------------------------------- openmpi.spec | 5 +++- sources | 2 +- 4 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 7126.patch diff --git a/.gitignore b/.gitignore index 8bc2a8b..1d91101 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2rc2.tar.bz2 /openmpi-4.0.2.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 +/openmpi-4.0.3rc4.tar.bz2 diff --git a/7126.patch b/7126.patch deleted file mode 100644 index 72e0e64..0000000 --- a/7126.patch +++ /dev/null @@ -1,77 +0,0 @@ -From ea1355beae918b3acd67d5c0ccc44afbcc5b7ca9 Mon Sep 17 00:00:00 2001 -From: Edgar Gabriel -Date: Tue, 29 Oct 2019 15:21:22 -0500 -Subject: [PATCH] fcoll/two_phase: fix error in calculating aggregators in - 32bit mode - -In fcoll_two_phase_supprot_fns.c: calculation of the aggregator index -failed for large offsets on 32bit machine, due to improper handling of -64bit offsets. - -Fixes Issue #7110 - -Signed-off-by: Edgar Gabriel ---- - .../two_phase/fcoll_two_phase_support_fns.c | 25 +++++++++++-------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -index 777cf08b9ae..69a56f2c6c7 100644 ---- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -+++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -@@ -10,7 +10,7 @@ - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. -- * Copyright (c) 2008-2011 University of Houston. All rights reserved. -+ * Copyright (c) 2008-2019 University of Houston. All rights reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights -@@ -156,23 +156,26 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, - { - - -- int rank_index, rank; -+ int rank_index, rank; - OMPI_MPI_OFFSET_TYPE avail_bytes; -- -- rank_index = (int) ((off - min_off + fd_size)/ fd_size - 1); -- -+ long long off_ll = (long long) off; -+ long long min_off_ll = (long long) min_off; -+ long long fd_size_ll = (long long) fd_size; -+ long long rank_index_ll; -+ -+ rank_index_ll = (((off_ll - min_off_ll + fd_size_ll)/ fd_size_ll) - 1); -+ rank_index = (int) rank_index_ll; - if (striping_unit > 0){ - rank_index = 0; - while (off > fd_end[rank_index]) rank_index++; - } - -- - if (rank_index >= num_aggregators || rank_index < 0) { - fprintf(stderr, -- "Error in ompi_io_ompio_calcl_aggregator():"); -+ "Error in mca_fcoll_two_phase_calc_aggregator:"); - fprintf(stderr, -- "rank_index(%d) >= num_aggregators(%d)fd_size=%lld off=%lld\n", -- rank_index,num_aggregators,fd_size,off); -+ "rank_index(%d) >= num_aggregators(%d) fd_size=%ld off=%ld min_off=%ld striping_unit=%d\n", -+ rank_index, num_aggregators, fd_size, off, min_off, striping_unit); - ompi_mpi_abort(&ompi_mpi_comm_world.comm, 1); - } - -@@ -184,9 +187,9 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, - - rank = aggregator_list[rank_index]; - -- #if 0 -+#if 0 - printf("rank : %d, rank_index : %d\n",rank, rank_index); -- #endif -+#endif - - return rank; - } diff --git a/openmpi.spec b/openmpi.spec index 451b187..2edfe38 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,7 +40,7 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3rc3 +Version: 4.0.3rc4 Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio @@ -366,6 +366,9 @@ make check %changelog +* Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 +- Update to 4.0.3rc4 + * Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 - Update to 4.0.3rc3 diff --git a/sources b/sources index 901a157..cbe90dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3rc3.tar.bz2) = db39986a156f082db97501d6b40c18e9c8de392e00863d100b422c106783b982db0178f9edc602baabf8694853d78aecaca2d931bac15516c020d3c466ef707e +SHA512 (openmpi-4.0.3rc4.tar.bz2) = 01bba4b5040e6a3dbea9f5d39caef0e5fe113f308f4e790c5098d485189543994764dcc329be378f640ed253ebdf04b17613dfc73adaa8563f94369792193bee From e9dfb688c860fca5226a791847e95d5745588572 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 5 Mar 2020 19:55:01 -0700 Subject: [PATCH 040/139] Update to 4.0.3 (use x to avoid epoch) --- .gitignore | 1 + openmpi.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 1d91101..d49b85a 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 +/openmpi-4.0.3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 2edfe38..41bc12d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,14 +40,15 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3rc4 +Version: 4.0.3x Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.3.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -177,7 +178,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version} +%autosetup -p1 -n openmpi-4.0.3 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -366,6 +367,9 @@ make check %changelog +* Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 +- Update to 4.0.3 (use x to avoid epoch) + * Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 - Update to 4.0.3rc4 diff --git a/sources b/sources index cbe90dd..74f6dee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3rc4.tar.bz2) = 01bba4b5040e6a3dbea9f5d39caef0e5fe113f308f4e790c5098d485189543994764dcc329be378f640ed253ebdf04b17613dfc73adaa8563f94369792193bee +SHA512 (openmpi-4.0.3.tar.bz2) = 01f773064c575a0fe6ab081c20c5cf07ba1c9eada5ecfe520d14ce2b9fc6d021d0f56a0159fa354fd6c8e2bb7354a272aa8d0063b351f59251deb56474849acc From e98280d601613d0d7da70a17fef31f26cbc54f8d Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 10 May 2020 21:09:47 -0600 Subject: [PATCH 041/139] Update to 4.0.4 rc1 --- openmpi.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 41bc12d..1f74629 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,15 +40,15 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3x -Release: 1%{?dist} +Version: 4.0.4 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix #Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.3.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.4rc1.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -178,7 +178,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-4.0.3 +%autosetup -p1 -n openmpi-4.0.4rc1 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -367,6 +367,9 @@ make check %changelog +* Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 +- Update to 4.0.4 rc1 + * Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 - Update to 4.0.3 (use x to avoid epoch) From c4bde7f6b1f4d3def130f2d2cdd6efd25785e627 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 10 May 2020 21:19:39 -0600 Subject: [PATCH 042/139] Upload source --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d49b85a..2d250f5 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 /openmpi-4.0.3.tar.bz2 +/openmpi-4.0.4rc1.tar.bz2 diff --git a/sources b/sources index 74f6dee..3a50a34 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3.tar.bz2) = 01f773064c575a0fe6ab081c20c5cf07ba1c9eada5ecfe520d14ce2b9fc6d021d0f56a0159fa354fd6c8e2bb7354a272aa8d0063b351f59251deb56474849acc +SHA512 (openmpi-4.0.4rc1.tar.bz2) = fb3901b0a95e198a2e21e72b59123e7c56f3973a22d977fbaa41477fdf1f684e36189e9e87cab14cfff73f227f9e9e00fb1a69dfdf09593d148c53d8765d22a9 From 1e6639b309be2630762826a3f33374a6a570c1f6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 24 May 2020 16:08:44 -0600 Subject: [PATCH 043/139] Set OMPI_MCA_rmaps_base_oversubscribe=1 in %_openmpi_load (bz#1839571) --- macros.openmpi | 3 ++- openmpi.spec | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/macros.openmpi b/macros.openmpi index 05e613f..1ee6a3c 100644 --- a/macros.openmpi +++ b/macros.openmpi @@ -1,6 +1,7 @@ %_openmpi_load \ . /etc/profile.d/modules.sh; \ - module load mpi/openmpi-%{_arch}; + module load mpi/openmpi-%{_arch}; \ + export OMPI_MCA_rmaps_base_oversubscribe=1 %_openmpi_unload \ . /etc/profile.d/modules.sh; \ module unload mpi/openmpi-%{_arch}; diff --git a/openmpi.spec b/openmpi.spec index 1f74629..c0a4c54 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -367,6 +367,9 @@ make check %changelog +* Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 +- Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) + * Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 - Update to 4.0.4 rc1 From b9229d65b0ba8911efe4039b2e7324097aef028d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 25 May 2020 11:46:40 +0200 Subject: [PATCH 044/139] Rebuilt for Python 3.9 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index c0a4c54..37c2004 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.2.rc1%{?dist} +Release: 0.3.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -367,6 +367,9 @@ make check %changelog +* Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 +- Rebuilt for Python 3.9 + * Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 - Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) From e3c63280a0ff21f58b810e061eb417d39083a424 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 17 Jun 2020 21:35:45 -0600 Subject: [PATCH 045/139] Update to 4.0.4 --- .gitignore | 1 + openmpi.spec | 10 ++++++---- sources | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 2d250f5..e74414d 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 /openmpi-4.0.3.tar.bz2 /openmpi-4.0.4rc1.tar.bz2 +/openmpi-4.0.4.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 37c2004..7cdbeef 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,14 +41,13 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.3.rc1%{?dist} +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.4rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -178,7 +177,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-4.0.4rc1 +%autosetup -p1 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -367,6 +366,9 @@ make check %changelog +* Wed Jun 17 2020 Orion Poplawski - 4.0.4-1 +- Update to 4.0.4 + * Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 - Rebuilt for Python 3.9 diff --git a/sources b/sources index 3a50a34..232e629 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.4rc1.tar.bz2) = fb3901b0a95e198a2e21e72b59123e7c56f3973a22d977fbaa41477fdf1f684e36189e9e87cab14cfff73f227f9e9e00fb1a69dfdf09593d148c53d8765d22a9 +SHA512 (openmpi-4.0.4.tar.bz2) = 6c193b4b5cbfd9d48fa5efcef01372c424b51ae5e9727ccf4235e3b14556dfeb010865e41a9473419ccda16559139aa469086b1fff9abfd337e87387fdec1c64 From 5e7920089c430a9a78e70c81b5e3548e673de80a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 29 Jan 2020 20:20:13 +0000 Subject: [PATCH 046/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index ab4ece2..2bca505 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.2 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -369,6 +369,9 @@ make check %changelog +* Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Tue Dec 10 2019 Dominik Mierzejewski - 4.0.2-4 - disable rdma on ARM 32-bit (bz#1780584) From 4b9e9d107c025b85ae0c986b446e2fbd79c3c209 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 1 Feb 2020 20:41:53 -0700 Subject: [PATCH 047/139] Update to 4.0.3rc3 --- .gitignore | 1 + openmpi.spec | 10 +++++----- sources | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 8a5e418..8bc2a8b 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2rc1.tar.bz2 /openmpi-4.0.2rc2.tar.bz2 /openmpi-4.0.2.tar.bz2 +/openmpi-4.0.3rc3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 2bca505..451b187 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,8 +40,8 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.2 -Release: 5%{?dist} +Version: 4.0.3rc3 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -53,9 +53,6 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# fcoll/two_phase: fix error in calculating aggregators in 32bit mode -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/7126.patch - BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: valgrind-devel @@ -369,6 +366,9 @@ make check %changelog +* Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 +- Update to 4.0.3rc3 + * Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index dd00f76..901a157 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.2.tar.bz2) = 634d45d989f1e0b8848bfb4eb4527c7edd76d4fccd77a5f8d85a46a5822f97ba653adf13df857c87ae56a8117b4ae2d45ec24249c6ee41a562446d4112ddb770 +SHA512 (openmpi-4.0.3rc3.tar.bz2) = db39986a156f082db97501d6b40c18e9c8de392e00863d100b422c106783b982db0178f9edc602baabf8694853d78aecaca2d931bac15516c020d3c466ef707e From 7f4692ed9dcb939d86034fe483da4e6ec49721e6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 1 Mar 2020 16:19:52 -0700 Subject: [PATCH 048/139] Update to 4.0.3rc4 --- .gitignore | 1 + 7126.patch | 77 ---------------------------------------------------- openmpi.spec | 5 +++- sources | 2 +- 4 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 7126.patch diff --git a/.gitignore b/.gitignore index 8bc2a8b..1d91101 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2rc2.tar.bz2 /openmpi-4.0.2.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 +/openmpi-4.0.3rc4.tar.bz2 diff --git a/7126.patch b/7126.patch deleted file mode 100644 index 72e0e64..0000000 --- a/7126.patch +++ /dev/null @@ -1,77 +0,0 @@ -From ea1355beae918b3acd67d5c0ccc44afbcc5b7ca9 Mon Sep 17 00:00:00 2001 -From: Edgar Gabriel -Date: Tue, 29 Oct 2019 15:21:22 -0500 -Subject: [PATCH] fcoll/two_phase: fix error in calculating aggregators in - 32bit mode - -In fcoll_two_phase_supprot_fns.c: calculation of the aggregator index -failed for large offsets on 32bit machine, due to improper handling of -64bit offsets. - -Fixes Issue #7110 - -Signed-off-by: Edgar Gabriel ---- - .../two_phase/fcoll_two_phase_support_fns.c | 25 +++++++++++-------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -index 777cf08b9ae..69a56f2c6c7 100644 ---- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -+++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c -@@ -10,7 +10,7 @@ - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. -- * Copyright (c) 2008-2011 University of Houston. All rights reserved. -+ * Copyright (c) 2008-2019 University of Houston. All rights reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights -@@ -156,23 +156,26 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, - { - - -- int rank_index, rank; -+ int rank_index, rank; - OMPI_MPI_OFFSET_TYPE avail_bytes; -- -- rank_index = (int) ((off - min_off + fd_size)/ fd_size - 1); -- -+ long long off_ll = (long long) off; -+ long long min_off_ll = (long long) min_off; -+ long long fd_size_ll = (long long) fd_size; -+ long long rank_index_ll; -+ -+ rank_index_ll = (((off_ll - min_off_ll + fd_size_ll)/ fd_size_ll) - 1); -+ rank_index = (int) rank_index_ll; - if (striping_unit > 0){ - rank_index = 0; - while (off > fd_end[rank_index]) rank_index++; - } - -- - if (rank_index >= num_aggregators || rank_index < 0) { - fprintf(stderr, -- "Error in ompi_io_ompio_calcl_aggregator():"); -+ "Error in mca_fcoll_two_phase_calc_aggregator:"); - fprintf(stderr, -- "rank_index(%d) >= num_aggregators(%d)fd_size=%lld off=%lld\n", -- rank_index,num_aggregators,fd_size,off); -+ "rank_index(%d) >= num_aggregators(%d) fd_size=%ld off=%ld min_off=%ld striping_unit=%d\n", -+ rank_index, num_aggregators, fd_size, off, min_off, striping_unit); - ompi_mpi_abort(&ompi_mpi_comm_world.comm, 1); - } - -@@ -184,9 +187,9 @@ int mca_fcoll_two_phase_calc_aggregator(ompio_file_t *fh, - - rank = aggregator_list[rank_index]; - -- #if 0 -+#if 0 - printf("rank : %d, rank_index : %d\n",rank, rank_index); -- #endif -+#endif - - return rank; - } diff --git a/openmpi.spec b/openmpi.spec index 451b187..2edfe38 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,7 +40,7 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3rc3 +Version: 4.0.3rc4 Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio @@ -366,6 +366,9 @@ make check %changelog +* Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 +- Update to 4.0.3rc4 + * Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 - Update to 4.0.3rc3 diff --git a/sources b/sources index 901a157..cbe90dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3rc3.tar.bz2) = db39986a156f082db97501d6b40c18e9c8de392e00863d100b422c106783b982db0178f9edc602baabf8694853d78aecaca2d931bac15516c020d3c466ef707e +SHA512 (openmpi-4.0.3rc4.tar.bz2) = 01bba4b5040e6a3dbea9f5d39caef0e5fe113f308f4e790c5098d485189543994764dcc329be378f640ed253ebdf04b17613dfc73adaa8563f94369792193bee From 24b77d86b7b68011d6c421fdf99a43062439c456 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 5 Mar 2020 19:55:01 -0700 Subject: [PATCH 049/139] Update to 4.0.3 (use x to avoid epoch) --- .gitignore | 1 + openmpi.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 1d91101..d49b85a 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.2.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 +/openmpi-4.0.3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 2edfe38..41bc12d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,14 +40,15 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3rc4 +Version: 4.0.3x Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.3.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -177,7 +178,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-%{version} +%autosetup -p1 -n openmpi-4.0.3 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -366,6 +367,9 @@ make check %changelog +* Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 +- Update to 4.0.3 (use x to avoid epoch) + * Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 - Update to 4.0.3rc4 diff --git a/sources b/sources index cbe90dd..74f6dee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3rc4.tar.bz2) = 01bba4b5040e6a3dbea9f5d39caef0e5fe113f308f4e790c5098d485189543994764dcc329be378f640ed253ebdf04b17613dfc73adaa8563f94369792193bee +SHA512 (openmpi-4.0.3.tar.bz2) = 01f773064c575a0fe6ab081c20c5cf07ba1c9eada5ecfe520d14ce2b9fc6d021d0f56a0159fa354fd6c8e2bb7354a272aa8d0063b351f59251deb56474849acc From 19e8b79eedb8f8633e9e07dcdc964f9ca6d377b1 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 10 May 2020 21:09:47 -0600 Subject: [PATCH 050/139] Update to 4.0.4 rc1 --- openmpi.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 41bc12d..1f74629 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,15 +40,15 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.3x -Release: 1%{?dist} +Version: 4.0.4 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix #Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.3.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.4rc1.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -178,7 +178,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-4.0.3 +%autosetup -p1 -n openmpi-4.0.4rc1 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -367,6 +367,9 @@ make check %changelog +* Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 +- Update to 4.0.4 rc1 + * Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 - Update to 4.0.3 (use x to avoid epoch) From a41a5d6e47220e6bcd03614027a5f55abb758d69 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 10 May 2020 21:19:39 -0600 Subject: [PATCH 051/139] Upload source --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d49b85a..2d250f5 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.3rc3.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 /openmpi-4.0.3.tar.bz2 +/openmpi-4.0.4rc1.tar.bz2 diff --git a/sources b/sources index 74f6dee..3a50a34 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.3.tar.bz2) = 01f773064c575a0fe6ab081c20c5cf07ba1c9eada5ecfe520d14ce2b9fc6d021d0f56a0159fa354fd6c8e2bb7354a272aa8d0063b351f59251deb56474849acc +SHA512 (openmpi-4.0.4rc1.tar.bz2) = fb3901b0a95e198a2e21e72b59123e7c56f3973a22d977fbaa41477fdf1f684e36189e9e87cab14cfff73f227f9e9e00fb1a69dfdf09593d148c53d8765d22a9 From cb293a98752385b69c739905642df30fb0626060 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 24 May 2020 16:08:44 -0600 Subject: [PATCH 052/139] Set OMPI_MCA_rmaps_base_oversubscribe=1 in %_openmpi_load (bz#1839571) --- macros.openmpi | 3 ++- openmpi.spec | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/macros.openmpi b/macros.openmpi index 05e613f..1ee6a3c 100644 --- a/macros.openmpi +++ b/macros.openmpi @@ -1,6 +1,7 @@ %_openmpi_load \ . /etc/profile.d/modules.sh; \ - module load mpi/openmpi-%{_arch}; + module load mpi/openmpi-%{_arch}; \ + export OMPI_MCA_rmaps_base_oversubscribe=1 %_openmpi_unload \ . /etc/profile.d/modules.sh; \ module unload mpi/openmpi-%{_arch}; diff --git a/openmpi.spec b/openmpi.spec index 1f74629..c0a4c54 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -367,6 +367,9 @@ make check %changelog +* Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 +- Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) + * Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 - Update to 4.0.4 rc1 From 44fa6db1d232787b924d0e319eb02f7c6c89f58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 25 May 2020 11:46:40 +0200 Subject: [PATCH 053/139] Rebuilt for Python 3.9 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index c0a4c54..37c2004 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.2.rc1%{?dist} +Release: 0.3.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -367,6 +367,9 @@ make check %changelog +* Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 +- Rebuilt for Python 3.9 + * Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 - Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) From 360a86dd588100a3b9a83df3cdbb37aa6110a807 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 17 Jun 2020 21:35:45 -0600 Subject: [PATCH 054/139] Update to 4.0.4 --- .gitignore | 1 + openmpi.spec | 10 ++++++---- sources | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 2d250f5..e74414d 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.3rc4.tar.bz2 /openmpi-4.0.3.tar.bz2 /openmpi-4.0.4rc1.tar.bz2 +/openmpi-4.0.4.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 37c2004..7cdbeef 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,14 +41,13 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 0.3.rc1%{?dist} +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -#Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.4rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -178,7 +177,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n openmpi-4.0.4rc1 +%autosetup -p1 %build ./configure --prefix=%{_libdir}/%{name} \ @@ -367,6 +366,9 @@ make check %changelog +* Wed Jun 17 2020 Orion Poplawski - 4.0.4-1 +- Update to 4.0.4 + * Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 - Rebuilt for Python 3.9 diff --git a/sources b/sources index 3a50a34..232e629 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.4rc1.tar.bz2) = fb3901b0a95e198a2e21e72b59123e7c56f3973a22d977fbaa41477fdf1f684e36189e9e87cab14cfff73f227f9e9e00fb1a69dfdf09593d148c53d8765d22a9 +SHA512 (openmpi-4.0.4.tar.bz2) = 6c193b4b5cbfd9d48fa5efcef01372c424b51ae5e9727ccf4235e3b14556dfeb010865e41a9473419ccda16559139aa469086b1fff9abfd337e87387fdec1c64 From 1c84837765b88772431b2a47cc7bb7662f3d6c77 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 19 Jun 2020 21:09:57 -0600 Subject: [PATCH 055/139] Drop python 2 for RHEL8+ as well; Drop old java conditional --- openmpi.spec | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 7cdbeef..4dcf0bd 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -19,7 +19,7 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) -%if 0%{?fedora} >= 32 +%if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 %bcond_with python2 %else %bcond_without python2 @@ -135,11 +135,7 @@ Contains development headers and libraries for openmpi. %package java Summary: Java library Requires: %{name} = %{version}-%{release} -%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7 Requires: java-headless -%else -Requires: java -%endif %description java Java library. From f3cb3adf54a1f27144df04963809cce21fdea90f Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 11 Jul 2020 03:44:01 +0200 Subject: [PATCH 056/139] Rebuilt for JDK-11 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 4dcf0bd..d325560 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -362,6 +362,9 @@ make check %changelog +* Sat Jul 11 2020 Jiri Vanek - 4.0.4-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + * Wed Jun 17 2020 Orion Poplawski - 4.0.4-1 - Update to 4.0.4 From e58606bdc0774ad75ba3f6121948ec9499d782b6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jul 2020 12:45:03 +0000 Subject: [PATCH 057/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index d325560..4125ace 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -362,6 +362,9 @@ make check %changelog +* Tue Jul 28 2020 Fedora Release Engineering - 4.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Sat Jul 11 2020 Jiri Vanek - 4.0.4-2 - Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 From 118dfb82cc2cac0ccd431683ff284428c33f44eb Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 1 Sep 2020 22:03:52 -0600 Subject: [PATCH 058/139] Update to 4.0.5 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e74414d..ca05fd6 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.3.tar.bz2 /openmpi-4.0.4rc1.tar.bz2 /openmpi-4.0.4.tar.bz2 +/openmpi-4.0.5.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 4125ace..8e13b7a 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,8 +40,8 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.4 -Release: 3%{?dist} +Version: 4.0.5 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -362,6 +362,9 @@ make check %changelog +* Wed Sep 02 2020 Orion Poplawski - 4.0.5-1 +- Update to 4.0.5 + * Tue Jul 28 2020 Fedora Release Engineering - 4.0.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index 232e629..f510896 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.4.tar.bz2) = 6c193b4b5cbfd9d48fa5efcef01372c424b51ae5e9727ccf4235e3b14556dfeb010865e41a9473419ccda16559139aa469086b1fff9abfd337e87387fdec1c64 +SHA512 (openmpi-4.0.5.tar.bz2) = b7a1a5ccfc0eaa0f0504ff770b550480f7ae6727fa891e3310d9340a0d844a2ceddf62c2e59efd047ab9416b24c829919bbccd29606ca0e0d7a0569dad800011 From 5707e44d8db28794ea2a4b74efcb8dd5b6316d38 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 23 Sep 2020 19:43:12 -0600 Subject: [PATCH 059/139] Rebuild for libevent 2.1.12 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 8e13b7a..a4042cc 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,7 +41,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.0.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -362,6 +362,9 @@ make check %changelog +* Wed Sep 23 2020 Orion Poplawski - 4.0.5-2 +- Rebuild for libevent 2.1.12 + * Wed Sep 02 2020 Orion Poplawski - 4.0.5-1 - Update to 4.0.5 From fd11609c128f4f5d6e530708f73364166eb28043 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 7 Jan 2021 06:34:50 +0000 Subject: [PATCH 060/139] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- openmpi.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/openmpi.spec b/openmpi.spec index a4042cc..2aafa5d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -53,6 +53,7 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +BuildRequires: make BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: valgrind-devel From 0dc3e87935c801d85cb2a9041fb1558eb3e7a879 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 24 Jan 2021 20:09:28 -0700 Subject: [PATCH 061/139] Update to 4.1.0 --- .gitignore | 1 + openmpi.spec | 10 +++++++--- sources | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index ca05fd6..104cfac 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.4rc1.tar.bz2 /openmpi-4.0.4.tar.bz2 /openmpi-4.0.5.tar.bz2 +/openmpi-4.1.0.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 2aafa5d..550a142 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -40,14 +40,14 @@ %endif Name: openmpi%{?_cc_name_suffix} -Version: 4.0.5 -Release: 2%{?dist} +Version: 4.1.0 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -282,6 +282,7 @@ make check %{_libdir}/%{name}/bin/shmemrun %endif %{_libdir}/%{name}/lib/*.so.40* +%{_libdir}/%{name}/lib/libmca_common_ofi.so.10* %{_libdir}/%{name}/lib/libmca*.so.41* %{_libdir}/%{name}/lib/libmca*.so.50* %if 0%{?el7} @@ -363,6 +364,9 @@ make check %changelog +* Sun Jan 24 2021 Orion Poplawski - 4.1.0-1 +- Update to 4.1.0 + * Wed Sep 23 2020 Orion Poplawski - 4.0.5-2 - Rebuild for libevent 2.1.12 diff --git a/sources b/sources index f510896..ebb82c2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.0.5.tar.bz2) = b7a1a5ccfc0eaa0f0504ff770b550480f7ae6727fa891e3310d9340a0d844a2ceddf62c2e59efd047ab9416b24c829919bbccd29606ca0e0d7a0569dad800011 +SHA512 (openmpi-4.1.0.tar.bz2) = eaf086ab4929ce5a9a3e867c8315bf802ff4dc75d3f05d740e22dfd97803a4559212dacbe06920d42ac6644f46057eb6980cccf5a8b0a7df9c5bdf5bffc0b3a6 From 9af26a187c2e8c62a256d3d8e3cea868c211d0e4 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 24 Jan 2021 21:11:55 -0700 Subject: [PATCH 062/139] Use set_build_flags macro Drop old opt_ macros --- openmpi.spec | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 550a142..18d1612 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -1,17 +1,3 @@ -%global _hardened_build 1 -# We only compile with gcc, but other people may want other compilers. -# Set the compiler here. -%global opt_cc gcc -# Optional CFLAGS to use with the specific compiler...gcc doesn't need any, -# so uncomment and define to use -#global opt_cflags -%global opt_cxx g++ -#global opt_cxxflags -%global opt_f77 gfortran -#global opt_fflags -%global opt_fc gfortran -#global opt_fcflags - # Optional name suffix to use...we leave it off when compiling with gcc, but # for other compiled versions to install side by side, it will need a # suffix in order to keep the names from conflicting. @@ -41,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -177,6 +163,7 @@ OpenMPI support for Python 3. %autosetup -p1 %build +%set_build_flags ./configure --prefix=%{_libdir}/%{name} \ --mandir=%{_mandir}/%{namearch} \ --includedir=%{_includedir}/%{namearch} \ @@ -194,12 +181,6 @@ OpenMPI support for Python 3. --with-libevent=external \ --with-pmix=external \ %endif - CC=%{opt_cc} CXX=%{opt_cxx} \ - LDFLAGS='%{__global_ldflags}' \ - CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \ - CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \ - FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}" -# --with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' \ %make_build V=1 @@ -364,6 +345,10 @@ make check %changelog +* Sun Jan 24 2021 Orion Poplawski - 4.1.0-2 +- Use set_build_flags macro +- Drop old opt_ macros + * Sun Jan 24 2021 Orion Poplawski - 4.1.0-1 - Update to 4.1.0 From b5bdf1245b1a03b5edbaddf2c9311d26dff87365 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 22:32:40 +0000 Subject: [PATCH 063/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 18d1612..b20f2d8 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -27,7 +27,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -345,6 +345,9 @@ make check %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 4.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Sun Jan 24 2021 Orion Poplawski - 4.1.0-2 - Use set_build_flags macro - Drop old opt_ macros From cd2fcb2471affbb66ae5391be046356437aaf928 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 27 Jan 2021 21:02:13 -0700 Subject: [PATCH 064/139] Add upstream patch to fix AVX library linkage --- 8322.patch | 1682 ++++++++++++++++++++++++++++++++++++++++++++++++++ openmpi.spec | 21 +- 2 files changed, 1702 insertions(+), 1 deletion(-) create mode 100644 8322.patch diff --git a/8322.patch b/8322.patch new file mode 100644 index 0000000..8c04e5d --- /dev/null +++ b/8322.patch @@ -0,0 +1,1682 @@ +From 31068e063b8795ae11f3a59d4080db1fe111cfaf Mon Sep 17 00:00:00 2001 +From: George Bosilca +Date: Mon, 28 Dec 2020 15:36:05 -0500 +Subject: [PATCH 1/3] Major update to the AVX* detection and support + +1. Consistent march flag order between configure and make. + +2. op/avx: give the option to skip some tests + +it is possible to skip some intrinsic tests by setting some environment variables to "no" before invoking configure: + - ompi_cv_op_avx_check_avx512 + - ompi_cv_op_avx_check_avx2 + - ompi_cv_op_avx_check_avx + - ompi_cv_op_avx_check_sse41 + - ompi_cv_op_avx_check_sse3 + +3. op/avx: update AVX512 flags + +try +-mavx512f -mavx512bw -mavx512vl -mavx512dq +instead of +-march=skylake-avx512 + +since the former is less likely to conflict with user provided CFLAGS +(e.g. -march=...) + +Thanks Bart Oldeman for pointing this. + +4. op/avx: have the op/avx library depend on libmpi.so + +Refs. open-mpi/ompi#8323 + +Signed-off-by: Gilles Gouaillardet +Signed-off-by: George Bosilca +--- + ompi/mca/op/avx/Makefile.am | 4 +- + ompi/mca/op/avx/configure.m4 | 325 ++++++++++++++++++----------------- + 2 files changed, 174 insertions(+), 155 deletions(-) + +diff --git a/ompi/mca/op/avx/Makefile.am b/ompi/mca/op/avx/Makefile.am +index 41dcf2e1834..b1d84d90b33 100644 +--- a/ompi/mca/op/avx/Makefile.am ++++ b/ompi/mca/op/avx/Makefile.am +@@ -2,7 +2,7 @@ + # Copyright (c) 2019-2020 The University of Tennessee and The University + # of Tennessee Research Foundation. All rights + # reserved. +-# Copyright (c) 2020 Research Organization for Information Science ++# Copyright (c) 2020-2021 Research Organization for Information Science + # and Technology (RIST). All rights reserved. + # $COPYRIGHT$ + # +@@ -86,7 +86,7 @@ mcacomponentdir = $(ompilibdir) + mcacomponent_LTLIBRARIES = $(component_install) + mca_op_avx_la_SOURCES = $(sources) + mca_op_avx_la_LIBADD = $(specialized_op_libs) +-mca_op_avx_la_LDFLAGS = -module -avoid-version ++mca_op_avx_la_LDFLAGS = -module -avoid-version $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la + + + # Specific information for static builds. +diff --git a/ompi/mca/op/avx/configure.m4 b/ompi/mca/op/avx/configure.m4 +index 09d8b374c8e..f61b7100ef4 100644 +--- a/ompi/mca/op/avx/configure.m4 ++++ b/ompi/mca/op/avx/configure.m4 +@@ -29,6 +29,13 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + op_avx_support=0 + op_avx2_support=0 + op_avx512_support=0 ++ ++ AS_VAR_PUSHDEF([op_avx_check_sse3], [ompi_cv_op_avx_check_sse3]) ++ AS_VAR_PUSHDEF([op_avx_check_sse41], [ompi_cv_op_avx_check_sse41]) ++ AS_VAR_PUSHDEF([op_avx_check_avx], [ompi_cv_op_avx_check_avx]) ++ AS_VAR_PUSHDEF([op_avx_check_avx2], [ompi_cv_op_avx_check_avx2]) ++ AS_VAR_PUSHDEF([op_avx_check_avx512], [ompi_cv_op_avx_check_avx512]) ++ + OPAL_VAR_SCOPE_PUSH([op_avx_cflags_save]) + + AS_IF([test "$opal_cv_asm_arch" = "X86_64"], +@@ -37,21 +44,9 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # + # Check for AVX512 support + # +- AC_MSG_CHECKING([for AVX512 support (no additional flags)]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ +- __m512 vA, vB; +- _mm512_add_ps(vA, vB) +- ]])], +- [op_avx512_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- +- AS_IF([test $op_avx512_support -eq 0], +- [AC_MSG_CHECKING([for AVX512 support (with -march=skylake-avx512)]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS -march=skylake-avx512" ++ AC_CACHE_CHECK([if we are checking for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) ++ AS_IF([test "$op_avx_check_avx512" = "yes"], ++ [AC_MSG_CHECKING([for AVX512 support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +@@ -59,99 +54,115 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + _mm512_add_ps(vA, vB) + ]])], + [op_avx512_support=1 +- MCA_BUILD_OP_AVX512_FLAGS="-march=skylake-avx512" + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) +- CFLAGS="$op_avx_cflags_save" +- ]) +- # +- # Some combination of gcc and older as would not correctly build the code generated by +- # _mm256_loadu_si256. Screen them out. +- # +- AS_IF([test $op_avx512_support -eq 1], +- [AC_MSG_CHECKING([if _mm512_loadu_si512 generates code that can be compiled]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ ++ AS_IF([test $op_avx512_support -eq 0], ++ [AC_MSG_CHECKING([for AVX512 support (with -mavx512f -mavx512bw -mavx512vl -mavx512dq)]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq $CFLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ ++ __m512 vA, vB; ++ _mm512_add_ps(vA, vB) ++ ]])], ++ [op_avx512_support=1 ++ MCA_BUILD_OP_AVX512_FLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq" ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])]) ++ CFLAGS="$op_avx_cflags_save" ++ ]) ++ # ++ # Some combination of gcc and older as would not correctly build the code generated by ++ # _mm256_loadu_si256. Screen them out. ++ # ++ AS_IF([test $op_avx512_support -eq 1], ++ [AC_MSG_CHECKING([if _mm512_loadu_si512 generates code that can be compiled]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + __m512i vA = _mm512_loadu_si512((__m512i*)&(A[1])) +- ]])], +- [AC_MSG_RESULT([yes])], +- [op_avx512_support=0 +- MCA_BUILD_OP_AVX512_FLAGS="" +- AC_MSG_RESULT([no])]) +- CFLAGS="$op_avx_cflags_save" +- ]) +- # +- # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. +- # +- AS_IF([test $op_avx512_support -eq 1], +- [AC_MSG_CHECKING([if _mm512_mullo_epi64 generates code that can be compiled]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ ]])], ++ [AC_MSG_RESULT([yes])], ++ [op_avx512_support=0 ++ MCA_BUILD_OP_AVX512_FLAGS="" ++ AC_MSG_RESULT([no])]) ++ CFLAGS="$op_avx_cflags_save" ++ ]) ++ # ++ # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. ++ # ++ AS_IF([test $op_avx512_support -eq 1], ++ [AC_MSG_CHECKING([if _mm512_mullo_epi64 generates code that can be compiled]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m512i vA, vB; + _mm512_mullo_epi64(vA, vB) +- ]])], +- [AC_MSG_RESULT([yes])], +- [op_avx512_support=0 +- MCA_BUILD_OP_AVX512_FLAGS="" +- AC_MSG_RESULT([no])]) +- CFLAGS="$op_avx_cflags_save" +- ]) ++ ]])], ++ [AC_MSG_RESULT([yes])], ++ [op_avx512_support=0 ++ MCA_BUILD_OP_AVX512_FLAGS="" ++ AC_MSG_RESULT([no])]) ++ CFLAGS="$op_avx_cflags_save" ++ ])]) + # + # Check support for AVX2 + # +- AC_MSG_CHECKING([for AVX2 support (no additional flags)]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ AC_CACHE_CHECK([if we are checking for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) ++ AS_IF([test "$op_avx_check_avx2" = "yes"], ++ [AC_MSG_CHECKING([for AVX2 support (no additional flags)]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m256 vA, vB; + _mm256_add_ps(vA, vB) +- ]])], +- [op_avx2_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- AS_IF([test $op_avx2_support -eq 0], +- [AC_MSG_CHECKING([for AVX2 support (with -mavx2)]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS -mavx2" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ ]])], ++ [op_avx2_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])]) ++ AS_IF([test $op_avx2_support -eq 0], ++ [AC_MSG_CHECKING([for AVX2 support (with -mavx2)]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="-mavx2 $CFLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m256 vA, vB; + _mm256_add_ps(vA, vB) +- ]])], +- [op_avx2_support=1 +- MCA_BUILD_OP_AVX2_FLAGS="-mavx2" +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- CFLAGS="$op_avx_cflags_save" +- ]) +- # +- # Some combination of gcc and older as would not correctly build the code generated by +- # _mm256_loadu_si256. Screen them out. +- # +- AS_IF([test $op_avx2_support -eq 1], +- [AC_MSG_CHECKING([if _mm256_loadu_si256 generates code that can be compiled]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ ]])], ++ [op_avx2_support=1 ++ MCA_BUILD_OP_AVX2_FLAGS="-mavx2" ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])]) ++ CFLAGS="$op_avx_cflags_save" ++ ]) ++ # ++ # Some combination of gcc and older as would not correctly build the code generated by ++ # _mm256_loadu_si256. Screen them out. ++ # ++ AS_IF([test $op_avx2_support -eq 1], ++ [AC_MSG_CHECKING([if _mm256_loadu_si256 generates code that can be compiled]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + int A[8] = {0, 1, 2, 3, 4, 5, 6, 7}; + __m256i vA = _mm256_loadu_si256((__m256i*)&A) +- ]])], +- [AC_MSG_RESULT([yes])], +- [op_avx2_support=0 +- MCA_BUILD_OP_AVX2_FLAGS="" +- AC_MSG_RESULT([no])]) +- CFLAGS="$op_avx_cflags_save" +- ]) ++ ]])], ++ [AC_MSG_RESULT([yes])], ++ [op_avx2_support=0 ++ MCA_BUILD_OP_AVX2_FLAGS="" ++ AC_MSG_RESULT([no])]) ++ CFLAGS="$op_avx_cflags_save" ++ ])]) + # + # What about early AVX support. The rest of the logic is slightly different as + # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check +@@ -160,90 +171,92 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 + # instructions. + # +- AC_MSG_CHECKING([for AVX support (no additional flags)]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ AC_CACHE_CHECK([if we are checking for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) ++ AS_IF([test "$op_avx_check_avx" = "yes"], ++ [AC_MSG_CHECKING([for AVX support (no additional flags)]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m128 vA, vB; + _mm_add_ps(vA, vB) +- ]])], +- [op_avx_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) ++ ]])], ++ [op_avx_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])])]) + # + # Check for SSE4.1 support + # +- AS_IF([test $op_avx_support -eq 1], +- [AC_MSG_CHECKING([for SSE4.1 support]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ AC_CACHE_CHECK([if we are checking for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) ++ AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse41" = "yes"], ++ [AC_MSG_CHECKING([for SSE4.1 support]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) +- ]])], +- [op_sse41_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- ]) ++ ]])], ++ [op_sse41_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])]) ++ ]) + # + # Check for SSE3 support + # +- AS_IF([test $op_avx_support -eq 1], +- [AC_MSG_CHECKING([for SSE3 support]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ AC_CACHE_CHECK([if we are checking for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) ++ AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse3" = "yes"], ++ [AC_MSG_CHECKING([for SSE3 support]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) +- ]])], +- [op_sse3_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- ]) ++ ]])], ++ [op_sse3_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])]) ++ ]) + # Second pass, do we need to add the AVX flag ? + AS_IF([test $op_avx_support -eq 0 || test $op_sse41_support -eq 0 || test $op_sse3_support -eq 0], +- [AC_MSG_CHECKING([for AVX support (with -mavx)]) +- op_avx_cflags_save="$CFLAGS" +- CFLAGS="$CFLAGS -mavx" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ [AS_IF([test "$op_avx_check_avx" = "yes"], ++ [AC_MSG_CHECKING([for AVX support (with -mavx)]) ++ op_avx_cflags_save="$CFLAGS" ++ CFLAGS="-mavx $CFLAGS" ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m128 vA, vB; + _mm_add_ps(vA, vB) + ]])], +- [op_avx_support=1 +- MCA_BUILD_OP_AVX_FLAGS="-mavx" +- op_sse41_support=0 +- op_sse3_support=0 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) ++ [op_avx_support=1 ++ MCA_BUILD_OP_AVX_FLAGS="-mavx" ++ op_sse41_support=0 ++ op_sse3_support=0 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])])]) + +- AS_IF([test $op_sse41_support -eq 0], +- [AC_MSG_CHECKING([for SSE4.1 support]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], +- [[ ++ AS_IF([test "$op_avx_check_sse41" = "yes" && test $op_sse41_support -eq 0], ++ [AC_MSG_CHECKING([for SSE4.1 support]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], ++ [[ + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) +- ]])], +- [op_sse41_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- ]) +- AS_IF([test $op_sse3_support -eq 0], +- [AC_MSG_CHECKING([for SSE3 support]) +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include ]], ++ ]])], ++ [op_sse41_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])])]) ++ AS_IF([test "$op_avx_check_sse3" = "yes" && test $op_sse3_support -eq 0], ++ [AC_MSG_CHECKING([for SSE3 support]) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([[#include ]], + [[ + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) + ]])], +- [op_sse3_support=1 +- AC_MSG_RESULT([yes])], +- [AC_MSG_RESULT([no])]) +- ]) +- CFLAGS="$op_avx_cflags_save" +- ]) ++ [op_sse3_support=1 ++ AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])])]) ++ CFLAGS="$op_avx_cflags_save"]) + + AC_LANG_POP([C]) + ]) +@@ -276,6 +289,12 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + AC_SUBST(MCA_BUILD_OP_AVX2_FLAGS) + AC_SUBST(MCA_BUILD_OP_AVX_FLAGS) + ++ AS_VAR_POPDEF([op_avx_check_avx512]) ++ AS_VAR_POPDEF([op_avx_check_avx2]) ++ AS_VAR_POPDEF([op_avx_check_avx]) ++ AS_VAR_POPDEF([op_avx_check_sse41]) ++ AS_VAR_POPDEF([op_avx_check_sse3]) ++ + OPAL_VAR_SCOPE_POP + # Enable this component iff we have at least the most basic form of support + # for vectorial ISA + +From fcf2766a03e3c2a1001679013878209bcddd50ae Mon Sep 17 00:00:00 2001 +From: George Bosilca +Date: Mon, 28 Dec 2020 12:18:07 -0500 +Subject: [PATCH 2/3] AVX code generation improvements + +1. Allow fallback to a lesser AVX support during make + +Due to the fact that some distro restrict the compiule architecture +during make (while not setting any restrictions during configure) we +need to detect the target architecture also during make in order to +restrict the code we generate. + +2. Add comments and better protect the arch specific code. + +Identify all the vectorial functions used and clasify them according to +the neccesary hardware capabilities. +Use these requirements to protect the code for load and stores (the rest +of the code being automatically generated it is more difficult to +protect). + +3. Correctly check for AVX* support. + +Signed-off-by: George Bosilca +--- + ompi/mca/op/avx/configure.m4 | 28 +-- + ompi/mca/op/avx/op_avx_functions.c | 322 ++++++++++++++++++++++++----- + 2 files changed, 288 insertions(+), 62 deletions(-) + +diff --git a/ompi/mca/op/avx/configure.m4 b/ompi/mca/op/avx/configure.m4 +index f61b7100ef4..f3651f09d43 100644 +--- a/ompi/mca/op/avx/configure.m4 ++++ b/ompi/mca/op/avx/configure.m4 +@@ -44,7 +44,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # + # Check for AVX512 support + # +- AC_CACHE_CHECK([if we are checking for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) ++ AC_CACHE_CHECK([for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) + AS_IF([test "$op_avx_check_avx512" = "yes"], + [AC_MSG_CHECKING([for AVX512 support (no additional flags)]) + AC_LINK_IFELSE( +@@ -115,14 +115,14 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # + # Check support for AVX2 + # +- AC_CACHE_CHECK([if we are checking for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) ++ AC_CACHE_CHECK([for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) + AS_IF([test "$op_avx_check_avx2" = "yes"], + [AC_MSG_CHECKING([for AVX2 support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +- __m256 vA, vB; +- _mm256_add_ps(vA, vB) ++ __m256i vA, vB, vC; ++ vC = _mm256_and_si256(vA, vB) + ]])], + [op_avx2_support=1 + AC_MSG_RESULT([yes])], +@@ -134,8 +134,8 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +- __m256 vA, vB; +- _mm256_add_ps(vA, vB) ++ __m256i vA, vB, vC; ++ vC = _mm256_and_si256(vA, vB) + ]])], + [op_avx2_support=1 + MCA_BUILD_OP_AVX2_FLAGS="-mavx2" +@@ -164,21 +164,21 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + CFLAGS="$op_avx_cflags_save" + ])]) + # +- # What about early AVX support. The rest of the logic is slightly different as ++ # What about early AVX support? The rest of the logic is slightly different as + # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check + # if we can compile AVX code without a flag, then we validate that we have support + # for the SSE4.1 and SSE3 instructions we need. If not, we check for the usage of + # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 + # instructions. + # +- AC_CACHE_CHECK([if we are checking for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) ++ AC_CACHE_CHECK([for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) + AS_IF([test "$op_avx_check_avx" = "yes"], + [AC_MSG_CHECKING([for AVX support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +- __m128 vA, vB; +- _mm_add_ps(vA, vB) ++ __m256 vA, vB, vC; ++ vC = _mm256_add_ps(vA, vB) + ]])], + [op_avx_support=1 + AC_MSG_RESULT([yes])], +@@ -186,7 +186,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # + # Check for SSE4.1 support + # +- AC_CACHE_CHECK([if we are checking for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) ++ AC_CACHE_CHECK([for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) + AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse41" = "yes"], + [AC_MSG_CHECKING([for SSE4.1 support]) + AC_LINK_IFELSE( +@@ -202,7 +202,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + # + # Check for SSE3 support + # +- AC_CACHE_CHECK([if we are checking for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) ++ AC_CACHE_CHECK([for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) + AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse3" = "yes"], + [AC_MSG_CHECKING([for SSE3 support]) + AC_LINK_IFELSE( +@@ -224,8 +224,8 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +- __m128 vA, vB; +- _mm_add_ps(vA, vB) ++ __m256 vA, vB, vC; ++ vC = _mm256_add_ps(vA, vB) + ]])], + [op_avx_support=1 + MCA_BUILD_OP_AVX_FLAGS="-mavx" +diff --git a/ompi/mca/op/avx/op_avx_functions.c b/ompi/mca/op/avx/op_avx_functions.c +index 95a9c9ab84e..ef3f0932906 100644 +--- a/ompi/mca/op/avx/op_avx_functions.c ++++ b/ompi/mca/op/avx/op_avx_functions.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2019-2020 The University of Tennessee and The University ++ * Copyright (c) 2019-2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Research Organization for Information Science +@@ -24,16 +24,42 @@ + #include "ompi/mca/op/avx/op_avx.h" + + #include +- ++/** ++ * The following logic is necessary to cope with distro maintainer's desire to change the compilation ++ * flags after the configure step, leading to inconsistencies between what OMPI has detected and what ++ * code can be generated during make. If we detect that the current code generation architecture has ++ * been changed from our own setting and cannot generate the code we need (AVX512, AVX2) we fall back ++ * to a lesser support (AVX512 -> AVX2, AVX2 -> AVX, AVX -> error out). ++ */ + #if defined(GENERATE_AVX512_CODE) +-#define PREPEND _avx512 +-#elif defined(GENERATE_AVX2_CODE) +-#define PREPEND _avx2 +-#elif defined(GENERATE_AVX_CODE) +-#define PREPEND _avx +-#else +-#error This file should not be compiled in this conditions +-#endif ++# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) ++# define PREPEND _avx512 ++# else ++# undef GENERATE_AVX512_CODE ++# endif /* defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) */ ++#endif /* defined(GENERATE_AVX512_CODE) */ ++ ++#if !defined(PREPEND) && defined(GENERATE_AVX2_CODE) ++# if defined(__AVX2__) ++# define PREPEND _avx2 ++# else ++# undef GENERATE_AVX2_CODE ++# endif /* defined(__AVX2__) */ ++#endif /* !defined(PREPEND) && defined(GENERATE_AVX2_CODE) */ ++ ++#if !defined(PREPEND) && defined(GENERATE_AVX_CODE) ++# if defined(__AVX__) ++# define PREPEND _avx ++# endif ++#endif /* !defined(PREPEND) && defined(GENERATE_AVX_CODE) */ ++ ++#if !defined(PREPEND) ++# if OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 ++# error The configure step has detected possible support for AVX512 and/or AVX2 but the compiler flags during make are too restrictive. Please disable the AVX component by adding --enable-mca-no-build=op-avx to your configure step. ++# else ++# error This file should not be compiled in this conditions. Please provide the config.log file to the OMPI developers. ++# endif /* OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 */ ++#endif /* !defined(PREPEND) */ + + /* + * Concatenate preprocessor tokens A and B without expanding macro definitions +@@ -46,6 +72,102 @@ + */ + #define OP_CONCAT(A, B) OP_CONCAT_NX(A, B) + ++/* ++ * grep -e "_mm[125][251][862]_.*(" avx512.c -o | sed 's/(//g' | sort | uniq ++ * ++ * https://software.intel.com/sites/landingpage/IntrinsicsGuide ++ * ++ * _mm_add_epi[8,16,32,64] SSE2 ++ * _mm_add_pd SSE2 ++ * _mm_add_ps SSE ++ * _mm_adds_epi[8,16] SSE2 ++ * _mm_adds_epu[8,16] SSE2 ++ * _mm_and_si128 SSE2 ++ * _mm_lddqu_si128 SSE3 ++ * _mm_loadu_pd SSE2 ++ * _mm_loadu_ps SSE ++ * _mm_max_epi8 SSE4.1 ++ * _mm_max_epi16 SSE2 ++ * _mm_max_epi32 SSE4.1 ++ * _mm_max_epi64 AVX512VL + AVX512F ++ * _mm_max_epu8 SSE2 ++ * _mm_max_epu[16,32] SSE4.1 ++ * _mm_max_epu64 AVX512VL + AVX512F ++ * _mm_max_pd SSE2 ++ * _mm_max_ps SSE ++ * _mm_min_epi8 SSE4.1 ++ * _mm_min_epi16 SSE2 ++ * _mm_min_epi32 SSE4.1 ++ * _mm_min_epi64 AVX512VL + AVX512F ++ * _mm_min_epu8 SSE2 ++ * _mm_min_epu[16,32] SSE4.1 ++ * _mm_min_epu64 AVX512VL + AVX512F ++ * _mm_min_pd SSE2 ++ * _mm_min_ps SSE ++ * _mm_mul_pd SSE2 ++ * _mm_mul_ps SSE ++ * _mm_mullo_epi16 SSE2 ++ * _mm_mullo_epi32 SSE4.1 ++ * _mm_mullo_epi64 AVX512VL + AVX512DQ ++ * _mm_or_si128 SSE2 ++ * _mm_storeu_pd SSE2 ++ * _mm_storeu_ps SSE ++ * _mm_storeu_si128 SSE2 ++ * _mm_xor_si128 SSE2 ++ * _mm256_add_epi[8,16,32,64] AVX2 ++ * _mm256_add_p[s,d] AVX ++ * _mm256_adds_epi[8,16] AVX2 ++ * _mm256_adds_epu[8,16] AVX2 ++ * _mm256_and_si256 AVX2 ++ * _mm256_loadu_p[s,d] AVX ++ * _mm256_loadu_si256 AVX ++ * _mm256_max_epi[8,16,32] AVX2 ++ * _mm256_max_epi64 AVX512VL + AVX512F ++ * _mm256_max_epu[8,16,32] AVX2 ++ * _mm256_max_epu64 AVX512VL + AVX512F ++ * _mm256_max_p[s,d] AVX ++ * _mm256_min_epi[8,16,32] AVX2 ++ * _mm256_min_epi64 AVX512VL + AVX512F ++ * _mm256_min_epu[8,16,32] AVX2 ++ * _mm256_min_epu64 AVX512VL + AVX512F ++ * _mm256_min_p[s,d] AVX ++ * _mm256_mul_p[s,d] AVX ++ * _mm256_mullo_epi[16,32] AVX2 ++ * _mm256_mullo_epi64 AVX512VL + AVX512DQ ++ * _mm256_or_si256 AVX2 ++ * _mm256_storeu_p[s,d] AVX ++ * _mm256_storeu_si256 AVX ++ * _mm256_xor_si256 AVX2 ++ * _mm512_add_epi[8,16] AVX512BW ++ * _mm512_add_epi[32,64] AVX512F ++ * _mm512_add_p[s,d] AVX512F ++ * _mm512_adds_epi[8,16] AVX512BW ++ * _mm512_adds_epu[8,16] AVX512BW ++ * _mm512_and_si512 AVX512F ++ * _mm512_cvtepi16_epi8 AVX512BW ++ * _mm512_cvtepi8_epi16 AVX512BW ++ * _mm512_loadu_p[s,d] AVX512F ++ * _mm512_loadu_si512 AVX512F ++ * _mm512_max_epi[8,16] AVX512BW ++ * _mm512_max_epi[32,64] AVX512F ++ * _mm512_max_epu[8,16] AVX512BW ++ * _mm512_max_epu[32,64] AVX512F ++ * _mm512_max_p[s,d] AVX512F ++ * _mm512_min_epi[8,16] AVX512BW ++ * _mm512_min_epi[32,64] AVX512F ++ * _mm512_min_epu[8,16] AVX512BW ++ * _mm512_min_epu[32,64] AVX512F ++ * _mm512_min_p[s,d] AVX512F ++ * _mm512_mul_p[s,d] AVX512F ++ * _mm512_mullo_epi16 AVX512BW ++ * _mm512_mullo_epi32 AVX512F ++ * _mm512_mullo_epi64 AVX512DQ ++ * _mm512_or_si512 AVX512F ++ * _mm512_storeu_p[s,d] AVX512F ++ * _mm512_storeu_si512 AVX512F ++ * _mm512_xor_si512 AVX512F ++ */ ++ + /* + * Since all the functions in this file are essentially identical, we + * use a macro to substitute in names and types. The core operation +@@ -62,13 +184,14 @@ + (((_flag) & mca_op_avx_component.flags) == (_flag)) + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (512 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ +- __m512i vecA = _mm512_loadu_si512((__m512*)in); \ ++ __m512i vecA = _mm512_loadu_si512((__m512*)in); \ + in += types_per_step; \ +- __m512i vecB = _mm512_loadu_si512((__m512*)out); \ ++ __m512i vecB = _mm512_loadu_si512((__m512*)out); \ + __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm512_storeu_si512((__m512*)out, res); \ + out += types_per_step; \ +@@ -76,10 +199,14 @@ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); /* AVX2 */ \ +@@ -87,30 +214,37 @@ + __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ + in += types_per_step; \ + __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ +- __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ ++ __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE3__ + #define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ +- int types_per_step = (128 / 8) / sizeof(type); /* AVX */ \ ++ int types_per_step = (128 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ + in += types_per_step; \ + __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ +- __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ ++ __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } + #else ++#error Target architecture lacks SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 ++#endif /* __SSE3__ */ ++#else + #define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -143,12 +277,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512BW__ && __AVX__ + #define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in); \ +- __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)out); \ ++ __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in); \ ++ __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)out); \ + in += types_per_step; \ + __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ + __m512i vecB = _mm512_cvtepi8_epi16(vecB_tmp); \ +@@ -160,6 +295,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 ++#endif /* __AVX512BW__ && __AVX__ */ ++#else + #define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + /** +@@ -201,13 +339,14 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ + * + */ + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS( OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512i vecA = _mm512_loadu_si512((__m512i*)in); \ ++ __m512i vecA = _mm512_loadu_si512((__m512i*)in); \ + in += types_per_step; \ +- __m512i vecB = _mm512_loadu_si512((__m512i*)out); \ ++ __m512i vecB = _mm512_loadu_si512((__m512i*)out); \ + __m512i res = _mm512_##op##_si512(vecA, vecB); \ + _mm512_storeu_si512((__m512i*)out, res); \ + out += types_per_step; \ +@@ -215,10 +354,14 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(type); \ +@@ -226,17 +369,21 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ + __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ + in += types_per_step; \ + __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ +- __m256i res = _mm256_##op##_si256(vecA, vecB); \ ++ __m256i res = _mm256_##op##_si256(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE3__ && __SSE2__ + #define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(type); \ +@@ -244,12 +391,15 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ + __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ + in += types_per_step; \ + __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ +- __m128i res = _mm_##op##_si128(vecA, vecB); \ ++ __m128i res = _mm_##op##_si128(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } + #else ++#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 ++#endif /* __SSE3__ && __SSE2__ */ ++#else + #define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -282,12 +432,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(float); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512 vecA = _mm512_loadu_ps((__m512*)in); \ +- __m512 vecB = _mm512_loadu_ps((__m512*)out); \ ++ __m512 vecA = _mm512_loadu_ps((__m512*)in); \ ++ __m512 vecB = _mm512_loadu_ps((__m512*)out); \ + in += types_per_step; \ + __m512 res = _mm512_##op##_ps(vecA, vecB); \ + _mm512_storeu_ps((__m512*)out, res); \ +@@ -296,28 +447,36 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_FLOAT_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ +- __m256 vecA = _mm256_loadu_ps(in); \ ++ __m256 vecA = _mm256_loadu_ps(in); \ + in += types_per_step; \ +- __m256 vecB = _mm256_loadu_ps(out); \ ++ __m256 vecB = _mm256_loadu_ps(out); \ + __m256 res = _mm256_##op##_ps(vecA, vecB); \ +- _mm256_storeu_ps(out, res); \ ++ _mm256_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX_FLOAT_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE__ + #define OP_AVX_SSE_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(float); \ +@@ -331,6 +490,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in + } \ + } + #else ++#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps ++#endif /* __SSE__ */ ++#else + #define OP_AVX_SSE_FLOAT_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -363,13 +525,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(double); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512d vecA = _mm512_loadu_pd(in); \ ++ __m512d vecA = _mm512_loadu_pd(in); \ + in += types_per_step; \ +- __m512d vecB = _mm512_loadu_pd(out); \ ++ __m512d vecB = _mm512_loadu_pd(out); \ + __m512d res = _mm512_##op##_pd(vecA, vecB); \ + _mm512_storeu_pd((out), res); \ + out += types_per_step; \ +@@ -377,17 +540,21 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd ++#endif /* __AVXF512__ */ ++#else + #define OP_AVX_AVX512_DOUBLE_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ +- __m256d vecA = _mm256_loadu_pd(in); \ ++ __m256d vecA = _mm256_loadu_pd(in); \ + in += types_per_step; \ +- __m256d vecB = _mm256_loadu_pd(out); \ ++ __m256d vecB = _mm256_loadu_pd(out); \ + __m256d res = _mm256_##op##_pd(vecA, vecB); \ + _mm256_storeu_pd(out, res); \ + out += types_per_step; \ +@@ -395,10 +562,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX_DOUBLE_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE2__ + #define OP_AVX_SSE2_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(double); \ +@@ -412,6 +583,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v + } \ + } + #else ++#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd ++#endif /* __SSE2__ */ ++#else + #define OP_AVX_SSE2_DOUBLE_FUNC(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -580,12 +754,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, + * routines, needed for some optimizations. + */ + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512i vecA = _mm512_loadu_si512(in1); \ +- __m512i vecB = _mm512_loadu_si512(in2); \ ++ __m512i vecA = _mm512_loadu_si512(in1); \ ++ __m512i vecB = _mm512_loadu_si512(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ +@@ -595,10 +770,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ +@@ -607,17 +786,21 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, + __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ +- __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ ++ __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_SSE41) && (1 == OMPI_MCA_OP_HAVE_SSE41) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE3__ && __SSE2__ + #define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ + int types_per_step = (128 / 8) / sizeof(type); \ +@@ -626,12 +809,15 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, + __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ +- __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ ++ __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } + #else ++#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 ++#endif /* __SSE3__ && __SSE2__ */ ++#else + #define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -667,12 +853,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512BW__ && __AVX__ + #define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in1); \ +- __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)in2); \ ++ __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in1); \ ++ __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ +@@ -685,6 +872,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 ++#endif /* __AVX512BW__ && __AVX__ */ ++#else + #define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + /** +@@ -723,12 +913,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512i vecA = _mm512_loadu_si512(in1); \ +- __m512i vecB = _mm512_loadu_si512(in2); \ ++ __m512i vecA = _mm512_loadu_si512(in1); \ ++ __m512i vecB = _mm512_loadu_si512(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i res = _mm512_##op##_si512(vecA, vecB); \ +@@ -738,10 +929,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(type); \ +@@ -750,17 +945,21 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ +- __m256i res = _mm256_##op##_si256(vecA, vecB); \ ++ __m256i res = _mm256_##op##_si256(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE3__ && __SSE2__ + #define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(type); \ +@@ -769,12 +968,15 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re + __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ +- __m128i res = _mm_##op##_si128(vecA, vecB); \ ++ __m128i res = _mm_##op##_si128(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } + #else ++#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 ++#endif /* __SSE3__ && __SSE2__ */ ++#else + #define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -809,12 +1011,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(float); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512 vecA = _mm512_loadu_ps(in1); \ +- __m512 vecB = _mm512_loadu_ps(in2); \ ++ __m512 vecA = _mm512_loadu_ps(in1); \ ++ __m512 vecB = _mm512_loadu_ps(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512 res = _mm512_##op##_ps(vecA, vecB); \ +@@ -824,16 +1027,20 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps ++#endif /* __AVX512F__ */ ++#else + #define OP_AVX_AVX512_FLOAT_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ +- __m256 vecA = _mm256_loadu_ps(in1); \ +- __m256 vecB = _mm256_loadu_ps(in2); \ ++ __m256 vecA = _mm256_loadu_ps(in1); \ ++ __m256 vecB = _mm256_loadu_ps(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256 res = _mm256_##op##_ps(vecA, vecB); \ +@@ -843,10 +1050,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX_FLOAT_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE__ + #define OP_AVX_SSE_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(float); \ +@@ -861,6 +1072,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, + } \ + } + #else ++#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps ++#endif /* __SSE__ */ ++#else + #define OP_AVX_SSE_FLOAT_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +@@ -895,12 +1109,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, + } + + #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) ++#if __AVX512F__ + #define OP_AVX_AVX512_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(double); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ +- __m512d vecA = _mm512_loadu_pd((in1)); \ +- __m512d vecB = _mm512_loadu_pd((in2)); \ ++ __m512d vecA = _mm512_loadu_pd((in1)); \ ++ __m512d vecB = _mm512_loadu_pd((in2)); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512d res = _mm512_##op##_pd(vecA, vecB); \ +@@ -910,16 +1125,20 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd ++#endif /* __AVXF512__ */ ++#else + #define OP_AVX_AVX512_DOUBLE_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + + #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) ++#if __AVX__ + #define OP_AVX_AVX_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ +- __m256d vecA = _mm256_loadu_pd(in1); \ +- __m256d vecB = _mm256_loadu_pd(in2); \ ++ __m256d vecA = _mm256_loadu_pd(in1); \ ++ __m256d vecB = _mm256_loadu_pd(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256d res = _mm256_##op##_pd(vecA, vecB); \ +@@ -929,10 +1148,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, + if( 0 == left_over ) return; \ + } + #else ++#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd ++#endif /* __AVX__ */ ++#else + #define OP_AVX_AVX_DOUBLE_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + + #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) ++#if __SSE2__ + #define OP_AVX_SSE2_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(double); \ +@@ -947,6 +1170,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, + } \ + } + #else ++#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd ++#endif /* __SSE2__ */ ++#else + #define OP_AVX_SSE2_DOUBLE_FUNC_3(op) {} + #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + + +From 20be3fc25713ac2de3eb4d77b85248d7fe2bc28b Mon Sep 17 00:00:00 2001 +From: George Bosilca +Date: Tue, 5 Jan 2021 22:40:26 -0500 +Subject: [PATCH 3/3] A better test for MPI_OP performance. + +The test now has the ability to add a shift to all or to any of the +input and output buffers to assess the impact of unaligned operations. + +Signed-off-by: George Bosilca +--- + test/datatype/reduce_local.c | 161 ++++++++++++++++++++++------------- + 1 file changed, 104 insertions(+), 57 deletions(-) + +diff --git a/test/datatype/reduce_local.c b/test/datatype/reduce_local.c +index 97890f94227..f227439b714 100644 +--- a/test/datatype/reduce_local.c ++++ b/test/datatype/reduce_local.c +@@ -59,7 +59,7 @@ static int total_errors = 0; + _a < _b ? _a : _b; }) + + static void print_status(char* op, char* type, int type_size, +- int count, double duration, ++ int count, int max_shift, double *duration, int repeats, + int correct ) + { + if(correct) { +@@ -68,7 +68,15 @@ static void print_status(char* op, char* type, int type_size, + printf("%-10s %s [\033[1;31mfail\033[0m]", op, type); + total_errors++; + } +- printf(" count %-10d time %.6f seconds\n", count, duration); ++ if( 1 == max_shift ) { ++ printf(" count %-10d time (seconds) %.8f seconds\n", count, duration[0] / repeats); ++ } else { ++ printf(" count %-10d time (seconds / shifts) ", count); ++ for( int i = 0; i < max_shift; i++ ) { ++ printf("%.8f ", duration[i] / repeats ); ++ } ++ printf("\n"); ++ } + } + + static int do_ops_built = 0; +@@ -115,19 +123,23 @@ do { \ + const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ + TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ + skip_op_type = 0; \ +- for(int _k = 0; _k < min((COUNT), 4); +_k++ ) { \ +- memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ +- tstart = MPI_Wtime(); \ +- MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT)-_k, (MPITYPE), (MPIOP)); \ +- tend = MPI_Wtime(); \ +- if( check ) { \ +- for( i = 0; i < (COUNT)-_k; i++ ) { \ +- if(((_p2+_k)[i]) == (((_p1+_k)[i]) OPNAME ((_p3+_k)[i]))) \ +- continue; \ +- printf("First error at alignment %d position %d (%" TYPE_PREFIX " %s %" TYPE_PREFIX " != %" TYPE_PREFIX ")\n", \ +- _k, i, (_p1+_k)[i], (#OPNAME), (_p3+_k)[i], (_p2+_k)[i]); \ +- correctness = 0; \ +- break; \ ++ for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ ++ duration[_k] = 0.0; \ ++ for(int _r = repeats; _r > 0; _r--) { \ ++ memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ ++ tstart = MPI_Wtime(); \ ++ MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT)-_k, (MPITYPE), (MPIOP)); \ ++ tend = MPI_Wtime(); \ ++ duration[_k] += (tend - tstart); \ ++ if( check ) { \ ++ for( i = 0; i < (COUNT)-_k; i++ ) { \ ++ if(((_p2+_k)[i]) == (((_p1+_k)[i]) OPNAME ((_p3+_k)[i]))) \ ++ continue; \ ++ printf("First error at alignment %d position %d (%" TYPE_PREFIX " %s %" TYPE_PREFIX " != %" TYPE_PREFIX ")\n", \ ++ _k, i, (_p1+_k)[i], (#OPNAME), (_p3+_k)[i], (_p2+_k)[i]); \ ++ correctness = 0; \ ++ break; \ ++ } \ + } \ + } \ + } \ +@@ -139,20 +151,24 @@ do { \ + const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ + TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ + skip_op_type = 0; \ +- for(int _k = 0; _k < min((COUNT), 4); +_k++ ) { \ +- memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ +- tstart = MPI_Wtime(); \ +- MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT), (MPITYPE), (MPIOP)); \ +- tend = MPI_Wtime(); \ +- if( check ) { \ +- for( i = 0; i < (COUNT); i++ ) { \ +- TYPE _v1 = *(_p1+_k), _v2 = *(_p2+_k), _v3 = *(_p3+_k); \ +- if(_v2 == OPNAME(_v1, _v3)) \ +- continue; \ +- printf("First error at alignment %d position %d (%" TYPE_PREFIX " != %s(%" TYPE_PREFIX ", %" TYPE_PREFIX ")\n", \ +- _k, i, _v1, (#OPNAME), _v3, _v2); \ +- correctness = 0; \ +- break; \ ++ for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ ++ duration[_k] = 0.0; \ ++ for(int _r = repeats; _r > 0; _r--) { \ ++ memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ ++ tstart = MPI_Wtime(); \ ++ MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT), (MPITYPE), (MPIOP)); \ ++ tend = MPI_Wtime(); \ ++ duration[_k] += (tend - tstart); \ ++ if( check ) { \ ++ for( i = 0; i < (COUNT); i++ ) { \ ++ TYPE _v1 = *(_p1+_k), _v2 = *(_p2+_k), _v3 = *(_p3+_k); \ ++ if(_v2 == OPNAME(_v1, _v3)) \ ++ continue; \ ++ printf("First error at alignment %d position %d (%" TYPE_PREFIX " != %s(%" TYPE_PREFIX ", %" TYPE_PREFIX ")\n", \ ++ _k, i, _v1, (#OPNAME), _v3, _v2); \ ++ correctness = 0; \ ++ break; \ ++ } \ + } \ + } \ + } \ +@@ -163,24 +179,36 @@ int main(int argc, char **argv) + { + static void *in_buf = NULL, *inout_buf = NULL, *inout_check_buf = NULL; + int count, type_size = 8, rank, size, provided, correctness = 1; +- int repeats = 1, i, c; +- double tstart, tend; ++ int repeats = 1, i, c, op1_alignment = 0, res_alignment = 0; ++ int max_shift = 4; ++ double *duration, tstart, tend; + bool check = true; + char type[5] = "uifd", *op = "sum", *mpi_type; + int lower = 1, upper = 1000000, skip_op_type; + MPI_Op mpi_op; + +- while( -1 != (c = getopt(argc, argv, "l:u:t:o:s:n:vfh")) ) { ++ while( -1 != (c = getopt(argc, argv, "l:u:r:t:o:i:s:n:1:2:vfh")) ) { + switch(c) { + case 'l': + lower = atoi(optarg); + if( lower <= 0 ) { +- fprintf(stderr, "The number of elements must be positive\n"); ++ fprintf(stderr, "The lower number of elements must be positive\n"); + exit(-1); + } + break; + case 'u': + upper = atoi(optarg); ++ if( lower <= 0 ) { ++ fprintf(stderr, "The upper number of elements must be positive\n"); ++ exit(-1); ++ } ++ break; ++ case 'i': ++ max_shift = atoi(optarg); ++ if( max_shift <= 0 ) { ++ fprintf(stderr, "The max shift must be positive\n"); ++ exit(-1); ++ } + break; + case 'f': + check = false; +@@ -216,14 +244,32 @@ int main(int argc, char **argv) + exit(-1); + } + break; ++ case '1': ++ op1_alignment = atoi(optarg); ++ if( op1_alignment < 0 ) { ++ fprintf(stderr, "alignment for the first operand must be positive\n"); ++ exit(-1); ++ } ++ break; ++ case '2': ++ res_alignment = atoi(optarg); ++ if( res_alignment < 0 ) { ++ fprintf(stderr, "alignment for the result must be positive\n"); ++ exit(-1); ++ } ++ break; + case 'h': + fprintf(stdout, "%s options are:\n" + " -l : lower number of elements\n" + " -u : upper number of elements\n" + " -s : 8, 16, 32 or 64 bits elements\n" + " -t [i,u,f,d] : type of the elements to apply the operations on\n" ++ " -r : number of repetitions for each test\n" + " -o : comma separated list of operations to execute among\n" + " sum, min, max, prod, bor, bxor, band\n" ++ " -i : shift on all buffers to check alignment\n" ++ " -1 : (mis)alignment in elements for the first op\n" ++ " -2 : (mis)alignment in elements for the result\n" + " -v: increase the verbosity level\n" + " -h: this help message\n", argv[0]); + exit(0); +@@ -233,9 +279,10 @@ int main(int argc, char **argv) + if( !do_ops_built ) { /* not yet done, take the default */ + build_do_ops( "all", do_ops); + } +- in_buf = malloc(upper * sizeof(double)); +- inout_buf = malloc(upper * sizeof(double)); +- inout_check_buf = malloc(upper * sizeof(double)); ++ posix_memalign( &in_buf, 64, (upper + op1_alignment) * sizeof(double)); ++ posix_memalign( &inout_buf, 64, (upper + res_alignment) * sizeof(double)); ++ posix_memalign( &inout_check_buf, 64, upper * sizeof(double)); ++ duration = (double*)malloc(max_shift * sizeof(double)); + + ompi_mpi_init(argc, argv, MPI_THREAD_SERIALIZED, &provided, false); + +@@ -253,8 +300,8 @@ int main(int argc, char **argv) + correctness = 1; + if('i' == type[type_idx]) { + if( 8 == type_size ) { +- int8_t *in_int8 = (int8_t*)in_buf, +- *inout_int8 = (int8_t*)inout_buf, ++ int8_t *in_int8 = (int8_t*)((char*)in_buf + op1_alignment * sizeof(int8_t)), ++ *inout_int8 = (int8_t*)((char*)inout_buf + res_alignment * sizeof(int8_t)), + *inout_int8_for_check = (int8_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int8[i] = 5; +@@ -299,8 +346,8 @@ int main(int argc, char **argv) + } + } + if( 16 == type_size ) { +- int16_t *in_int16 = (int16_t*)in_buf, +- *inout_int16 = (int16_t*)inout_buf, ++ int16_t *in_int16 = (int16_t*)((char*)in_buf + op1_alignment * sizeof(int16_t)), ++ *inout_int16 = (int16_t*)((char*)inout_buf + res_alignment * sizeof(int16_t)), + *inout_int16_for_check = (int16_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int16[i] = 5; +@@ -345,8 +392,8 @@ int main(int argc, char **argv) + } + } + if( 32 == type_size ) { +- int32_t *in_int32 = (int32_t*)in_buf, +- *inout_int32 = (int32_t*)inout_buf, ++ int32_t *in_int32 = (int32_t*)((char*)in_buf + op1_alignment * sizeof(int32_t)), ++ *inout_int32 = (int32_t*)((char*)inout_buf + res_alignment * sizeof(int32_t)), + *inout_int32_for_check = (int32_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int32[i] = 5; +@@ -391,8 +438,8 @@ int main(int argc, char **argv) + } + } + if( 64 == type_size ) { +- int64_t *in_int64 = (int64_t*)in_buf, +- *inout_int64 = (int64_t*)inout_buf, ++ int64_t *in_int64 = (int64_t*)((char*)in_buf + op1_alignment * sizeof(int64_t)), ++ *inout_int64 = (int64_t*)((char*)inout_buf + res_alignment * sizeof(int64_t)), + *inout_int64_for_check = (int64_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int64[i] = 5; +@@ -440,8 +487,8 @@ int main(int argc, char **argv) + + if( 'u' == type[type_idx] ) { + if( 8 == type_size ) { +- uint8_t *in_uint8 = (uint8_t*)in_buf, +- *inout_uint8 = (uint8_t*)inout_buf, ++ uint8_t *in_uint8 = (uint8_t*)((char*)in_buf + op1_alignment * sizeof(uint8_t)), ++ *inout_uint8 = (uint8_t*)((char*)inout_buf + res_alignment * sizeof(uint8_t)), + *inout_uint8_for_check = (uint8_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint8[i] = 5; +@@ -486,8 +533,8 @@ int main(int argc, char **argv) + } + } + if( 16 == type_size ) { +- uint16_t *in_uint16 = (uint16_t*)in_buf, +- *inout_uint16 = (uint16_t*)inout_buf, ++ uint16_t *in_uint16 = (uint16_t*)((char*)in_buf + op1_alignment * sizeof(uint16_t)), ++ *inout_uint16 = (uint16_t*)((char*)inout_buf + res_alignment * sizeof(uint16_t)), + *inout_uint16_for_check = (uint16_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint16[i] = 5; +@@ -532,8 +579,8 @@ int main(int argc, char **argv) + } + } + if( 32 == type_size ) { +- uint32_t *in_uint32 = (uint32_t*)in_buf, +- *inout_uint32 = (uint32_t*)inout_buf, ++ uint32_t *in_uint32 = (uint32_t*)((char*)in_buf + op1_alignment * sizeof(uint32_t)), ++ *inout_uint32 = (uint32_t*)((char*)inout_buf + res_alignment * sizeof(uint32_t)), + *inout_uint32_for_check = (uint32_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint32[i] = 5; +@@ -578,8 +625,8 @@ int main(int argc, char **argv) + } + } + if( 64 == type_size ) { +- uint64_t *in_uint64 = (uint64_t*)in_buf, +- *inout_uint64 = (uint64_t*)inout_buf, ++ uint64_t *in_uint64 = (uint64_t*)((char*)in_buf + op1_alignment * sizeof(uint64_t)), ++ *inout_uint64 = (uint64_t*)((char*)inout_buf + res_alignment * sizeof(uint64_t)), + *inout_uint64_for_check = (uint64_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint64[i] = 5; +@@ -626,8 +673,8 @@ int main(int argc, char **argv) + } + + if( 'f' == type[type_idx] ) { +- float *in_float = (float*)in_buf, +- *inout_float = (float*)inout_buf, ++ float *in_float = (float*)((char*)in_buf + op1_alignment * sizeof(float)), ++ *inout_float = (float*)((char*)inout_buf + res_alignment * sizeof(float)), + *inout_float_for_check = (float*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_float[i] = 1000.0+1; +@@ -658,8 +705,8 @@ int main(int argc, char **argv) + } + + if( 'd' == type[type_idx] ) { +- double *in_double = (double*)in_buf, +- *inout_double = (double*)inout_buf, ++ double *in_double = (double*)((char*)in_buf + op1_alignment * sizeof(double)), ++ *inout_double = (double*)((char*)inout_buf + res_alignment * sizeof(double)), + *inout_double_for_check = (double*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_double[i] = 10.0+1; +@@ -691,7 +738,7 @@ int main(int argc, char **argv) + check_and_continue: + if( !skip_op_type ) + print_status(array_of_ops[do_ops[op_idx]].mpi_op_name, +- mpi_type, type_size, count, tend-tstart, correctness); ++ mpi_type, type_size, count, max_shift, duration, repeats, correctness); + } + if( !skip_op_type ) + printf("\n"); diff --git a/openmpi.spec b/openmpi.spec index b20f2d8..3422551 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -25,9 +25,13 @@ %bcond_without rdma %endif +# Run autogen - needed for some patches +# For Patch0 +%bcond_without autogen + Name: openmpi%{?_cc_name_suffix} Version: 4.1.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -39,9 +43,17 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +# Fix AVX library linkage +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8322.patch + BuildRequires: make BuildRequires: gcc-c++ BuildRequires: gcc-gfortran +%if %{with autogen} +BuildRequires: libtool +BuildRequires: perl(Data::Dumper) +BuildRequires: perl(File::Find) +%endif BuildRequires: valgrind-devel %if %{with rdma} BuildRequires: opensm-devel > 3.3.0 @@ -161,6 +173,10 @@ OpenMPI support for Python 3. %prep %autosetup -p1 +%if %{with autogen} +./autogen.pl --force +%endif + %build %set_build_flags @@ -345,6 +361,9 @@ make check %changelog +* Thu Jan 28 2021 Orion Poplawski - 4.1.0-4 +- Add upstream patch to fix AVX library linkage + * Tue Jan 26 2021 Fedora Release Engineering - 4.1.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 8463f8f82fce9d80bf04e9ccb6e2b1e41ddbc1dc Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 27 Jan 2021 21:05:01 -0700 Subject: [PATCH 065/139] Whitespace --- openmpi.spec | 110 +++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 3422551..92e74fe 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -29,79 +29,79 @@ # For Patch0 %bcond_without autogen -Name: openmpi%{?_cc_name_suffix} -Version: 4.1.0 -Release: 4%{?dist} -Summary: Open Message Passing Interface -License: BSD and MIT and Romio -URL: http://www.open-mpi.org/ +Name: openmpi%{?_cc_name_suffix} +Version: 4.1.0 +Release: 4%{?dist} +Summary: Open Message Passing Interface +License: BSD and MIT and Romio +URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 -Source1: openmpi.module.in -Source2: openmpi.pth.py2 -Source3: openmpi.pth.py3 -Source4: macros.openmpi +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 +Source1: openmpi.module.in +Source2: openmpi.pth.py2 +Source3: openmpi.pth.py3 +Source4: macros.openmpi # Fix AVX library linkage Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8322.patch -BuildRequires: make -BuildRequires: gcc-c++ -BuildRequires: gcc-gfortran +BuildRequires: gcc-c++ +BuildRequires: gcc-gfortran +BuildRequires: make %if %{with autogen} -BuildRequires: libtool -BuildRequires: perl(Data::Dumper) -BuildRequires: perl(File::Find) +BuildRequires: libtool +BuildRequires: perl(Data::Dumper) +BuildRequires: perl(File::Find) %endif -BuildRequires: valgrind-devel +BuildRequires: valgrind-devel %if %{with rdma} -BuildRequires: opensm-devel > 3.3.0 -BuildRequires: rdma-core-devel +BuildRequires: opensm-devel > 3.3.0 +BuildRequires: rdma-core-devel %endif # Doesn't compile: # vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead' # loop->getLoopHead()->getStartAddress(), loop_stmts ); -#BuildRequires: dyninst-devel -BuildRequires: hwloc-devel +#BuildRequires: dyninst-devel +BuildRequires: hwloc-devel # So configure can find lstopo -BuildRequires: hwloc-gui -BuildRequires: java-devel +BuildRequires: hwloc-gui +BuildRequires: java-devel # Old libevent causes issues %if !0%{?el7} -BuildRequires: libevent-devel +BuildRequires: libevent-devel %endif -BuildRequires: libfabric-devel +BuildRequires: libfabric-devel %ifnarch s390 s390x -BuildRequires: papi-devel +BuildRequires: papi-devel %endif -BuildRequires: orangefs-devel -BuildRequires: perl-generators -BuildRequires: perl-interpreter -BuildRequires: perl(Getopt::Long) -BuildRequires: pmix-devel -BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: orangefs-devel +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Getopt::Long) +BuildRequires: pmix-devel +BuildRequires: python%{python3_pkgversion}-devel %ifarch x86_64 -BuildRequires: infinipath-psm-devel -BuildRequires: libpsm2-devel +BuildRequires: infinipath-psm-devel +BuildRequires: libpsm2-devel %endif %if %{with ucx} -BuildRequires: ucx-devel +BuildRequires: ucx-devel %endif -BuildRequires: zlib-devel +BuildRequires: zlib-devel %if !0%{?el7} -BuildRequires: rpm-mpi-hooks +BuildRequires: rpm-mpi-hooks %endif -Provides: mpi +Provides: mpi %if 0%{?rhel} # Need this for /etc/profile.d/modules.sh -Requires: environment-modules +Requires: environment-modules %endif -Requires: environment(modules) +Requires: environment(modules) # openmpi currently requires ssh to run # https://svn.open-mpi.org/trac/ompi/ticket/4228 -Requires: openssh-clients +Requires: openssh-clients # Private openmpi libraries %global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so @@ -132,17 +132,17 @@ Requires: (python(abi) = %{python3_version} if python3) Contains development headers and libraries for openmpi. %package java -Summary: Java library -Requires: %{name} = %{version}-%{release} -Requires: java-headless +Summary: Java library +Requires: %{name} = %{version}-%{release} +Requires: java-headless %description java Java library. %package java-devel -Summary: Java development files for openmpi -Requires: %{name}-java = %{version}-%{release} -Requires: java-devel +Summary: Java development files for openmpi +Requires: %{name}-java = %{version}-%{release} +Requires: java-devel %description java-devel Contains development wrapper for compiling Java with openmpi. @@ -153,19 +153,19 @@ Contains development wrapper for compiling Java with openmpi. %if %{with python2} %package -n python2-openmpi -Summary: OpenMPI support for Python 2 -BuildRequires: python2-devel -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python2_version} +Summary: OpenMPI support for Python 2 +BuildRequires: python2-devel +Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python2_version} %description -n python2-openmpi OpenMPI support for Python 2. %endif %package -n python%{python3_pkgversion}-openmpi -Summary: OpenMPI support for Python 3 -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python3_version} +Summary: OpenMPI support for Python 3 +Requires: %{name} = %{version}-%{release} +Requires: python(abi) = %{python3_version} %description -n python%{python3_pkgversion}-openmpi OpenMPI support for Python 3. From 8fc779b59b264ddd141f811bbb22d2e83ee3e517 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 28 Jan 2021 08:28:30 -0700 Subject: [PATCH 066/139] Add upstream patch for generalized requests --- 8348.patch | 25 +++++++++++++++++++++++++ openmpi.spec | 9 +++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 8348.patch diff --git a/8348.patch b/8348.patch new file mode 100644 index 0000000..89d5fd7 --- /dev/null +++ b/8348.patch @@ -0,0 +1,25 @@ +From 838568da9fce85b4555b0e0cbd899c8e8ef75696 Mon Sep 17 00:00:00 2001 +From: George Bosilca +Date: Wed, 6 Jan 2021 13:30:40 -0500 +Subject: [PATCH] A started generalized request should be marked as pending. + +Fixes #8340 + +Signed-off-by: George Bosilca +(cherry picked from commit 434a2515f8aab11f505b2fca0b3d8cc41e24cef2) +--- + ompi/request/grequest.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ompi/request/grequest.c b/ompi/request/grequest.c +index c895b4232b6..02affd642aa 100644 +--- a/ompi/request/grequest.c ++++ b/ompi/request/grequest.c +@@ -163,6 +163,7 @@ int ompi_grequest_start( + greq->greq_free.c_free = gfree_fn; + greq->greq_cancel.c_cancel = gcancel_fn; + greq->greq_base.req_status = ompi_status_empty; ++ greq->greq_base.req_complete = REQUEST_PENDING; + + *request = &greq->greq_base; + return OMPI_SUCCESS; diff --git a/openmpi.spec b/openmpi.spec index 92e74fe..52b5fcc 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -31,7 +31,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -44,7 +44,9 @@ Source3: openmpi.pth.py3 Source4: macros.openmpi # Fix AVX library linkage -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8322.patch +Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8322.patch +# Fix generalized requests (mpi4py test failure) +Patch1: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8348.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -361,6 +363,9 @@ make check %changelog +* Thu Jan 28 2021 Orion Poplawski - 4.1.0-5 +- Add upstream patch for generalized requests + * Thu Jan 28 2021 Orion Poplawski - 4.1.0-4 - Add upstream patch to fix AVX library linkage From 059848ce5b52a7bf13eef568c481a77fad509e74 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 10 Feb 2021 18:46:56 -0700 Subject: [PATCH 067/139] Update to 4.1.1rc1 --- .gitignore | 1 + 8322.patch | 1682 -------------------------------------------------- 8348.patch | 25 - openmpi.spec | 19 +- sources | 2 +- 5 files changed, 10 insertions(+), 1719 deletions(-) delete mode 100644 8322.patch delete mode 100644 8348.patch diff --git a/.gitignore b/.gitignore index 104cfac..42e33b3 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.4.tar.bz2 /openmpi-4.0.5.tar.bz2 /openmpi-4.1.0.tar.bz2 +/openmpi-4.1.1rc1.tar.bz2 diff --git a/8322.patch b/8322.patch deleted file mode 100644 index 8c04e5d..0000000 --- a/8322.patch +++ /dev/null @@ -1,1682 +0,0 @@ -From 31068e063b8795ae11f3a59d4080db1fe111cfaf Mon Sep 17 00:00:00 2001 -From: George Bosilca -Date: Mon, 28 Dec 2020 15:36:05 -0500 -Subject: [PATCH 1/3] Major update to the AVX* detection and support - -1. Consistent march flag order between configure and make. - -2. op/avx: give the option to skip some tests - -it is possible to skip some intrinsic tests by setting some environment variables to "no" before invoking configure: - - ompi_cv_op_avx_check_avx512 - - ompi_cv_op_avx_check_avx2 - - ompi_cv_op_avx_check_avx - - ompi_cv_op_avx_check_sse41 - - ompi_cv_op_avx_check_sse3 - -3. op/avx: update AVX512 flags - -try --mavx512f -mavx512bw -mavx512vl -mavx512dq -instead of --march=skylake-avx512 - -since the former is less likely to conflict with user provided CFLAGS -(e.g. -march=...) - -Thanks Bart Oldeman for pointing this. - -4. op/avx: have the op/avx library depend on libmpi.so - -Refs. open-mpi/ompi#8323 - -Signed-off-by: Gilles Gouaillardet -Signed-off-by: George Bosilca ---- - ompi/mca/op/avx/Makefile.am | 4 +- - ompi/mca/op/avx/configure.m4 | 325 ++++++++++++++++++----------------- - 2 files changed, 174 insertions(+), 155 deletions(-) - -diff --git a/ompi/mca/op/avx/Makefile.am b/ompi/mca/op/avx/Makefile.am -index 41dcf2e1834..b1d84d90b33 100644 ---- a/ompi/mca/op/avx/Makefile.am -+++ b/ompi/mca/op/avx/Makefile.am -@@ -2,7 +2,7 @@ - # Copyright (c) 2019-2020 The University of Tennessee and The University - # of Tennessee Research Foundation. All rights - # reserved. --# Copyright (c) 2020 Research Organization for Information Science -+# Copyright (c) 2020-2021 Research Organization for Information Science - # and Technology (RIST). All rights reserved. - # $COPYRIGHT$ - # -@@ -86,7 +86,7 @@ mcacomponentdir = $(ompilibdir) - mcacomponent_LTLIBRARIES = $(component_install) - mca_op_avx_la_SOURCES = $(sources) - mca_op_avx_la_LIBADD = $(specialized_op_libs) --mca_op_avx_la_LDFLAGS = -module -avoid-version -+mca_op_avx_la_LDFLAGS = -module -avoid-version $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la - - - # Specific information for static builds. -diff --git a/ompi/mca/op/avx/configure.m4 b/ompi/mca/op/avx/configure.m4 -index 09d8b374c8e..f61b7100ef4 100644 ---- a/ompi/mca/op/avx/configure.m4 -+++ b/ompi/mca/op/avx/configure.m4 -@@ -29,6 +29,13 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - op_avx_support=0 - op_avx2_support=0 - op_avx512_support=0 -+ -+ AS_VAR_PUSHDEF([op_avx_check_sse3], [ompi_cv_op_avx_check_sse3]) -+ AS_VAR_PUSHDEF([op_avx_check_sse41], [ompi_cv_op_avx_check_sse41]) -+ AS_VAR_PUSHDEF([op_avx_check_avx], [ompi_cv_op_avx_check_avx]) -+ AS_VAR_PUSHDEF([op_avx_check_avx2], [ompi_cv_op_avx_check_avx2]) -+ AS_VAR_PUSHDEF([op_avx_check_avx512], [ompi_cv_op_avx_check_avx512]) -+ - OPAL_VAR_SCOPE_PUSH([op_avx_cflags_save]) - - AS_IF([test "$opal_cv_asm_arch" = "X86_64"], -@@ -37,21 +44,9 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # - # Check for AVX512 support - # -- AC_MSG_CHECKING([for AVX512 support (no additional flags)]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -- __m512 vA, vB; -- _mm512_add_ps(vA, vB) -- ]])], -- [op_avx512_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- -- AS_IF([test $op_avx512_support -eq 0], -- [AC_MSG_CHECKING([for AVX512 support (with -march=skylake-avx512)]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS -march=skylake-avx512" -+ AC_CACHE_CHECK([if we are checking for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) -+ AS_IF([test "$op_avx_check_avx512" = "yes"], -+ [AC_MSG_CHECKING([for AVX512 support (no additional flags)]) - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ -@@ -59,99 +54,115 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - _mm512_add_ps(vA, vB) - ]])], - [op_avx512_support=1 -- MCA_BUILD_OP_AVX512_FLAGS="-march=skylake-avx512" - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) -- CFLAGS="$op_avx_cflags_save" -- ]) -- # -- # Some combination of gcc and older as would not correctly build the code generated by -- # _mm256_loadu_si256. Screen them out. -- # -- AS_IF([test $op_avx512_support -eq 1], -- [AC_MSG_CHECKING([if _mm512_loadu_si512 generates code that can be compiled]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ -+ AS_IF([test $op_avx512_support -eq 0], -+ [AC_MSG_CHECKING([for AVX512 support (with -mavx512f -mavx512bw -mavx512vl -mavx512dq)]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq $CFLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ -+ __m512 vA, vB; -+ _mm512_add_ps(vA, vB) -+ ]])], -+ [op_avx512_support=1 -+ MCA_BUILD_OP_AVX512_FLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq" -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])]) -+ CFLAGS="$op_avx_cflags_save" -+ ]) -+ # -+ # Some combination of gcc and older as would not correctly build the code generated by -+ # _mm256_loadu_si256. Screen them out. -+ # -+ AS_IF([test $op_avx512_support -eq 1], -+ [AC_MSG_CHECKING([if _mm512_loadu_si512 generates code that can be compiled]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; - __m512i vA = _mm512_loadu_si512((__m512i*)&(A[1])) -- ]])], -- [AC_MSG_RESULT([yes])], -- [op_avx512_support=0 -- MCA_BUILD_OP_AVX512_FLAGS="" -- AC_MSG_RESULT([no])]) -- CFLAGS="$op_avx_cflags_save" -- ]) -- # -- # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. -- # -- AS_IF([test $op_avx512_support -eq 1], -- [AC_MSG_CHECKING([if _mm512_mullo_epi64 generates code that can be compiled]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ ]])], -+ [AC_MSG_RESULT([yes])], -+ [op_avx512_support=0 -+ MCA_BUILD_OP_AVX512_FLAGS="" -+ AC_MSG_RESULT([no])]) -+ CFLAGS="$op_avx_cflags_save" -+ ]) -+ # -+ # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. -+ # -+ AS_IF([test $op_avx512_support -eq 1], -+ [AC_MSG_CHECKING([if _mm512_mullo_epi64 generates code that can be compiled]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m512i vA, vB; - _mm512_mullo_epi64(vA, vB) -- ]])], -- [AC_MSG_RESULT([yes])], -- [op_avx512_support=0 -- MCA_BUILD_OP_AVX512_FLAGS="" -- AC_MSG_RESULT([no])]) -- CFLAGS="$op_avx_cflags_save" -- ]) -+ ]])], -+ [AC_MSG_RESULT([yes])], -+ [op_avx512_support=0 -+ MCA_BUILD_OP_AVX512_FLAGS="" -+ AC_MSG_RESULT([no])]) -+ CFLAGS="$op_avx_cflags_save" -+ ])]) - # - # Check support for AVX2 - # -- AC_MSG_CHECKING([for AVX2 support (no additional flags)]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ AC_CACHE_CHECK([if we are checking for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) -+ AS_IF([test "$op_avx_check_avx2" = "yes"], -+ [AC_MSG_CHECKING([for AVX2 support (no additional flags)]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m256 vA, vB; - _mm256_add_ps(vA, vB) -- ]])], -- [op_avx2_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- AS_IF([test $op_avx2_support -eq 0], -- [AC_MSG_CHECKING([for AVX2 support (with -mavx2)]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS -mavx2" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ ]])], -+ [op_avx2_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])]) -+ AS_IF([test $op_avx2_support -eq 0], -+ [AC_MSG_CHECKING([for AVX2 support (with -mavx2)]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="-mavx2 $CFLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m256 vA, vB; - _mm256_add_ps(vA, vB) -- ]])], -- [op_avx2_support=1 -- MCA_BUILD_OP_AVX2_FLAGS="-mavx2" -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- CFLAGS="$op_avx_cflags_save" -- ]) -- # -- # Some combination of gcc and older as would not correctly build the code generated by -- # _mm256_loadu_si256. Screen them out. -- # -- AS_IF([test $op_avx2_support -eq 1], -- [AC_MSG_CHECKING([if _mm256_loadu_si256 generates code that can be compiled]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ ]])], -+ [op_avx2_support=1 -+ MCA_BUILD_OP_AVX2_FLAGS="-mavx2" -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])]) -+ CFLAGS="$op_avx_cflags_save" -+ ]) -+ # -+ # Some combination of gcc and older as would not correctly build the code generated by -+ # _mm256_loadu_si256. Screen them out. -+ # -+ AS_IF([test $op_avx2_support -eq 1], -+ [AC_MSG_CHECKING([if _mm256_loadu_si256 generates code that can be compiled]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - int A[8] = {0, 1, 2, 3, 4, 5, 6, 7}; - __m256i vA = _mm256_loadu_si256((__m256i*)&A) -- ]])], -- [AC_MSG_RESULT([yes])], -- [op_avx2_support=0 -- MCA_BUILD_OP_AVX2_FLAGS="" -- AC_MSG_RESULT([no])]) -- CFLAGS="$op_avx_cflags_save" -- ]) -+ ]])], -+ [AC_MSG_RESULT([yes])], -+ [op_avx2_support=0 -+ MCA_BUILD_OP_AVX2_FLAGS="" -+ AC_MSG_RESULT([no])]) -+ CFLAGS="$op_avx_cflags_save" -+ ])]) - # - # What about early AVX support. The rest of the logic is slightly different as - # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check -@@ -160,90 +171,92 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 - # instructions. - # -- AC_MSG_CHECKING([for AVX support (no additional flags)]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ AC_CACHE_CHECK([if we are checking for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) -+ AS_IF([test "$op_avx_check_avx" = "yes"], -+ [AC_MSG_CHECKING([for AVX support (no additional flags)]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m128 vA, vB; - _mm_add_ps(vA, vB) -- ]])], -- [op_avx_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -+ ]])], -+ [op_avx_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])])]) - # - # Check for SSE4.1 support - # -- AS_IF([test $op_avx_support -eq 1], -- [AC_MSG_CHECKING([for SSE4.1 support]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ AC_CACHE_CHECK([if we are checking for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) -+ AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse41" = "yes"], -+ [AC_MSG_CHECKING([for SSE4.1 support]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m128i vA, vB; - (void)_mm_max_epi8(vA, vB) -- ]])], -- [op_sse41_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- ]) -+ ]])], -+ [op_sse41_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])]) -+ ]) - # - # Check for SSE3 support - # -- AS_IF([test $op_avx_support -eq 1], -- [AC_MSG_CHECKING([for SSE3 support]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ AC_CACHE_CHECK([if we are checking for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) -+ AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse3" = "yes"], -+ [AC_MSG_CHECKING([for SSE3 support]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - int A[4] = {0, 1, 2, 3}; - __m128i vA = _mm_lddqu_si128((__m128i*)&A) -- ]])], -- [op_sse3_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- ]) -+ ]])], -+ [op_sse3_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])]) -+ ]) - # Second pass, do we need to add the AVX flag ? - AS_IF([test $op_avx_support -eq 0 || test $op_sse41_support -eq 0 || test $op_sse3_support -eq 0], -- [AC_MSG_CHECKING([for AVX support (with -mavx)]) -- op_avx_cflags_save="$CFLAGS" -- CFLAGS="$CFLAGS -mavx" -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ [AS_IF([test "$op_avx_check_avx" = "yes"], -+ [AC_MSG_CHECKING([for AVX support (with -mavx)]) -+ op_avx_cflags_save="$CFLAGS" -+ CFLAGS="-mavx $CFLAGS" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m128 vA, vB; - _mm_add_ps(vA, vB) - ]])], -- [op_avx_support=1 -- MCA_BUILD_OP_AVX_FLAGS="-mavx" -- op_sse41_support=0 -- op_sse3_support=0 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -+ [op_avx_support=1 -+ MCA_BUILD_OP_AVX_FLAGS="-mavx" -+ op_sse41_support=0 -+ op_sse3_support=0 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])])]) - -- AS_IF([test $op_sse41_support -eq 0], -- [AC_MSG_CHECKING([for SSE4.1 support]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -- [[ -+ AS_IF([test "$op_avx_check_sse41" = "yes" && test $op_sse41_support -eq 0], -+ [AC_MSG_CHECKING([for SSE4.1 support]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], -+ [[ - __m128i vA, vB; - (void)_mm_max_epi8(vA, vB) -- ]])], -- [op_sse41_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- ]) -- AS_IF([test $op_sse3_support -eq 0], -- [AC_MSG_CHECKING([for SSE3 support]) -- AC_LINK_IFELSE( -- [AC_LANG_PROGRAM([[#include ]], -+ ]])], -+ [op_sse41_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])])]) -+ AS_IF([test "$op_avx_check_sse3" = "yes" && test $op_sse3_support -eq 0], -+ [AC_MSG_CHECKING([for SSE3 support]) -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM([[#include ]], - [[ - int A[4] = {0, 1, 2, 3}; - __m128i vA = _mm_lddqu_si128((__m128i*)&A) - ]])], -- [op_sse3_support=1 -- AC_MSG_RESULT([yes])], -- [AC_MSG_RESULT([no])]) -- ]) -- CFLAGS="$op_avx_cflags_save" -- ]) -+ [op_sse3_support=1 -+ AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no])])]) -+ CFLAGS="$op_avx_cflags_save"]) - - AC_LANG_POP([C]) - ]) -@@ -276,6 +289,12 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - AC_SUBST(MCA_BUILD_OP_AVX2_FLAGS) - AC_SUBST(MCA_BUILD_OP_AVX_FLAGS) - -+ AS_VAR_POPDEF([op_avx_check_avx512]) -+ AS_VAR_POPDEF([op_avx_check_avx2]) -+ AS_VAR_POPDEF([op_avx_check_avx]) -+ AS_VAR_POPDEF([op_avx_check_sse41]) -+ AS_VAR_POPDEF([op_avx_check_sse3]) -+ - OPAL_VAR_SCOPE_POP - # Enable this component iff we have at least the most basic form of support - # for vectorial ISA - -From fcf2766a03e3c2a1001679013878209bcddd50ae Mon Sep 17 00:00:00 2001 -From: George Bosilca -Date: Mon, 28 Dec 2020 12:18:07 -0500 -Subject: [PATCH 2/3] AVX code generation improvements - -1. Allow fallback to a lesser AVX support during make - -Due to the fact that some distro restrict the compiule architecture -during make (while not setting any restrictions during configure) we -need to detect the target architecture also during make in order to -restrict the code we generate. - -2. Add comments and better protect the arch specific code. - -Identify all the vectorial functions used and clasify them according to -the neccesary hardware capabilities. -Use these requirements to protect the code for load and stores (the rest -of the code being automatically generated it is more difficult to -protect). - -3. Correctly check for AVX* support. - -Signed-off-by: George Bosilca ---- - ompi/mca/op/avx/configure.m4 | 28 +-- - ompi/mca/op/avx/op_avx_functions.c | 322 ++++++++++++++++++++++++----- - 2 files changed, 288 insertions(+), 62 deletions(-) - -diff --git a/ompi/mca/op/avx/configure.m4 b/ompi/mca/op/avx/configure.m4 -index f61b7100ef4..f3651f09d43 100644 ---- a/ompi/mca/op/avx/configure.m4 -+++ b/ompi/mca/op/avx/configure.m4 -@@ -44,7 +44,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # - # Check for AVX512 support - # -- AC_CACHE_CHECK([if we are checking for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) -+ AC_CACHE_CHECK([for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) - AS_IF([test "$op_avx_check_avx512" = "yes"], - [AC_MSG_CHECKING([for AVX512 support (no additional flags)]) - AC_LINK_IFELSE( -@@ -115,14 +115,14 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # - # Check support for AVX2 - # -- AC_CACHE_CHECK([if we are checking for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) -+ AC_CACHE_CHECK([for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) - AS_IF([test "$op_avx_check_avx2" = "yes"], - [AC_MSG_CHECKING([for AVX2 support (no additional flags)]) - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ -- __m256 vA, vB; -- _mm256_add_ps(vA, vB) -+ __m256i vA, vB, vC; -+ vC = _mm256_and_si256(vA, vB) - ]])], - [op_avx2_support=1 - AC_MSG_RESULT([yes])], -@@ -134,8 +134,8 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ -- __m256 vA, vB; -- _mm256_add_ps(vA, vB) -+ __m256i vA, vB, vC; -+ vC = _mm256_and_si256(vA, vB) - ]])], - [op_avx2_support=1 - MCA_BUILD_OP_AVX2_FLAGS="-mavx2" -@@ -164,21 +164,21 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - CFLAGS="$op_avx_cflags_save" - ])]) - # -- # What about early AVX support. The rest of the logic is slightly different as -+ # What about early AVX support? The rest of the logic is slightly different as - # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check - # if we can compile AVX code without a flag, then we validate that we have support - # for the SSE4.1 and SSE3 instructions we need. If not, we check for the usage of - # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 - # instructions. - # -- AC_CACHE_CHECK([if we are checking for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) -+ AC_CACHE_CHECK([for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) - AS_IF([test "$op_avx_check_avx" = "yes"], - [AC_MSG_CHECKING([for AVX support (no additional flags)]) - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ -- __m128 vA, vB; -- _mm_add_ps(vA, vB) -+ __m256 vA, vB, vC; -+ vC = _mm256_add_ps(vA, vB) - ]])], - [op_avx_support=1 - AC_MSG_RESULT([yes])], -@@ -186,7 +186,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # - # Check for SSE4.1 support - # -- AC_CACHE_CHECK([if we are checking for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) -+ AC_CACHE_CHECK([for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) - AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse41" = "yes"], - [AC_MSG_CHECKING([for SSE4.1 support]) - AC_LINK_IFELSE( -@@ -202,7 +202,7 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - # - # Check for SSE3 support - # -- AC_CACHE_CHECK([if we are checking for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) -+ AC_CACHE_CHECK([for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) - AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse3" = "yes"], - [AC_MSG_CHECKING([for SSE3 support]) - AC_LINK_IFELSE( -@@ -224,8 +224,8 @@ AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include ]], - [[ -- __m128 vA, vB; -- _mm_add_ps(vA, vB) -+ __m256 vA, vB, vC; -+ vC = _mm256_add_ps(vA, vB) - ]])], - [op_avx_support=1 - MCA_BUILD_OP_AVX_FLAGS="-mavx" -diff --git a/ompi/mca/op/avx/op_avx_functions.c b/ompi/mca/op/avx/op_avx_functions.c -index 95a9c9ab84e..ef3f0932906 100644 ---- a/ompi/mca/op/avx/op_avx_functions.c -+++ b/ompi/mca/op/avx/op_avx_functions.c -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2019-2020 The University of Tennessee and The University -+ * Copyright (c) 2019-2021 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2020 Research Organization for Information Science -@@ -24,16 +24,42 @@ - #include "ompi/mca/op/avx/op_avx.h" - - #include -- -+/** -+ * The following logic is necessary to cope with distro maintainer's desire to change the compilation -+ * flags after the configure step, leading to inconsistencies between what OMPI has detected and what -+ * code can be generated during make. If we detect that the current code generation architecture has -+ * been changed from our own setting and cannot generate the code we need (AVX512, AVX2) we fall back -+ * to a lesser support (AVX512 -> AVX2, AVX2 -> AVX, AVX -> error out). -+ */ - #if defined(GENERATE_AVX512_CODE) --#define PREPEND _avx512 --#elif defined(GENERATE_AVX2_CODE) --#define PREPEND _avx2 --#elif defined(GENERATE_AVX_CODE) --#define PREPEND _avx --#else --#error This file should not be compiled in this conditions --#endif -+# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) -+# define PREPEND _avx512 -+# else -+# undef GENERATE_AVX512_CODE -+# endif /* defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) */ -+#endif /* defined(GENERATE_AVX512_CODE) */ -+ -+#if !defined(PREPEND) && defined(GENERATE_AVX2_CODE) -+# if defined(__AVX2__) -+# define PREPEND _avx2 -+# else -+# undef GENERATE_AVX2_CODE -+# endif /* defined(__AVX2__) */ -+#endif /* !defined(PREPEND) && defined(GENERATE_AVX2_CODE) */ -+ -+#if !defined(PREPEND) && defined(GENERATE_AVX_CODE) -+# if defined(__AVX__) -+# define PREPEND _avx -+# endif -+#endif /* !defined(PREPEND) && defined(GENERATE_AVX_CODE) */ -+ -+#if !defined(PREPEND) -+# if OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 -+# error The configure step has detected possible support for AVX512 and/or AVX2 but the compiler flags during make are too restrictive. Please disable the AVX component by adding --enable-mca-no-build=op-avx to your configure step. -+# else -+# error This file should not be compiled in this conditions. Please provide the config.log file to the OMPI developers. -+# endif /* OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 */ -+#endif /* !defined(PREPEND) */ - - /* - * Concatenate preprocessor tokens A and B without expanding macro definitions -@@ -46,6 +72,102 @@ - */ - #define OP_CONCAT(A, B) OP_CONCAT_NX(A, B) - -+/* -+ * grep -e "_mm[125][251][862]_.*(" avx512.c -o | sed 's/(//g' | sort | uniq -+ * -+ * https://software.intel.com/sites/landingpage/IntrinsicsGuide -+ * -+ * _mm_add_epi[8,16,32,64] SSE2 -+ * _mm_add_pd SSE2 -+ * _mm_add_ps SSE -+ * _mm_adds_epi[8,16] SSE2 -+ * _mm_adds_epu[8,16] SSE2 -+ * _mm_and_si128 SSE2 -+ * _mm_lddqu_si128 SSE3 -+ * _mm_loadu_pd SSE2 -+ * _mm_loadu_ps SSE -+ * _mm_max_epi8 SSE4.1 -+ * _mm_max_epi16 SSE2 -+ * _mm_max_epi32 SSE4.1 -+ * _mm_max_epi64 AVX512VL + AVX512F -+ * _mm_max_epu8 SSE2 -+ * _mm_max_epu[16,32] SSE4.1 -+ * _mm_max_epu64 AVX512VL + AVX512F -+ * _mm_max_pd SSE2 -+ * _mm_max_ps SSE -+ * _mm_min_epi8 SSE4.1 -+ * _mm_min_epi16 SSE2 -+ * _mm_min_epi32 SSE4.1 -+ * _mm_min_epi64 AVX512VL + AVX512F -+ * _mm_min_epu8 SSE2 -+ * _mm_min_epu[16,32] SSE4.1 -+ * _mm_min_epu64 AVX512VL + AVX512F -+ * _mm_min_pd SSE2 -+ * _mm_min_ps SSE -+ * _mm_mul_pd SSE2 -+ * _mm_mul_ps SSE -+ * _mm_mullo_epi16 SSE2 -+ * _mm_mullo_epi32 SSE4.1 -+ * _mm_mullo_epi64 AVX512VL + AVX512DQ -+ * _mm_or_si128 SSE2 -+ * _mm_storeu_pd SSE2 -+ * _mm_storeu_ps SSE -+ * _mm_storeu_si128 SSE2 -+ * _mm_xor_si128 SSE2 -+ * _mm256_add_epi[8,16,32,64] AVX2 -+ * _mm256_add_p[s,d] AVX -+ * _mm256_adds_epi[8,16] AVX2 -+ * _mm256_adds_epu[8,16] AVX2 -+ * _mm256_and_si256 AVX2 -+ * _mm256_loadu_p[s,d] AVX -+ * _mm256_loadu_si256 AVX -+ * _mm256_max_epi[8,16,32] AVX2 -+ * _mm256_max_epi64 AVX512VL + AVX512F -+ * _mm256_max_epu[8,16,32] AVX2 -+ * _mm256_max_epu64 AVX512VL + AVX512F -+ * _mm256_max_p[s,d] AVX -+ * _mm256_min_epi[8,16,32] AVX2 -+ * _mm256_min_epi64 AVX512VL + AVX512F -+ * _mm256_min_epu[8,16,32] AVX2 -+ * _mm256_min_epu64 AVX512VL + AVX512F -+ * _mm256_min_p[s,d] AVX -+ * _mm256_mul_p[s,d] AVX -+ * _mm256_mullo_epi[16,32] AVX2 -+ * _mm256_mullo_epi64 AVX512VL + AVX512DQ -+ * _mm256_or_si256 AVX2 -+ * _mm256_storeu_p[s,d] AVX -+ * _mm256_storeu_si256 AVX -+ * _mm256_xor_si256 AVX2 -+ * _mm512_add_epi[8,16] AVX512BW -+ * _mm512_add_epi[32,64] AVX512F -+ * _mm512_add_p[s,d] AVX512F -+ * _mm512_adds_epi[8,16] AVX512BW -+ * _mm512_adds_epu[8,16] AVX512BW -+ * _mm512_and_si512 AVX512F -+ * _mm512_cvtepi16_epi8 AVX512BW -+ * _mm512_cvtepi8_epi16 AVX512BW -+ * _mm512_loadu_p[s,d] AVX512F -+ * _mm512_loadu_si512 AVX512F -+ * _mm512_max_epi[8,16] AVX512BW -+ * _mm512_max_epi[32,64] AVX512F -+ * _mm512_max_epu[8,16] AVX512BW -+ * _mm512_max_epu[32,64] AVX512F -+ * _mm512_max_p[s,d] AVX512F -+ * _mm512_min_epi[8,16] AVX512BW -+ * _mm512_min_epi[32,64] AVX512F -+ * _mm512_min_epu[8,16] AVX512BW -+ * _mm512_min_epu[32,64] AVX512F -+ * _mm512_min_p[s,d] AVX512F -+ * _mm512_mul_p[s,d] AVX512F -+ * _mm512_mullo_epi16 AVX512BW -+ * _mm512_mullo_epi32 AVX512F -+ * _mm512_mullo_epi64 AVX512DQ -+ * _mm512_or_si512 AVX512F -+ * _mm512_storeu_p[s,d] AVX512F -+ * _mm512_storeu_si512 AVX512F -+ * _mm512_xor_si512 AVX512F -+ */ -+ - /* - * Since all the functions in this file are essentially identical, we - * use a macro to substitute in names and types. The core operation -@@ -62,13 +184,14 @@ - (((_flag) & mca_op_avx_component.flags) == (_flag)) - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ - int types_per_step = (512 / 8) / sizeof(type); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ -- __m512i vecA = _mm512_loadu_si512((__m512*)in); \ -+ __m512i vecA = _mm512_loadu_si512((__m512*)in); \ - in += types_per_step; \ -- __m512i vecB = _mm512_loadu_si512((__m512*)out); \ -+ __m512i vecB = _mm512_loadu_si512((__m512*)out); \ - __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ - _mm512_storeu_si512((__m512*)out, res); \ - out += types_per_step; \ -@@ -76,10 +199,14 @@ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - int types_per_step = (256 / 8) / sizeof(type); /* AVX2 */ \ -@@ -87,30 +214,37 @@ - __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ - in += types_per_step; \ - __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ -- __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ -+ __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ - _mm256_storeu_si256((__m256i*)out, res); \ - out += types_per_step; \ - } \ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE3__ - #define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ -- int types_per_step = (128 / 8) / sizeof(type); /* AVX */ \ -+ int types_per_step = (128 / 8) / sizeof(type); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ - __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ - in += types_per_step; \ - __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ -- __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ -+ __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ - _mm_storeu_si128((__m128i*)out, res); \ - out += types_per_step; \ - } \ - } - #else -+#error Target architecture lacks SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 -+#endif /* __SSE3__ */ -+#else - #define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -143,12 +277,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512BW__ && __AVX__ - #define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ - int types_per_step = (256 / 8) / sizeof(type); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in); \ -- __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)out); \ -+ __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in); \ -+ __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)out); \ - in += types_per_step; \ - __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ - __m512i vecB = _mm512_cvtepi8_epi16(vecB_tmp); \ -@@ -160,6 +295,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 -+#endif /* __AVX512BW__ && __AVX__ */ -+#else - #define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - /** -@@ -201,13 +339,14 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ - * - */ - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS( OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(type); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512i vecA = _mm512_loadu_si512((__m512i*)in); \ -+ __m512i vecA = _mm512_loadu_si512((__m512i*)in); \ - in += types_per_step; \ -- __m512i vecB = _mm512_loadu_si512((__m512i*)out); \ -+ __m512i vecB = _mm512_loadu_si512((__m512i*)out); \ - __m512i res = _mm512_##op##_si512(vecA, vecB); \ - _mm512_storeu_si512((__m512i*)out, res); \ - out += types_per_step; \ -@@ -215,10 +354,14 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(type); \ -@@ -226,17 +369,21 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ - __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ - in += types_per_step; \ - __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ -- __m256i res = _mm256_##op##_si256(vecA, vecB); \ -+ __m256i res = _mm256_##op##_si256(vecA, vecB); \ - _mm256_storeu_si256((__m256i*)out, res); \ - out += types_per_step; \ - } \ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE3__ && __SSE2__ - #define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(type); \ -@@ -244,12 +391,15 @@ static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_ - __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ - in += types_per_step; \ - __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ -- __m128i res = _mm_##op##_si128(vecA, vecB); \ -+ __m128i res = _mm_##op##_si128(vecA, vecB); \ - _mm_storeu_si128((__m128i*)out, res); \ - out += types_per_step; \ - } \ - } - #else -+#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 -+#endif /* __SSE3__ && __SSE2__ */ -+#else - #define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -282,12 +432,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_FLOAT_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(float); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512 vecA = _mm512_loadu_ps((__m512*)in); \ -- __m512 vecB = _mm512_loadu_ps((__m512*)out); \ -+ __m512 vecA = _mm512_loadu_ps((__m512*)in); \ -+ __m512 vecB = _mm512_loadu_ps((__m512*)out); \ - in += types_per_step; \ - __m512 res = _mm512_##op##_ps(vecA, vecB); \ - _mm512_storeu_ps((__m512*)out, res); \ -@@ -296,28 +447,36 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_FLOAT_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX_FLOAT_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(float); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ -- __m256 vecA = _mm256_loadu_ps(in); \ -+ __m256 vecA = _mm256_loadu_ps(in); \ - in += types_per_step; \ -- __m256 vecB = _mm256_loadu_ps(out); \ -+ __m256 vecB = _mm256_loadu_ps(out); \ - __m256 res = _mm256_##op##_ps(vecA, vecB); \ -- _mm256_storeu_ps(out, res); \ -+ _mm256_storeu_ps(out, res); \ - out += types_per_step; \ - } \ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX_FLOAT_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE__ - #define OP_AVX_SSE_FLOAT_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(float); \ -@@ -331,6 +490,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in - } \ - } - #else -+#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps -+#endif /* __SSE__ */ -+#else - #define OP_AVX_SSE_FLOAT_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -363,13 +525,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_DOUBLE_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(double); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512d vecA = _mm512_loadu_pd(in); \ -+ __m512d vecA = _mm512_loadu_pd(in); \ - in += types_per_step; \ -- __m512d vecB = _mm512_loadu_pd(out); \ -+ __m512d vecB = _mm512_loadu_pd(out); \ - __m512d res = _mm512_##op##_pd(vecA, vecB); \ - _mm512_storeu_pd((out), res); \ - out += types_per_step; \ -@@ -377,17 +540,21 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd -+#endif /* __AVXF512__ */ -+#else - #define OP_AVX_AVX512_DOUBLE_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX_DOUBLE_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(double); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ -- __m256d vecA = _mm256_loadu_pd(in); \ -+ __m256d vecA = _mm256_loadu_pd(in); \ - in += types_per_step; \ -- __m256d vecB = _mm256_loadu_pd(out); \ -+ __m256d vecB = _mm256_loadu_pd(out); \ - __m256d res = _mm256_##op##_pd(vecA, vecB); \ - _mm256_storeu_pd(out, res); \ - out += types_per_step; \ -@@ -395,10 +562,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX_DOUBLE_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE2__ - #define OP_AVX_SSE2_DOUBLE_FUNC(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(double); \ -@@ -412,6 +583,9 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, v - } \ - } - #else -+#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd -+#endif /* __SSE2__ */ -+#else - #define OP_AVX_SSE2_DOUBLE_FUNC(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -580,12 +754,13 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, - * routines, needed for some optimizations. - */ - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ - int types_per_step = (512 / 8) / sizeof(type); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512i vecA = _mm512_loadu_si512(in1); \ -- __m512i vecB = _mm512_loadu_si512(in2); \ -+ __m512i vecA = _mm512_loadu_si512(in1); \ -+ __m512i vecB = _mm512_loadu_si512(in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ -@@ -595,10 +770,14 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - int types_per_step = (256 / 8) / sizeof(type); \ -@@ -607,17 +786,21 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, - __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ -- __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ -+ __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ - _mm256_storeu_si256((__m256i*)out, res); \ - out += types_per_step; \ - } \ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_SSE41) && (1 == OMPI_MCA_OP_HAVE_SSE41) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE3__ && __SSE2__ - #define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ - int types_per_step = (128 / 8) / sizeof(type); \ -@@ -626,12 +809,15 @@ static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, - __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ -- __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ -+ __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ - _mm_storeu_si128((__m128i*)out, res); \ - out += types_per_step; \ - } \ - } - #else -+#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 -+#endif /* __SSE3__ && __SSE2__ */ -+#else - #define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -667,12 +853,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512BW__ && __AVX__ - #define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ - int types_per_step = (256 / 8) / sizeof(type); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in1); \ -- __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)in2); \ -+ __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in1); \ -+ __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ -@@ -685,6 +872,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 -+#endif /* __AVX512BW__ && __AVX__ */ -+#else - #define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - /** -@@ -723,12 +913,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(type); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512i vecA = _mm512_loadu_si512(in1); \ -- __m512i vecB = _mm512_loadu_si512(in2); \ -+ __m512i vecA = _mm512_loadu_si512(in1); \ -+ __m512i vecB = _mm512_loadu_si512(in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m512i res = _mm512_##op##_si512(vecA, vecB); \ -@@ -738,10 +929,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(type); \ -@@ -750,17 +945,21 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ -- __m256i res = _mm256_##op##_si256(vecA, vecB); \ -+ __m256i res = _mm256_##op##_si256(vecA, vecB); \ - _mm256_storeu_si256((__m256i*)out, res); \ - out += types_per_step; \ - } \ - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE3__ && __SSE2__ - #define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(type); \ -@@ -769,12 +968,15 @@ static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * re - __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ -- __m128i res = _mm_##op##_si128(vecA, vecB); \ -+ __m128i res = _mm_##op##_si128(vecA, vecB); \ - _mm_storeu_si128((__m128i*)out, res); \ - out += types_per_step; \ - } \ - } - #else -+#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 -+#endif /* __SSE3__ && __SSE2__ */ -+#else - #define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -809,12 +1011,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_FLOAT_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(float); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512 vecA = _mm512_loadu_ps(in1); \ -- __m512 vecB = _mm512_loadu_ps(in2); \ -+ __m512 vecA = _mm512_loadu_ps(in1); \ -+ __m512 vecB = _mm512_loadu_ps(in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m512 res = _mm512_##op##_ps(vecA, vecB); \ -@@ -824,16 +1027,20 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps -+#endif /* __AVX512F__ */ -+#else - #define OP_AVX_AVX512_FLOAT_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX_FLOAT_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(float); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ -- __m256 vecA = _mm256_loadu_ps(in1); \ -- __m256 vecB = _mm256_loadu_ps(in2); \ -+ __m256 vecA = _mm256_loadu_ps(in1); \ -+ __m256 vecB = _mm256_loadu_ps(in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m256 res = _mm256_##op##_ps(vecA, vecB); \ -@@ -843,10 +1050,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX_FLOAT_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE__ - #define OP_AVX_SSE_FLOAT_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(float); \ -@@ -861,6 +1072,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, - } \ - } - #else -+#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps -+#endif /* __SSE__ */ -+#else - #define OP_AVX_SSE_FLOAT_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - -@@ -895,12 +1109,13 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, - } - - #if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) -+#if __AVX512F__ - #define OP_AVX_AVX512_DOUBLE_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ - types_per_step = (512 / 8) / sizeof(double); \ - for (; left_over >= types_per_step; left_over -= types_per_step) { \ -- __m512d vecA = _mm512_loadu_pd((in1)); \ -- __m512d vecB = _mm512_loadu_pd((in2)); \ -+ __m512d vecA = _mm512_loadu_pd((in1)); \ -+ __m512d vecB = _mm512_loadu_pd((in2)); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m512d res = _mm512_##op##_pd(vecA, vecB); \ -@@ -910,16 +1125,20 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd -+#endif /* __AVXF512__ */ -+#else - #define OP_AVX_AVX512_DOUBLE_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ - - #if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) -+#if __AVX__ - #define OP_AVX_AVX_DOUBLE_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ - types_per_step = (256 / 8) / sizeof(double); \ - for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ -- __m256d vecA = _mm256_loadu_pd(in1); \ -- __m256d vecB = _mm256_loadu_pd(in2); \ -+ __m256d vecA = _mm256_loadu_pd(in1); \ -+ __m256d vecB = _mm256_loadu_pd(in2); \ - in1 += types_per_step; \ - in2 += types_per_step; \ - __m256d res = _mm256_##op##_pd(vecA, vecB); \ -@@ -929,10 +1148,14 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, - if( 0 == left_over ) return; \ - } - #else -+#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd -+#endif /* __AVX__ */ -+#else - #define OP_AVX_AVX_DOUBLE_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ - - #if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) -+#if __SSE2__ - #define OP_AVX_SSE2_DOUBLE_FUNC_3(op) \ - if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ - types_per_step = (128 / 8) / sizeof(double); \ -@@ -947,6 +1170,9 @@ static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, - } \ - } - #else -+#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd -+#endif /* __SSE2__ */ -+#else - #define OP_AVX_SSE2_DOUBLE_FUNC_3(op) {} - #endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ - - -From 20be3fc25713ac2de3eb4d77b85248d7fe2bc28b Mon Sep 17 00:00:00 2001 -From: George Bosilca -Date: Tue, 5 Jan 2021 22:40:26 -0500 -Subject: [PATCH 3/3] A better test for MPI_OP performance. - -The test now has the ability to add a shift to all or to any of the -input and output buffers to assess the impact of unaligned operations. - -Signed-off-by: George Bosilca ---- - test/datatype/reduce_local.c | 161 ++++++++++++++++++++++------------- - 1 file changed, 104 insertions(+), 57 deletions(-) - -diff --git a/test/datatype/reduce_local.c b/test/datatype/reduce_local.c -index 97890f94227..f227439b714 100644 ---- a/test/datatype/reduce_local.c -+++ b/test/datatype/reduce_local.c -@@ -59,7 +59,7 @@ static int total_errors = 0; - _a < _b ? _a : _b; }) - - static void print_status(char* op, char* type, int type_size, -- int count, double duration, -+ int count, int max_shift, double *duration, int repeats, - int correct ) - { - if(correct) { -@@ -68,7 +68,15 @@ static void print_status(char* op, char* type, int type_size, - printf("%-10s %s [\033[1;31mfail\033[0m]", op, type); - total_errors++; - } -- printf(" count %-10d time %.6f seconds\n", count, duration); -+ if( 1 == max_shift ) { -+ printf(" count %-10d time (seconds) %.8f seconds\n", count, duration[0] / repeats); -+ } else { -+ printf(" count %-10d time (seconds / shifts) ", count); -+ for( int i = 0; i < max_shift; i++ ) { -+ printf("%.8f ", duration[i] / repeats ); -+ } -+ printf("\n"); -+ } - } - - static int do_ops_built = 0; -@@ -115,19 +123,23 @@ do { \ - const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ - TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ - skip_op_type = 0; \ -- for(int _k = 0; _k < min((COUNT), 4); +_k++ ) { \ -- memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ -- tstart = MPI_Wtime(); \ -- MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT)-_k, (MPITYPE), (MPIOP)); \ -- tend = MPI_Wtime(); \ -- if( check ) { \ -- for( i = 0; i < (COUNT)-_k; i++ ) { \ -- if(((_p2+_k)[i]) == (((_p1+_k)[i]) OPNAME ((_p3+_k)[i]))) \ -- continue; \ -- printf("First error at alignment %d position %d (%" TYPE_PREFIX " %s %" TYPE_PREFIX " != %" TYPE_PREFIX ")\n", \ -- _k, i, (_p1+_k)[i], (#OPNAME), (_p3+_k)[i], (_p2+_k)[i]); \ -- correctness = 0; \ -- break; \ -+ for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ -+ duration[_k] = 0.0; \ -+ for(int _r = repeats; _r > 0; _r--) { \ -+ memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ -+ tstart = MPI_Wtime(); \ -+ MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT)-_k, (MPITYPE), (MPIOP)); \ -+ tend = MPI_Wtime(); \ -+ duration[_k] += (tend - tstart); \ -+ if( check ) { \ -+ for( i = 0; i < (COUNT)-_k; i++ ) { \ -+ if(((_p2+_k)[i]) == (((_p1+_k)[i]) OPNAME ((_p3+_k)[i]))) \ -+ continue; \ -+ printf("First error at alignment %d position %d (%" TYPE_PREFIX " %s %" TYPE_PREFIX " != %" TYPE_PREFIX ")\n", \ -+ _k, i, (_p1+_k)[i], (#OPNAME), (_p3+_k)[i], (_p2+_k)[i]); \ -+ correctness = 0; \ -+ break; \ -+ } \ - } \ - } \ - } \ -@@ -139,20 +151,24 @@ do { \ - const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ - TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ - skip_op_type = 0; \ -- for(int _k = 0; _k < min((COUNT), 4); +_k++ ) { \ -- memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ -- tstart = MPI_Wtime(); \ -- MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT), (MPITYPE), (MPIOP)); \ -- tend = MPI_Wtime(); \ -- if( check ) { \ -- for( i = 0; i < (COUNT); i++ ) { \ -- TYPE _v1 = *(_p1+_k), _v2 = *(_p2+_k), _v3 = *(_p3+_k); \ -- if(_v2 == OPNAME(_v1, _v3)) \ -- continue; \ -- printf("First error at alignment %d position %d (%" TYPE_PREFIX " != %s(%" TYPE_PREFIX ", %" TYPE_PREFIX ")\n", \ -- _k, i, _v1, (#OPNAME), _v3, _v2); \ -- correctness = 0; \ -- break; \ -+ for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ -+ duration[_k] = 0.0; \ -+ for(int _r = repeats; _r > 0; _r--) { \ -+ memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ -+ tstart = MPI_Wtime(); \ -+ MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT), (MPITYPE), (MPIOP)); \ -+ tend = MPI_Wtime(); \ -+ duration[_k] += (tend - tstart); \ -+ if( check ) { \ -+ for( i = 0; i < (COUNT); i++ ) { \ -+ TYPE _v1 = *(_p1+_k), _v2 = *(_p2+_k), _v3 = *(_p3+_k); \ -+ if(_v2 == OPNAME(_v1, _v3)) \ -+ continue; \ -+ printf("First error at alignment %d position %d (%" TYPE_PREFIX " != %s(%" TYPE_PREFIX ", %" TYPE_PREFIX ")\n", \ -+ _k, i, _v1, (#OPNAME), _v3, _v2); \ -+ correctness = 0; \ -+ break; \ -+ } \ - } \ - } \ - } \ -@@ -163,24 +179,36 @@ int main(int argc, char **argv) - { - static void *in_buf = NULL, *inout_buf = NULL, *inout_check_buf = NULL; - int count, type_size = 8, rank, size, provided, correctness = 1; -- int repeats = 1, i, c; -- double tstart, tend; -+ int repeats = 1, i, c, op1_alignment = 0, res_alignment = 0; -+ int max_shift = 4; -+ double *duration, tstart, tend; - bool check = true; - char type[5] = "uifd", *op = "sum", *mpi_type; - int lower = 1, upper = 1000000, skip_op_type; - MPI_Op mpi_op; - -- while( -1 != (c = getopt(argc, argv, "l:u:t:o:s:n:vfh")) ) { -+ while( -1 != (c = getopt(argc, argv, "l:u:r:t:o:i:s:n:1:2:vfh")) ) { - switch(c) { - case 'l': - lower = atoi(optarg); - if( lower <= 0 ) { -- fprintf(stderr, "The number of elements must be positive\n"); -+ fprintf(stderr, "The lower number of elements must be positive\n"); - exit(-1); - } - break; - case 'u': - upper = atoi(optarg); -+ if( lower <= 0 ) { -+ fprintf(stderr, "The upper number of elements must be positive\n"); -+ exit(-1); -+ } -+ break; -+ case 'i': -+ max_shift = atoi(optarg); -+ if( max_shift <= 0 ) { -+ fprintf(stderr, "The max shift must be positive\n"); -+ exit(-1); -+ } - break; - case 'f': - check = false; -@@ -216,14 +244,32 @@ int main(int argc, char **argv) - exit(-1); - } - break; -+ case '1': -+ op1_alignment = atoi(optarg); -+ if( op1_alignment < 0 ) { -+ fprintf(stderr, "alignment for the first operand must be positive\n"); -+ exit(-1); -+ } -+ break; -+ case '2': -+ res_alignment = atoi(optarg); -+ if( res_alignment < 0 ) { -+ fprintf(stderr, "alignment for the result must be positive\n"); -+ exit(-1); -+ } -+ break; - case 'h': - fprintf(stdout, "%s options are:\n" - " -l : lower number of elements\n" - " -u : upper number of elements\n" - " -s : 8, 16, 32 or 64 bits elements\n" - " -t [i,u,f,d] : type of the elements to apply the operations on\n" -+ " -r : number of repetitions for each test\n" - " -o : comma separated list of operations to execute among\n" - " sum, min, max, prod, bor, bxor, band\n" -+ " -i : shift on all buffers to check alignment\n" -+ " -1 : (mis)alignment in elements for the first op\n" -+ " -2 : (mis)alignment in elements for the result\n" - " -v: increase the verbosity level\n" - " -h: this help message\n", argv[0]); - exit(0); -@@ -233,9 +279,10 @@ int main(int argc, char **argv) - if( !do_ops_built ) { /* not yet done, take the default */ - build_do_ops( "all", do_ops); - } -- in_buf = malloc(upper * sizeof(double)); -- inout_buf = malloc(upper * sizeof(double)); -- inout_check_buf = malloc(upper * sizeof(double)); -+ posix_memalign( &in_buf, 64, (upper + op1_alignment) * sizeof(double)); -+ posix_memalign( &inout_buf, 64, (upper + res_alignment) * sizeof(double)); -+ posix_memalign( &inout_check_buf, 64, upper * sizeof(double)); -+ duration = (double*)malloc(max_shift * sizeof(double)); - - ompi_mpi_init(argc, argv, MPI_THREAD_SERIALIZED, &provided, false); - -@@ -253,8 +300,8 @@ int main(int argc, char **argv) - correctness = 1; - if('i' == type[type_idx]) { - if( 8 == type_size ) { -- int8_t *in_int8 = (int8_t*)in_buf, -- *inout_int8 = (int8_t*)inout_buf, -+ int8_t *in_int8 = (int8_t*)((char*)in_buf + op1_alignment * sizeof(int8_t)), -+ *inout_int8 = (int8_t*)((char*)inout_buf + res_alignment * sizeof(int8_t)), - *inout_int8_for_check = (int8_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_int8[i] = 5; -@@ -299,8 +346,8 @@ int main(int argc, char **argv) - } - } - if( 16 == type_size ) { -- int16_t *in_int16 = (int16_t*)in_buf, -- *inout_int16 = (int16_t*)inout_buf, -+ int16_t *in_int16 = (int16_t*)((char*)in_buf + op1_alignment * sizeof(int16_t)), -+ *inout_int16 = (int16_t*)((char*)inout_buf + res_alignment * sizeof(int16_t)), - *inout_int16_for_check = (int16_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_int16[i] = 5; -@@ -345,8 +392,8 @@ int main(int argc, char **argv) - } - } - if( 32 == type_size ) { -- int32_t *in_int32 = (int32_t*)in_buf, -- *inout_int32 = (int32_t*)inout_buf, -+ int32_t *in_int32 = (int32_t*)((char*)in_buf + op1_alignment * sizeof(int32_t)), -+ *inout_int32 = (int32_t*)((char*)inout_buf + res_alignment * sizeof(int32_t)), - *inout_int32_for_check = (int32_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_int32[i] = 5; -@@ -391,8 +438,8 @@ int main(int argc, char **argv) - } - } - if( 64 == type_size ) { -- int64_t *in_int64 = (int64_t*)in_buf, -- *inout_int64 = (int64_t*)inout_buf, -+ int64_t *in_int64 = (int64_t*)((char*)in_buf + op1_alignment * sizeof(int64_t)), -+ *inout_int64 = (int64_t*)((char*)inout_buf + res_alignment * sizeof(int64_t)), - *inout_int64_for_check = (int64_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_int64[i] = 5; -@@ -440,8 +487,8 @@ int main(int argc, char **argv) - - if( 'u' == type[type_idx] ) { - if( 8 == type_size ) { -- uint8_t *in_uint8 = (uint8_t*)in_buf, -- *inout_uint8 = (uint8_t*)inout_buf, -+ uint8_t *in_uint8 = (uint8_t*)((char*)in_buf + op1_alignment * sizeof(uint8_t)), -+ *inout_uint8 = (uint8_t*)((char*)inout_buf + res_alignment * sizeof(uint8_t)), - *inout_uint8_for_check = (uint8_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_uint8[i] = 5; -@@ -486,8 +533,8 @@ int main(int argc, char **argv) - } - } - if( 16 == type_size ) { -- uint16_t *in_uint16 = (uint16_t*)in_buf, -- *inout_uint16 = (uint16_t*)inout_buf, -+ uint16_t *in_uint16 = (uint16_t*)((char*)in_buf + op1_alignment * sizeof(uint16_t)), -+ *inout_uint16 = (uint16_t*)((char*)inout_buf + res_alignment * sizeof(uint16_t)), - *inout_uint16_for_check = (uint16_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_uint16[i] = 5; -@@ -532,8 +579,8 @@ int main(int argc, char **argv) - } - } - if( 32 == type_size ) { -- uint32_t *in_uint32 = (uint32_t*)in_buf, -- *inout_uint32 = (uint32_t*)inout_buf, -+ uint32_t *in_uint32 = (uint32_t*)((char*)in_buf + op1_alignment * sizeof(uint32_t)), -+ *inout_uint32 = (uint32_t*)((char*)inout_buf + res_alignment * sizeof(uint32_t)), - *inout_uint32_for_check = (uint32_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_uint32[i] = 5; -@@ -578,8 +625,8 @@ int main(int argc, char **argv) - } - } - if( 64 == type_size ) { -- uint64_t *in_uint64 = (uint64_t*)in_buf, -- *inout_uint64 = (uint64_t*)inout_buf, -+ uint64_t *in_uint64 = (uint64_t*)((char*)in_buf + op1_alignment * sizeof(uint64_t)), -+ *inout_uint64 = (uint64_t*)((char*)inout_buf + res_alignment * sizeof(uint64_t)), - *inout_uint64_for_check = (uint64_t*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_uint64[i] = 5; -@@ -626,8 +673,8 @@ int main(int argc, char **argv) - } - - if( 'f' == type[type_idx] ) { -- float *in_float = (float*)in_buf, -- *inout_float = (float*)inout_buf, -+ float *in_float = (float*)((char*)in_buf + op1_alignment * sizeof(float)), -+ *inout_float = (float*)((char*)inout_buf + res_alignment * sizeof(float)), - *inout_float_for_check = (float*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_float[i] = 1000.0+1; -@@ -658,8 +705,8 @@ int main(int argc, char **argv) - } - - if( 'd' == type[type_idx] ) { -- double *in_double = (double*)in_buf, -- *inout_double = (double*)inout_buf, -+ double *in_double = (double*)((char*)in_buf + op1_alignment * sizeof(double)), -+ *inout_double = (double*)((char*)inout_buf + res_alignment * sizeof(double)), - *inout_double_for_check = (double*)inout_check_buf; - for( i = 0; i < count; i++ ) { - in_double[i] = 10.0+1; -@@ -691,7 +738,7 @@ int main(int argc, char **argv) - check_and_continue: - if( !skip_op_type ) - print_status(array_of_ops[do_ops[op_idx]].mpi_op_name, -- mpi_type, type_size, count, tend-tstart, correctness); -+ mpi_type, type_size, count, max_shift, duration, repeats, correctness); - } - if( !skip_op_type ) - printf("\n"); diff --git a/8348.patch b/8348.patch deleted file mode 100644 index 89d5fd7..0000000 --- a/8348.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 838568da9fce85b4555b0e0cbd899c8e8ef75696 Mon Sep 17 00:00:00 2001 -From: George Bosilca -Date: Wed, 6 Jan 2021 13:30:40 -0500 -Subject: [PATCH] A started generalized request should be marked as pending. - -Fixes #8340 - -Signed-off-by: George Bosilca -(cherry picked from commit 434a2515f8aab11f505b2fca0b3d8cc41e24cef2) ---- - ompi/request/grequest.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/ompi/request/grequest.c b/ompi/request/grequest.c -index c895b4232b6..02affd642aa 100644 ---- a/ompi/request/grequest.c -+++ b/ompi/request/grequest.c -@@ -163,6 +163,7 @@ int ompi_grequest_start( - greq->greq_free.c_free = gfree_fn; - greq->greq_cancel.c_cancel = gcancel_fn; - greq->greq_base.req_status = ompi_status_empty; -+ greq->greq_base.req_complete = REQUEST_PENDING; - - *request = &greq->greq_base; - return OMPI_SUCCESS; diff --git a/openmpi.spec b/openmpi.spec index 52b5fcc..a65a6d9 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -26,28 +26,22 @@ %endif # Run autogen - needed for some patches -# For Patch0 -%bcond_without autogen +%bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.0 -Release: 5%{?dist} +Version: 4.1.1 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc1.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Fix AVX library linkage -Patch0: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8322.patch -# Fix generalized requests (mpi4py test failure) -Patch1: https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/8348.patch - BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make @@ -174,7 +168,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 +%autosetup -p1 -n %{name}-%{version}rc1 %if %{with autogen} ./autogen.pl --force %endif @@ -363,6 +357,9 @@ make check %changelog +* Thu Feb 11 2021 Orion Poplawski - 4.1.1-0.1.rc1 +- Update to 4.1.1rc1 + * Thu Jan 28 2021 Orion Poplawski - 4.1.0-5 - Add upstream patch for generalized requests diff --git a/sources b/sources index ebb82c2..e21d4f2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.0.tar.bz2) = eaf086ab4929ce5a9a3e867c8315bf802ff4dc75d3f05d740e22dfd97803a4559212dacbe06920d42ac6644f46057eb6980cccf5a8b0a7df9c5bdf5bffc0b3a6 +SHA512 (openmpi-4.1.1rc1.tar.bz2) = 642ac706cd2d4fc34fdd5002b84fd1680e57a01edc78bcc1f0ab65b8da36af19952ae6b09c759562d5f97bafd0d931064b2d1e0926248793c8cddf2a5c38c3a3 From c7b3ead5b72ae8f94336b8b769f67772372e9e6d Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 5 Apr 2021 07:53:48 -0600 Subject: [PATCH 068/139] Update to 4.1.1rc2 --- .gitignore | 1 + openmpi.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 42e33b3..2c89dde 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.0.5.tar.bz2 /openmpi-4.1.0.tar.bz2 /openmpi-4.1.1rc1.tar.bz2 +/openmpi-4.1.1rc2.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index a65a6d9..a674e43 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,13 +30,13 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.1 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc2.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -168,7 +168,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n %{name}-%{version}rc1 +%autosetup -p1 -n %{name}-%{version}rc2 %if %{with autogen} ./autogen.pl --force %endif @@ -357,6 +357,9 @@ make check %changelog +* Mon Apr 05 2021 Orion Poplawski - 4.1.1-0.2.rc2 +- Update to 4.1.1rc2 + * Thu Feb 11 2021 Orion Poplawski - 4.1.1-0.1.rc1 - Update to 4.1.1rc1 diff --git a/sources b/sources index e21d4f2..bfa6e41 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.1rc1.tar.bz2) = 642ac706cd2d4fc34fdd5002b84fd1680e57a01edc78bcc1f0ab65b8da36af19952ae6b09c759562d5f97bafd0d931064b2d1e0926248793c8cddf2a5c38c3a3 +SHA512 (openmpi-4.1.1rc2.tar.bz2) = 83aeaf027cc83a3b8800d328d547e75a830b36a02ba565b4d2aa3f4b9082930d7a48608e6e94f80eca0ba0f51356ba0d400ebdb4f3e7cd7e5daa70982c6d1064 From 227b60ec52c1a5b9ef60589e79ec381a0f56c56a Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 26 Apr 2021 20:25:09 -0600 Subject: [PATCH 069/139] Update to 4.1.1 --- .gitignore | 1 + openmpi.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 2c89dde..5011dd6 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.0.tar.bz2 /openmpi-4.1.1rc1.tar.bz2 /openmpi-4.1.1rc2.tar.bz2 +/openmpi-4.1.1.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index a674e43..b7534ef 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,13 +30,13 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.1 -Release: 0.2.rc2%{?dist} +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc2.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -168,7 +168,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n %{name}-%{version}rc2 +%autosetup -p1 -n %{name}-%{version} %if %{with autogen} ./autogen.pl --force %endif @@ -357,6 +357,9 @@ make check %changelog +* Tue Apr 27 2021 Orion Poplawski - 4.1.1-1 +- Update to 4.1.1 + * Mon Apr 05 2021 Orion Poplawski - 4.1.1-0.2.rc2 - Update to 4.1.1rc2 diff --git a/sources b/sources index bfa6e41..cc0a735 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.1rc2.tar.bz2) = 83aeaf027cc83a3b8800d328d547e75a830b36a02ba565b4d2aa3f4b9082930d7a48608e6e94f80eca0ba0f51356ba0d400ebdb4f3e7cd7e5daa70982c6d1064 +SHA512 (openmpi-4.1.1.tar.bz2) = 0d85ba45a40c0879f266e5286615e2cf94eb3570f0a705194525821d5c85d460cefc3a2da8207e6e84c479d3d0da656e2342cc2d6f88c4b4577ca22bbeacc89d From 4366f0045990db52a972eb5d6fa5da6c983ceb17 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 10:43:08 +0200 Subject: [PATCH 070/139] Rebuilt for Python 3.10 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index b7534ef..8c1bb87 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -357,6 +357,9 @@ make check %changelog +* Fri Jun 04 2021 Python Maint - 4.1.1-2 +- Rebuilt for Python 3.10 + * Tue Apr 27 2021 Orion Poplawski - 4.1.1-1 - Update to 4.1.1 From c9da4b0fca61c3753e5bb8e54c245bf27dbcef9f Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 22 Jun 2021 08:10:42 -0600 Subject: [PATCH 071/139] Only need environment-modules for EL7 --- openmpi.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 8c1bb87..12b81bb 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -90,7 +90,7 @@ BuildRequires: rpm-mpi-hooks %endif Provides: mpi -%if 0%{?rhel} +%if 0%{?rhel} == 7 # Need this for /etc/profile.d/modules.sh Requires: environment-modules %endif From 17c0ab5595448ba03b6af68efa8a8b78abea4cfb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 17:16:42 +0000 Subject: [PATCH 072/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 12b81bb..7d23972 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -357,6 +357,9 @@ make check %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 4.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jun 04 2021 Python Maint - 4.1.1-2 - Rebuilt for Python 3.10 From b8a28d859b6b5df6373e17b9165c1aa094053f23 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Fri, 3 Sep 2021 16:20:46 +0200 Subject: [PATCH 073/139] Also own %{_libdir}/%{name}/lib/cmake/ --- openmpi.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 7d23972..3495a87 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -322,6 +322,7 @@ make check %{_fmoddir}/%{name}/ %{_libdir}/%{name}/lib/*.so %{_libdir}/%{name}/lib/*.mod +%{_libdir}/%{name}/lib/cmake/ %{_libdir}/%{name}/lib/pkgconfig/ %{_libdir}/pkgconfig/*.pc %{_mandir}/%{namearch}/man1/mpi[cCf]* @@ -357,6 +358,9 @@ make check %changelog +* Fri Sep 03 2021 Sandro Mani - 4.1.1-4 +- Also own %%{_libdir}/%%{name}/lib/cmake/ + * Thu Jul 22 2021 Fedora Release Engineering - 4.1.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 352773be194d7e11bf134151008879d413635d44 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Tue, 14 Sep 2021 07:37:05 +0200 Subject: [PATCH 074/139] Create cmake dir --- openmpi.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmpi.spec b/openmpi.spec index 3495a87..0defa64 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -241,6 +241,9 @@ cd %{buildroot}%{_libdir}/pkgconfig ln -s ../%{name}/lib/pkgconfig/*.pc . cd - +# Create cmake dir +mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/ + # Remove extraneous wrapper link libraries (bug 814798) sed -i -e s/-ldl// -e s/-lhwloc// \ %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt From c387385b452a1f282e6895824d2b725559e8a3c5 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 10 Oct 2021 19:10:20 -0600 Subject: [PATCH 075/139] Update to 4.1.2rc1 --- openmpi.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 0defa64..a792910 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -29,14 +29,14 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.1 -Release: 4%{?dist} +Version: 4.1.2 +Release: 0.1.rc1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc1.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -168,7 +168,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n %{name}-%{version} +%autosetup -p1 -n %{name}-%{version}rc1 %if %{with autogen} ./autogen.pl --force %endif @@ -361,6 +361,9 @@ make check %changelog +* Sun Oct 10 2021 Orion Poplawski - 4.1.2-0.1.rc1 +- Update to 4.1.2rc1 + * Fri Sep 03 2021 Sandro Mani - 4.1.1-4 - Also own %%{_libdir}/%%{name}/lib/cmake/ From 63c964d66791a1214f31296f8f19e1bdec3b03f6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 11 Oct 2021 17:46:42 -0600 Subject: [PATCH 076/139] Upload source --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5011dd6..24a26c2 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.1rc1.tar.bz2 /openmpi-4.1.1rc2.tar.bz2 /openmpi-4.1.1.tar.bz2 +/openmpi-4.1.2rc1.tar.bz2 diff --git a/sources b/sources index cc0a735..737c519 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.1.tar.bz2) = 0d85ba45a40c0879f266e5286615e2cf94eb3570f0a705194525821d5c85d460cefc3a2da8207e6e84c479d3d0da656e2342cc2d6f88c4b4577ca22bbeacc89d +SHA512 (openmpi-4.1.2rc1.tar.bz2) = a51e281292a6adba8cc07b6b4d66e0bc6d8fdc34c2e3d2a2a93ab5de8d90f5e04136e91a146d0427d8fd0c0e09cee0817ecd64e1120ed3362d01650ad70c2d42 From c446ed0db6370b3caa1d26e24f65c042c8430e69 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 29 Nov 2021 19:49:11 -0700 Subject: [PATCH 077/139] Update to 4.1.2 --- .gitignore | 1 + openmpi.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 24a26c2..10fe145 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.1rc2.tar.bz2 /openmpi-4.1.1.tar.bz2 /openmpi-4.1.2rc1.tar.bz2 +/openmpi-4.1.2.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index a792910..8255ea3 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,13 +30,13 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.2 -Release: 0.1.rc1%{?dist} +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -168,7 +168,7 @@ OpenMPI support for Python 3. %prep -%autosetup -p1 -n %{name}-%{version}rc1 +%autosetup -p1 -n %{name}-%{version} %if %{with autogen} ./autogen.pl --force %endif @@ -361,6 +361,9 @@ make check %changelog +* Mon Nov 29 2021 Orion Poplawski - 4.1.2-1 +- Update to 4.1.2 + * Sun Oct 10 2021 Orion Poplawski - 4.1.2-0.1.rc1 - Update to 4.1.2rc1 diff --git a/sources b/sources index 737c519..62a73db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.2rc1.tar.bz2) = a51e281292a6adba8cc07b6b4d66e0bc6d8fdc34c2e3d2a2a93ab5de8d90f5e04136e91a146d0427d8fd0c0e09cee0817ecd64e1120ed3362d01650ad70c2d42 +SHA512 (openmpi-4.1.2.tar.bz2) = 1958f96434cddbe525b4511fcf8d0cf8bf1ff376e024466219bd3a2092900e318f45a4b1e1a8ef6b03e350f46a71777fc7db82a7df711f12bb9758150d209aad From 3e53b4ed04f319fc27c8f6c71cfbc26616068a96 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 22:25:05 +0000 Subject: [PATCH 078/139] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 8255ea3..720cef3 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -361,6 +361,9 @@ make check %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 4.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Mon Nov 29 2021 Orion Poplawski - 4.1.2-1 - Update to 4.1.2 From ec99e913a1d3e9729990c0bd78850fe2224e31de Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 5 Feb 2022 23:15:56 +0100 Subject: [PATCH 079/139] Rebuilt for java-17-openjdk as system jdk https://fedoraproject.org/wiki/Changes/Java17 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 720cef3..d3f23ef 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -361,6 +361,9 @@ make check %changelog +* Sat Feb 05 2022 Jiri Vanek - 4.1.2-3 +- Rebuilt for java-17-openjdk as system jdk + * Thu Jan 20 2022 Fedora Release Engineering - 4.1.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From d91b5d2dbcb02e3190a5ff9798c288df2b163a42 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 16 Apr 2022 17:36:19 -0600 Subject: [PATCH 080/139] Update to 4.1.3 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 10fe145..28dfbc5 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.1.tar.bz2 /openmpi-4.1.2rc1.tar.bz2 /openmpi-4.1.2.tar.bz2 +/openmpi-4.1.3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index d3f23ef..1af0815 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -29,8 +29,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.2 -Release: 3%{?dist} +Version: 4.1.3 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -361,6 +361,9 @@ make check %changelog +* Sat Apr 16 2022 Orion Poplawski - 4.1.3-1 +- Update to 4.1.3 + * Sat Feb 05 2022 Jiri Vanek - 4.1.2-3 - Rebuilt for java-17-openjdk as system jdk diff --git a/sources b/sources index 62a73db..a353db9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.2.tar.bz2) = 1958f96434cddbe525b4511fcf8d0cf8bf1ff376e024466219bd3a2092900e318f45a4b1e1a8ef6b03e350f46a71777fc7db82a7df711f12bb9758150d209aad +SHA512 (openmpi-4.1.3.tar.bz2) = fed3756f91c10be7a88649805262c1ed20cae6a2e7a6f0e4e5d27e7de32633d80f32c546000e1c802a4e0f9c4335fb4d1a71ad4ee3e60b7d635515b47f9257ea From 43098f897c8ceb2e4d9a0e0fbb52a3378e002111 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 29 May 2022 16:54:09 -0600 Subject: [PATCH 081/139] Update to 4.1.4 --- .gitignore | 1 + openmpi.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 28dfbc5..088dd84 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.2rc1.tar.bz2 /openmpi-4.1.2.tar.bz2 /openmpi-4.1.3.tar.bz2 +/openmpi-4.1.4.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 1af0815..0299464 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -29,7 +29,7 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.3 +Version: 4.1.4 Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio @@ -361,6 +361,9 @@ make check %changelog +* Sun May 29 2022 Orion Poplawski - 4.1.4-1 +- Update to 4.1.4 + * Sat Apr 16 2022 Orion Poplawski - 4.1.3-1 - Update to 4.1.3 diff --git a/sources b/sources index a353db9..4df47e3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.3.tar.bz2) = fed3756f91c10be7a88649805262c1ed20cae6a2e7a6f0e4e5d27e7de32633d80f32c546000e1c802a4e0f9c4335fb4d1a71ad4ee3e60b7d635515b47f9257ea +SHA512 (openmpi-4.1.4.tar.bz2) = c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653 From d2fb0dab2714c489591110c0ee67fc5b1e7f629b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 14:51:56 +0200 Subject: [PATCH 082/139] Rebuilt for Python 3.11 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 0299464..cd12398 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -30,7 +30,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -361,6 +361,9 @@ make check %changelog +* Mon Jun 13 2022 Python Maint - 4.1.4-2 +- Rebuilt for Python 3.11 + * Sun May 29 2022 Orion Poplawski - 4.1.4-1 - Update to 4.1.4 From f1dc2cf7aa307a9900e9941eb2bea6dffa7c0f9c Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 9 Jul 2022 22:30:09 -0600 Subject: [PATCH 083/139] Drop java for i686 (bz#2104085) --- openmpi.spec | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index cd12398..ed9e4bd 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -25,12 +25,19 @@ %bcond_without rdma %endif +# No more Java on i686 +%ifarch %{java_arches} +%bcond_without java +%else +%bcond_with java +%endif + # Run autogen - needed for some patches %bcond_with autogen Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -62,7 +69,12 @@ BuildRequires: rdma-core-devel BuildRequires: hwloc-devel # So configure can find lstopo BuildRequires: hwloc-gui +%if %{with java} 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 @@ -127,6 +139,7 @@ Requires: (python(abi) = %{python3_version} if python3) %description devel Contains development headers and libraries for openmpi. +%if %{with java} %package java Summary: Java library Requires: %{name} = %{version}-%{release} @@ -142,6 +155,7 @@ Requires: java-devel %description java-devel Contains development wrapper for compiling Java with openmpi. +%endif # We set this to for convenience, since this is the unique dir we use for this # particular package, version, compiler @@ -183,7 +197,9 @@ OpenMPI support for Python 3. --disable-silent-rules \ --enable-builtin-atomics \ --enable-mpi-cxx \ +%if %{with java} --enable-mpi-java \ +%endif --enable-mpi1-compatibility \ --with-sge \ --with-valgrind \ @@ -339,6 +355,7 @@ make check %{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt %{macrosdir}/macros.%{namearch} +%if %{with java} %files java %{_libdir}/%{name}/lib/mpi.jar @@ -348,6 +365,7 @@ make check # Currently this only contaings openmpi/javadoc %{_libdir}/%{name}/share/doc/ %{_mandir}/%{namearch}/man1/mpijavac.1.gz +%endif %if %{with python2} %files -n python2-openmpi @@ -361,6 +379,9 @@ make check %changelog +* Sun Jul 10 2022 Orion Poplawski - 4.1.4-3 +- Drop java for i686 (bz#2104085) + * Mon Jun 13 2022 Python Maint - 4.1.4-2 - Rebuilt for Python 3.11 From 63ea11607fed02586a415e60ef6c9f299e219e0a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 22 Jul 2022 02:09:38 +0000 Subject: [PATCH 084/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index ed9e4bd..6702229 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -379,6 +379,9 @@ make check %changelog +* Fri Jul 22 2022 Fedora Release Engineering - 4.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sun Jul 10 2022 Orion Poplawski - 4.1.4-3 - Drop java for i686 (bz#2104085) From 8f566791db8e9aaa6ed13fa75b84d8b1a12b0ec5 Mon Sep 17 00:00:00 2001 From: Davide Cavalca Date: Fri, 19 Aug 2022 11:53:46 -0400 Subject: [PATCH 085/139] Enable IPv6 support --- openmpi.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 6702229..b3cdaee 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -205,6 +205,7 @@ OpenMPI support for Python 3. --with-valgrind \ --enable-memchecker \ --with-hwloc=/usr \ + --enable-ipv6 \ %if !0%{?el7} --with-libevent=external \ --with-pmix=external \ @@ -379,6 +380,9 @@ make check %changelog +* Fri Aug 19 2022 Davide Cavalca - 4.1.4-5 +- Enable IPv6 support (bz#2119845) + * Fri Jul 22 2022 Fedora Release Engineering - 4.1.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From ef93e442125000c8a25b6c062ef3b6bf2bef2347 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 10 Nov 2022 21:25:01 -0700 Subject: [PATCH 086/139] Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) --- openmpi.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index b3cdaee..834f57a 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -205,7 +205,6 @@ OpenMPI support for Python 3. --with-valgrind \ --enable-memchecker \ --with-hwloc=/usr \ - --enable-ipv6 \ %if !0%{?el7} --with-libevent=external \ --with-pmix=external \ @@ -380,6 +379,9 @@ make check %changelog +* Fri Nov 11 2022 Orion Poplawski - 4.1.4-6 +- Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) + * Fri Aug 19 2022 Davide Cavalca - 4.1.4-5 - Enable IPv6 support (bz#2119845) From 454259f6ea91cb3b40e88dee3901ccae99de0482 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 11 Nov 2022 08:12:09 -0700 Subject: [PATCH 087/139] Re-enable IPv6 support - was not the issue --- openmpi.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 834f57a..a32e12b 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -197,6 +197,7 @@ OpenMPI support for Python 3. --disable-silent-rules \ --enable-builtin-atomics \ --enable-mpi-cxx \ + --enable-ipv6 \ %if %{with java} --enable-mpi-java \ %endif @@ -379,6 +380,9 @@ make check %changelog +* Fri Nov 11 2022 Orion Poplawski - 4.1.4-7 +- Re-enable IPv6 support - was not the issue + * Fri Nov 11 2022 Orion Poplawski - 4.1.4-6 - Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) From cb9de3f18843341ff2920784e3278a7f56d8a1b3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 22:53:03 +0000 Subject: [PATCH 088/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index a32e12b..c69be5e 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.4 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -380,6 +380,9 @@ make check %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 4.1.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Fri Nov 11 2022 Orion Poplawski - 4.1.4-7 - Re-enable IPv6 support - was not the issue From 64f1b4b59116c11b7e5792f223e7de75b267862a Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 26 Feb 2023 08:06:05 -0700 Subject: [PATCH 089/139] Update to 4.1.5 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 088dd84..3e2bdcc 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.2.tar.bz2 /openmpi-4.1.3.tar.bz2 /openmpi-4.1.4.tar.bz2 +/openmpi-4.1.5.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index c69be5e..a6848b0 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -36,8 +36,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.4 -Release: 8%{?dist} +Version: 4.1.5 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -380,6 +380,9 @@ make check %changelog +* Sun Feb 26 2023 Orion Poplawski - 4.1.5-1 +- Update to 4.1.5 + * Thu Jan 19 2023 Fedora Release Engineering - 4.1.4-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index 4df47e3..633d7e8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.4.tar.bz2) = c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653 +SHA512 (openmpi-4.1.5.tar.bz2) = 7a2188684ed7542fe42e1717ae72cb859b4f3d6f722c9d3ba04bfed6c2178b3e7da3a536629d312c23571fed4d9b2ca5e20e85898ae5144e9332bd898e6e1cc6 From e1e224c97f4a35113b395dc7c678d3f6a8550a07 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 13 Jun 2023 20:23:33 +0200 Subject: [PATCH 090/139] Rebuilt for Python 3.12 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index a6848b0..2ba8b9e 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -37,7 +37,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -380,6 +380,9 @@ make check %changelog +* Tue Jun 13 2023 Python Maint - 4.1.5-2 +- Rebuilt for Python 3.12 + * Sun Feb 26 2023 Orion Poplawski - 4.1.5-1 - Update to 4.1.5 From 87fa84a1a1df64b725bc55ef617a07c922fbc799 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 22 Jun 2023 03:51:37 -0400 Subject: [PATCH 091/139] Disable PSM, OrangeFS in RHEL builds This is based on c9s: https://gitlab.com/redhat/centos-stream/rpms/openmpi/-/commit/4bc1e69400a2cbc295de7934c4621abab1fb7645 https://gitlab.com/redhat/centos-stream/rpms/openmpi/-/commit/5dda5cc9dfc60f051dbabf9a9d1c28f26c1695d7 --- openmpi.spec | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 2ba8b9e..c574f67 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -32,12 +32,30 @@ %bcond_with java %endif +%if %{defined rhel} +%bcond_with orangefs +%else +%bcond_without orangefs +%endif + +%ifarch x86_64 +%if %{defined rhel} +%bcond_with psm +%else +%bcond_without psm +%endif +%bcond_without psm2 +%else +%bcond_with psm +%bcond_with psm2 +%endif + # Run autogen - needed for some patches %bcond_with autogen Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -83,14 +101,18 @@ BuildRequires: libfabric-devel %ifnarch s390 s390x BuildRequires: papi-devel %endif +%if %{with orangefs} BuildRequires: orangefs-devel +%endif BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) BuildRequires: pmix-devel BuildRequires: python%{python3_pkgversion}-devel -%ifarch x86_64 +%if %{with psm} BuildRequires: infinipath-psm-devel +%endif +%if %{with psm2} BuildRequires: libpsm2-devel %endif %if %{with ucx} @@ -380,6 +402,9 @@ make check %changelog +* Thu Jun 22 2023 Yaakov Selkowitz - 4.1.5-3 +- Disable PSM, OrangeFS in RHEL builds + * Tue Jun 13 2023 Python Maint - 4.1.5-2 - Rebuilt for Python 3.12 From 0d7cd0891afac32a1b655a9f0d6e3f0322a2ecee Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Sun, 9 Jul 2023 23:54:43 -0400 Subject: [PATCH 092/139] Disable PSM2 in ELN builds libpsm2 is listed as unwanted in ELN and RHEL 10+. Also, clarify the PSM conditional as disabled in RHEL 8+. --- openmpi.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index c574f67..e710ad8 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -39,12 +39,16 @@ %endif %ifarch x86_64 -%if %{defined rhel} +%if 0%{?rhel} >= 8 %bcond_with psm %else %bcond_without psm %endif +%if 0%{?rhel} >= 10 +%bcond_with psm2 +%else %bcond_without psm2 +%endif %else %bcond_with psm %bcond_with psm2 @@ -55,7 +59,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -402,6 +406,9 @@ make check %changelog +* Mon Jul 10 2023 Yaakov Selkowitz - 4.1.5-4 +- Disable PSM2 in RHEL 10 builds + * Thu Jun 22 2023 Yaakov Selkowitz - 4.1.5-3 - Disable PSM, OrangeFS in RHEL builds From 6b9dcb4d557f3d43e5beae946a365b3d6feb3efb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jul 2023 18:07:06 +0000 Subject: [PATCH 093/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index e710ad8..271d3e1 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -59,7 +59,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -406,6 +406,9 @@ make check %changelog +* Thu Jul 20 2023 Fedora Release Engineering - 4.1.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Mon Jul 10 2023 Yaakov Selkowitz - 4.1.5-4 - Disable PSM2 in RHEL 10 builds From 01a28a780322673230784a90f2210e9a3d2d13e3 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 22 Sep 2023 21:01:31 -0600 Subject: [PATCH 094/139] Rebuild for pmix 4.1.3 (bz#2240042) --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 271d3e1..99ae804 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -59,7 +59,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -406,6 +406,9 @@ make check %changelog +* Fri Sep 22 2023 Orion Poplawski - 4.1.5-6 +- Rebuild for pmix 4.1.3 (bz#2240042) + * Thu Jul 20 2023 Fedora Release Engineering - 4.1.5-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From b2d5f3c2801dbbc83614132030080be7c11e4a34 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Fri, 29 Sep 2023 06:50:57 +0000 Subject: [PATCH 095/139] OpenMPI should own cmake and include install directories Make sure that packages which install cmake and include files in OpenMPI locations do not need to own the main directories for OpenMPI. See https://download.copr.fedorainfracloud.org/results/fed500/gloo/fedora-rawhide-x86_64/06467673-gloo/fedora-review/review.txt --- openmpi.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmpi.spec b/openmpi.spec index 99ae804..0e1b631 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -309,6 +309,8 @@ make check %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* %config(noreplace) %{_sysconfdir}/%{namearch}/* From 60a30103206687acc25c19a8b4aa48f9203146fa Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Sat, 30 Sep 2023 04:04:50 +0000 Subject: [PATCH 096/139] Create included and cmake directories for OpenMPI package files --- openmpi.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 0e1b631..bb2b3fc 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -59,7 +59,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -287,6 +287,10 @@ cd - # Create cmake dir mkdir -p %{buildroot}%{_libdir}/%{name}/lib/cmake/ +# Create directories for OpenMPI packages with development files +mkdir -p %{buildroot}%{_libdir}/%{name}/lib/openmpi/cmake +mkdir -p %{buildroot}%{_libdir}/%{name}/include + # Remove extraneous wrapper link libraries (bug 814798) sed -i -e s/-ldl// -e s/-lhwloc// \ %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt @@ -408,6 +412,9 @@ make check %changelog +* Sat Sep 30 2023 Benson Muite - 4.1.5-7 +- Add include and cmake directories for development files for OpenMPI packages + * Fri Sep 22 2023 Orion Poplawski - 4.1.5-6 - Rebuild for pmix 4.1.3 (bz#2240042) From 37cfaa82868ed3bd0ab9c782ac83e3595cecc4e8 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Thu, 12 Oct 2023 09:41:31 +0200 Subject: [PATCH 097/139] Added CMAKE_PREFIX_PATH to the module file Signed-off-by: Cristian Le --- openmpi.module.in | 1 + openmpi.spec | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/openmpi.module.in b/openmpi.module.in index 41583c4..cdd31b9 100644 --- a/openmpi.module.in +++ b/openmpi.module.in @@ -6,6 +6,7 @@ conflict mpi prepend-path PATH @LIBDIR@/bin prepend-path LD_LIBRARY_PATH @LIBDIR@/lib prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig +prepend-path CMAKE_PREFIX_PATH @LIBDIR@ prepend-path MANPATH :@MANDIR@ setenv MPI_BIN @LIBDIR@/bin setenv MPI_SYSCONFIG @ETCDIR@ diff --git a/openmpi.spec b/openmpi.spec index bb2b3fc..fcece89 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -59,7 +59,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 4.1.5 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -412,6 +412,9 @@ make check %changelog +* Thu Oct 12 2023 Cristian Le - 4.1.5-8 +- Added CMAKE_PREFIX_PATH to module file + * Sat Sep 30 2023 Benson Muite - 4.1.5-7 - Add include and cmake directories for development files for OpenMPI packages From b82bf993d00357a59002dba9ccb81b2d21466c6d Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 30 Sep 2021 21:32:43 -0600 Subject: [PATCH 098/139] Update to 5.0.0 Drops 32-bit i686 support Drops c++ bindings Add doc sub-package --- .gitignore | 1 + macros.openmpi | 2 +- openmpi.spec | 101 +++++++++++++++++++++++++++++++++---------------- sources | 2 +- 4 files changed, 72 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index 3e2bdcc..cfdad56 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.3.tar.bz2 /openmpi-4.1.4.tar.bz2 /openmpi-4.1.5.tar.bz2 +/openmpi-5.0.0.tar.bz2 diff --git a/macros.openmpi b/macros.openmpi index 1ee6a3c..b4f7fa5 100644 --- a/macros.openmpi +++ b/macros.openmpi @@ -1,7 +1,7 @@ %_openmpi_load \ . /etc/profile.d/modules.sh; \ module load mpi/openmpi-%{_arch}; \ - export OMPI_MCA_rmaps_base_oversubscribe=1 + export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe %_openmpi_unload \ . /etc/profile.d/modules.sh; \ module unload mpi/openmpi-%{_arch}; diff --git a/openmpi.spec b/openmpi.spec index fcece89..113d171 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -54,18 +54,22 @@ %bcond_with psm2 %endif +# Some RCs require unreleased pmix version - at least let us test builds +%bcond_without pmix + # Run autogen - needed for some patches %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 4.1.5 -Release: 8%{?dist} +Version: 5.0.0 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ +ExcludeArch: %{ix86} # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 @@ -102,7 +106,7 @@ Obsoletes: %{name}-java-devel < %{version}-%{release} BuildRequires: libevent-devel %endif BuildRequires: libfabric-devel -%ifnarch s390 s390x +%ifnarch s390x BuildRequires: papi-devel %endif %if %{with orangefs} @@ -111,7 +115,12 @@ BuildRequires: orangefs-devel BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(Getopt::Long) -BuildRequires: pmix-devel +%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 psm} BuildRequires: infinipath-psm-devel @@ -126,6 +135,10 @@ BuildRequires: zlib-devel %if !0%{?el7} BuildRequires: rpm-mpi-hooks %endif +# For docs +BuildRequires: /usr/bin/sphinx-build +BuildRequires: python3-recommonmark +BuildRequires: python3-sphinx_rtd_theme Provides: mpi %if 0%{?rhel} == 7 @@ -133,6 +146,7 @@ Provides: mpi Requires: environment-modules %endif Requires: environment(modules) +Requires: prrte # openmpi currently requires ssh to run # https://svn.open-mpi.org/trac/ompi/ticket/4228 Requires: openssh-clients @@ -165,6 +179,13 @@ Requires: (python(abi) = %{python3_version} if python3) %description devel Contains development headers and libraries for openmpi. +%package doc +Summary: HTML documentation for openmpi +BuildArch: noarch + +%description doc +HTML documentation for openmpi. + %if %{with java} %package java Summary: Java library @@ -222,20 +243,23 @@ OpenMPI support for Python 3. --sysconfdir=%{_sysconfdir}/%{namearch} \ --disable-silent-rules \ --enable-builtin-atomics \ - --enable-mpi-cxx \ --enable-ipv6 \ %if %{with java} --enable-mpi-java \ %endif --enable-mpi1-compatibility \ + --enable-sphinx \ + --with-prrte=external \ --with-sge \ --with-valgrind \ --enable-memchecker \ --with-hwloc=/usr \ %if !0%{?el7} --with-libevent=external \ +%if %{with pmix} --with-pmix=external \ %endif +%endif %make_build V=1 @@ -243,10 +267,6 @@ OpenMPI support for Python 3. %make_install find %{buildroot}%{_libdir}/%{name}/lib -name \*.la | xargs rm find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9 -ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz -# Remove dangling symlink -rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1 -mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n} # Make the environment-modules file mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi @@ -304,7 +324,12 @@ mkdir -p %{buildroot}/%{python3_sitearch}/%{name} install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth %check -make check +fail=1 +# Failing on s390x - https://github.com/open-mpi/ompi/issues/10988 +%ifarch s390x +fail=0 +%endif +make check || ( cat test/*/test-suite.log && exit $fail ) %files %license LICENSE @@ -320,53 +345,54 @@ make check %config(noreplace) %{_sysconfdir}/%{namearch}/* %{_libdir}/%{name}/bin/mpi[er]* %{_libdir}/%{name}/bin/ompi* -%{_libdir}/%{name}/bin/orte[-dr_]* %if %{with ucx} %{_libdir}/%{name}/bin/oshmem_info -%{_libdir}/%{name}/bin/oshrun -%{_libdir}/%{name}/bin/shmemrun %endif +%{_libdir}/%{name}/bin/oshrun +%if %{without pmix} +%{_libdir}/%{name}/bin/pattrs +%{_libdir}/%{name}/bin/pctrl +%{_libdir}/%{name}/bin/pevent +%{_libdir}/%{name}/bin/plookup +%{_libdir}/%{name}/bin/pmix_info +%{_libdir}/%{name}/bin/pmixcc +%{_libdir}/%{name}/bin/pps +%{_libdir}/%{name}/bin/pquery +%{_libdir}/%{name}/lib/libpmix.so.2* +%{_libdir}/%{name}/lib/pmix/ +%{_libdir}/%{name}/share/pmix/ +%{_mandir}/%{namearch}/man1/pmix_info.1* +%{_mandir}/%{namearch}/man5/openpmix.5* +%endif +%{_mandir}/%{namearch}/man7/Open-MPI.7* %{_libdir}/%{name}/lib/*.so.40* -%{_libdir}/%{name}/lib/libmca_common_ofi.so.10* -%{_libdir}/%{name}/lib/libmca*.so.41* -%{_libdir}/%{name}/lib/libmca*.so.50* +%{_libdir}/%{name}/lib/*.so.80* %if 0%{?el7} %{_libdir}/%{name}/lib/pmix/ %endif -%{_mandir}/%{namearch}/man1/mpi[er]* +%{_mandir}/%{namearch}/man1/mpirun.1* +%{_mandir}/%{namearch}/man1/mpisync.1* %{_mandir}/%{namearch}/man1/ompi* -%{_mandir}/%{namearch}/man1/orte[-dr_]* %if %{with ucx} %{_mandir}/%{namearch}/man1/oshmem_info* -%{_mandir}/%{namearch}/man1/oshrun* -%{_mandir}/%{namearch}/man1/shmemrun* %endif -%{_mandir}/%{namearch}/man7/ompi_* -%{_mandir}/%{namearch}/man7/opal_* -%{_mandir}/%{namearch}/man7/orte* %{_libdir}/%{name}/lib/openmpi/* %{_datadir}/modulefiles/mpi/ %dir %{_libdir}/%{name}/share %dir %{_libdir}/%{name}/share/openmpi %{_libdir}/%{name}/share/openmpi/amca-param-sets %{_libdir}/%{name}/share/openmpi/help*.txt -%if %{with rdma} -%{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini -%endif %if 0%{?el7} %{_libdir}/%{name}/share/pmix/ %endif %files devel %dir %{_includedir}/%{namearch} -%{_libdir}/%{name}/bin/aggregate_profile.pl %{_libdir}/%{name}/bin/mpi[cCf]* %{_libdir}/%{name}/bin/opal_* -%{_libdir}/%{name}/bin/orte[cCf]* %if %{with ucx} %{_libdir}/%{name}/bin/osh[cCf]* %endif -%{_libdir}/%{name}/bin/profile2mat.pl %if %{with ucx} %{_libdir}/%{name}/bin/shmem[cCf]* %endif @@ -380,6 +406,7 @@ make check %{_mandir}/%{namearch}/man1/mpi[cCf]* %if %{with ucx} %{_mandir}/%{namearch}/man1/osh[cCf]* +%{_mandir}/%{namearch}/man1/oshmem-wrapper-compiler.1* %{_mandir}/%{namearch}/man1/shmem[cCf]* %endif %{_mandir}/%{namearch}/man1/opal_* @@ -388,6 +415,11 @@ make check %{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt %{macrosdir}/macros.%{namearch} +%files doc +%license LICENSE +%doc %{_libdir}/%{name}/share/doc/ +%exclude %{_libdir}/%{name}/share/doc/openmpi/javadoc-openmpi + %if %{with java} %files java %{_libdir}/%{name}/lib/mpi.jar @@ -395,8 +427,7 @@ make check %files java-devel %{_libdir}/%{name}/bin/mpijavac %{_libdir}/%{name}/bin/mpijavac.pl -# Currently this only contaings openmpi/javadoc -%{_libdir}/%{name}/share/doc/ +%doc %{_libdir}/%{name}/share/doc/openmpi/javadoc-openmpi %{_mandir}/%{namearch}/man1/mpijavac.1.gz %endif @@ -412,6 +443,12 @@ make check %changelog +* Fri Oct 27 2023 Orion Poplawski - 5.0.0-1 +- Update to 5.0.0 +- Drops 32-bit i686 support +- Drops C++ bindings +- Add doc sub-package + * Thu Oct 12 2023 Cristian Le - 4.1.5-8 - Added CMAKE_PREFIX_PATH to module file diff --git a/sources b/sources index 633d7e8..caa10ff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-4.1.5.tar.bz2) = 7a2188684ed7542fe42e1717ae72cb859b4f3d6f722c9d3ba04bfed6c2178b3e7da3a536629d312c23571fed4d9b2ca5e20e85898ae5144e9332bd898e6e1cc6 +SHA512 (openmpi-5.0.0.tar.bz2) = 29fa7d8d91c19d5ced867d4194da53c78dee775ad3d6ea6063a0609e2829799b06dc4603d165ab7cab045f645a0962d30774c8c05020b28da548c6cad55e82e6 From f73f8383b38aed8b7aa545f72f669f746058f670 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 30 Oct 2023 22:51:14 -0400 Subject: [PATCH 099/139] Disable building docs in RHEL builds python-recommonmark is unwanted in RHEL due to its dependencies. --- openmpi.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 113d171..5c01d21 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -34,8 +34,10 @@ %if %{defined rhel} %bcond_with orangefs +%bcond_with sphinx %else %bcond_without orangefs +%bcond_without sphinx %endif %ifarch x86_64 @@ -62,7 +64,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -135,10 +137,12 @@ 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 @@ -248,7 +252,9 @@ OpenMPI support for Python 3. --enable-mpi-java \ %endif --enable-mpi1-compatibility \ +%if %{with sphinx} --enable-sphinx \ +%endif --with-prrte=external \ --with-sge \ --with-valgrind \ @@ -443,6 +449,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Tue Oct 31 2023 Yaakov Selkowitz - 5.0.0-2 +- Disable building docs in RHEL builds + * Fri Oct 27 2023 Orion Poplawski - 5.0.0-1 - Update to 5.0.0 - Drops 32-bit i686 support From c510a02ce6bba0f0ce3493638113004b38ac3993 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 21 Dec 2023 08:00:14 -0700 Subject: [PATCH 100/139] Update to 5.0.1 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index cfdad56..240a6a1 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.4.tar.bz2 /openmpi-4.1.5.tar.bz2 /openmpi-5.0.0.tar.bz2 +/openmpi-5.0.1.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 5c01d21..d49a65c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -63,8 +63,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 5.0.0 -Release: 2%{?dist} +Version: 5.0.1 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -449,6 +449,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 +- Update to 5.0.1 + * Tue Oct 31 2023 Yaakov Selkowitz - 5.0.0-2 - Disable building docs in RHEL builds diff --git a/sources b/sources index caa10ff..6707b17 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.0.tar.bz2) = 29fa7d8d91c19d5ced867d4194da53c78dee775ad3d6ea6063a0609e2829799b06dc4603d165ab7cab045f645a0962d30774c8c05020b28da548c6cad55e82e6 +SHA512 (openmpi-5.0.1.tar.bz2) = 5cfd61f9ef9ce7bba5edf227d53f74233d7894a5d5a4e441d47eb1e9a4131918c6f6d181a107b6d240d603dcd10baa1f0f363cbf7e4a51d6fa7bd5ce03a49a82 From 3bd3f8a71e0d89bf28986ae60824642163ddaad5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 21 Jan 2024 11:16:26 +0000 Subject: [PATCH 101/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index d49a65c..f73d675 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -64,7 +64,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -449,6 +449,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 - Update to 5.0.1 From 70fcacf4831d739fd0ab8bcaaf29923254ac3f9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 21 Jan 2024 22:17:33 +0000 Subject: [PATCH 102/139] Fix GCC-14 new errors (https://github.com/openpmix/openpmix/pull/3245) --- 3245.patch | 42 ++++++++++++++++++++++++++++++++++++++++++ openmpi.spec | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 3245.patch diff --git a/3245.patch b/3245.patch new file mode 100644 index 0000000..cda3aa4 --- /dev/null +++ b/3245.patch @@ -0,0 +1,42 @@ +From 83dc94bf8da119057f543a12e4432aa48cd44e20 Mon Sep 17 00:00:00 2001 +From: Ralph Castain +Date: Tue, 19 Dec 2023 15:11:21 -0700 +Subject: [PATCH] Cast a few parameters when translating macros to functions + +When we made the transition from macros to functions, we +were forced to move things that went on the left side of +an `=` sign to being addresses of params to the function +call. Compilers are getting increasinly picky about matching +parameter types, so cast a few that might cause trouble. + +Signed-off-by: Ralph Castain +--- + include/pmix_deprecated.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/include/pmix_deprecated.h b/include/pmix_deprecated.h +index 0530123309..6ec00ac310 100644 +--- a/3rd-party/openpmix/include/pmix_deprecated.h ++++ b/3rd-party/openpmix/include/pmix_deprecated.h +@@ -520,10 +520,10 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n + (r) = PMIx_Argv_count(a) + + #define PMIX_ARGV_APPEND(r, a, b) \ +- (r) = PMIx_Argv_append_nosize(&(a), (b)) ++ (r) = PMIx_Argv_append_nosize((char***)&(a), (b)) + + #define PMIX_ARGV_PREPEND(r, a, b) \ +- (r) = PMIx_Argv_prepend_nosize(&(a), b) ++ (r) = PMIx_Argv_prepend_nosize((char***)&(a), b) + + #define PMIX_ARGV_APPEND_UNIQUE(r, a, b) \ + (r) = PMIx_Argv_append_unique_nosize(a, b) +@@ -892,7 +892,7 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n + PMIx_Data_buffer_load(b, d, s) + + #define PMIX_DATA_BUFFER_UNLOAD(b, d, s) \ +- PMIx_Data_buffer_unload(b, &(d), &(s)) ++ PMIx_Data_buffer_unload(b, (char**)&(d), (size_t*)&(s)) + + #define PMIX_PROC_CREATE(m, n) \ + (m) = PMIx_Proc_create(n) diff --git a/openmpi.spec b/openmpi.spec index f73d675..f47d844 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -76,6 +76,7 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +Patch1: 3245.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -451,6 +452,7 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog * Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild +- Fix GCC-14 new errors (https://github.com/openpmix/openpmix/pull/3245) * Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 - Update to 5.0.1 From fc7d48fb211a693b4a4bed51eaa2e69316c552f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Mon, 22 Jan 2024 00:48:20 +0000 Subject: [PATCH 103/139] The fix is in pmix, Revert "Fix GCC-14 new errors (https://github.com/openpmix/openpmix/pull/3245)" This reverts commit 70fcacf4831d739fd0ab8bcaaf29923254ac3f9f. --- 3245.patch | 42 ------------------------------------------ openmpi.spec | 2 -- 2 files changed, 44 deletions(-) delete mode 100644 3245.patch diff --git a/3245.patch b/3245.patch deleted file mode 100644 index cda3aa4..0000000 --- a/3245.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 83dc94bf8da119057f543a12e4432aa48cd44e20 Mon Sep 17 00:00:00 2001 -From: Ralph Castain -Date: Tue, 19 Dec 2023 15:11:21 -0700 -Subject: [PATCH] Cast a few parameters when translating macros to functions - -When we made the transition from macros to functions, we -were forced to move things that went on the left side of -an `=` sign to being addresses of params to the function -call. Compilers are getting increasinly picky about matching -parameter types, so cast a few that might cause trouble. - -Signed-off-by: Ralph Castain ---- - include/pmix_deprecated.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/include/pmix_deprecated.h b/include/pmix_deprecated.h -index 0530123309..6ec00ac310 100644 ---- a/3rd-party/openpmix/include/pmix_deprecated.h -+++ b/3rd-party/openpmix/include/pmix_deprecated.h -@@ -520,10 +520,10 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n - (r) = PMIx_Argv_count(a) - - #define PMIX_ARGV_APPEND(r, a, b) \ -- (r) = PMIx_Argv_append_nosize(&(a), (b)) -+ (r) = PMIx_Argv_append_nosize((char***)&(a), (b)) - - #define PMIX_ARGV_PREPEND(r, a, b) \ -- (r) = PMIx_Argv_prepend_nosize(&(a), b) -+ (r) = PMIx_Argv_prepend_nosize((char***)&(a), b) - - #define PMIX_ARGV_APPEND_UNIQUE(r, a, b) \ - (r) = PMIx_Argv_append_unique_nosize(a, b) -@@ -892,7 +892,7 @@ PMIX_EXPORT pmix_info_t* PMIx_Info_list_get_info(void *ptr, void *prev, void **n - PMIx_Data_buffer_load(b, d, s) - - #define PMIX_DATA_BUFFER_UNLOAD(b, d, s) \ -- PMIx_Data_buffer_unload(b, &(d), &(s)) -+ PMIx_Data_buffer_unload(b, (char**)&(d), (size_t*)&(s)) - - #define PMIX_PROC_CREATE(m, n) \ - (m) = PMIx_Proc_create(n) diff --git a/openmpi.spec b/openmpi.spec index f47d844..f73d675 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -76,7 +76,6 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -Patch1: 3245.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -452,7 +451,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog * Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -- Fix GCC-14 new errors (https://github.com/openpmix/openpmix/pull/3245) * Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 - Update to 5.0.1 From 29d7f098637bc293d375eff8aa66508d904ce8a0 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 24 Jan 2024 21:14:40 -0700 Subject: [PATCH 104/139] Drop unused BR on infinipath-psm --- openmpi.spec | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index f73d675..b5608a2 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -41,18 +41,12 @@ %endif %ifarch x86_64 -%if 0%{?rhel} >= 8 -%bcond_with psm -%else -%bcond_without psm -%endif %if 0%{?rhel} >= 10 %bcond_with psm2 %else %bcond_without psm2 %endif %else -%bcond_with psm %bcond_with psm2 %endif @@ -124,9 +118,6 @@ BuildRequires: pmix-devel >= 4.2.7 BuildRequires: prrte BuildRequires: prrte-devel BuildRequires: python%{python3_pkgversion}-devel -%if %{with psm} -BuildRequires: infinipath-psm-devel -%endif %if %{with psm2} BuildRequires: libpsm2-devel %endif @@ -449,6 +440,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Wed Jan 24 2024 Orion Poplawski - 5.0.1-3 +- Drop unused BR on infinipath-psm + * Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 00cd37ba845b07cf601a9ab5e8356adfd0481b00 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 24 Jan 2024 21:15:20 -0700 Subject: [PATCH 105/139] Bump release --- openmpi.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index b5608a2..b780e93 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ From ec3d151739e4d8c78a8352c4d6810d1f29e38b8c Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 6 Feb 2024 19:40:29 -0700 Subject: [PATCH 106/139] Update to 5.0.2 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 240a6a1..b73302c 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-4.1.5.tar.bz2 /openmpi-5.0.0.tar.bz2 /openmpi-5.0.1.tar.bz2 +/openmpi-5.0.2.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index b780e93..82eaf2c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -57,8 +57,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 5.0.1 -Release: 3%{?dist} +Version: 5.0.2 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -440,6 +440,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Wed Feb 07 2024 Orion Poplawski - 5.0.2-1 +- Update to 5.0.2 + * Wed Jan 24 2024 Orion Poplawski - 5.0.1-3 - Drop unused BR on infinipath-psm diff --git a/sources b/sources index 6707b17..7226071 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.1.tar.bz2) = 5cfd61f9ef9ce7bba5edf227d53f74233d7894a5d5a4e441d47eb1e9a4131918c6f6d181a107b6d240d603dcd10baa1f0f363cbf7e4a51d6fa7bd5ce03a49a82 +SHA512 (openmpi-5.0.2.tar.bz2) = 0812608dec8b4aaf5da9cd02a282595ccb31956138dd5bdc1da2443204b8de238081b59d45ac2bc57596300fdc097fe5cbf72590669f62c1b38490b6075cff4c From 7c043588b79f53af04a4d0fc72de1044dc194126 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Mon, 6 Nov 2023 13:03:56 +0200 Subject: [PATCH 107/139] Properly check valgrind arches Signed-off-by: David Abdurachmanov --- openmpi.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 82eaf2c..702f68d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -79,7 +79,9 @@ BuildRequires: libtool BuildRequires: perl(Data::Dumper) BuildRequires: perl(File::Find) %endif +%ifarch %{valgrind_arches} BuildRequires: valgrind-devel +%endif %if %{with rdma} BuildRequires: opensm-devel > 3.3.0 BuildRequires: rdma-core-devel @@ -248,8 +250,10 @@ OpenMPI support for Python 3. %endif --with-prrte=external \ --with-sge \ +%ifarch %{valgrind_arches} --with-valgrind \ --enable-memchecker \ +%endif --with-hwloc=/usr \ %if !0%{?el7} --with-libevent=external \ @@ -440,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Mon Mar 04 2024 David Abdurachmanov - 5.0.2-2 +- Add support for riscv64 + * Wed Feb 07 2024 Orion Poplawski - 5.0.2-1 - Update to 5.0.2 From 89a7439e103d3463408c17e52f46638fc9221ed7 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 23 Apr 2024 20:03:29 -0600 Subject: [PATCH 108/139] Update to 5.0.3 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b73302c..639f4a9 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-5.0.0.tar.bz2 /openmpi-5.0.1.tar.bz2 /openmpi-5.0.2.tar.bz2 +/openmpi-5.0.3.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 702f68d..0007877 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -57,8 +57,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 5.0.2 -Release: 2%{?dist} +Version: 5.0.3 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -444,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Wed Apr 24 2024 Orion Poplawski - 5.0.3-1 +- Update to 5.0.3 + * Mon Mar 04 2024 David Abdurachmanov - 5.0.2-2 - Add support for riscv64 diff --git a/sources b/sources index 7226071..56f4d8b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.2.tar.bz2) = 0812608dec8b4aaf5da9cd02a282595ccb31956138dd5bdc1da2443204b8de238081b59d45ac2bc57596300fdc097fe5cbf72590669f62c1b38490b6075cff4c +SHA512 (openmpi-5.0.3.tar.bz2) = 60e8f6dcd6b1531ce8164e02f40be9a364ab484166a2a7b13bdff115a508f0596e97ad0a4204a47799ae608ba484a7ba9503042bddffe675f09ce22071b0b4a9 From 55c4cf4c790e82757000d8303e50b8eeb22f5dae Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 08:07:49 +0200 Subject: [PATCH 109/139] Rebuilt for Python 3.13 --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 0007877..630c5e9 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -444,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Sat Jun 08 2024 Python Maint - 5.0.3-2 +- Rebuilt for Python 3.13 + * Wed Apr 24 2024 Orion Poplawski - 5.0.3-1 - Update to 5.0.3 From 4091a0a5b6cb8ffe2bcec891eb562abb0dce20ac Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 20:55:15 +0000 Subject: [PATCH 110/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 630c5e9..3ec380e 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -444,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 5.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sat Jun 08 2024 Python Maint - 5.0.3-2 - Rebuilt for Python 3.13 From 66b78ce6ad9a8eefc1c2706973ccfc03cf52d43f Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Tue, 30 Jul 2024 21:34:07 -0600 Subject: [PATCH 111/139] Update to 5.0.5 Update to 5.0.5 Update to 5.0.5 Update to 5.0.5 Update to 5.0.5 Update to 5.0.5 --- .gitignore | 1 + openmpi.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 639f4a9..da2b3f5 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-5.0.1.tar.bz2 /openmpi-5.0.2.tar.bz2 /openmpi-5.0.3.tar.bz2 +/openmpi-5.0.5.tar.bz2 diff --git a/openmpi.spec b/openmpi.spec index 3ec380e..4ad1669 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -57,8 +57,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 5.0.3 -Release: 3%{?dist} +Version: 5.0.5 +Release: 1%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -444,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Wed Jul 31 2024 Orion Poplawski - 5.0.5-1 +- Update to 5.0.5 + * Thu Jul 18 2024 Fedora Release Engineering - 5.0.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index 56f4d8b..2845843 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.3.tar.bz2) = 60e8f6dcd6b1531ce8164e02f40be9a364ab484166a2a7b13bdff115a508f0596e97ad0a4204a47799ae608ba484a7ba9503042bddffe675f09ce22071b0b4a9 +SHA512 (openmpi-5.0.5.tar.bz2) = d0a137ebdeb578f0457113c6dd0f84d407c88d8f8844e6796114c8026d7391ebfb29d105f16289338eb3ac653ae9d3c0bdc4aa651402444b2ca91c1c447dc409 From 0bb187c01cb853eb67726e5d3c4667480fb488cc Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Wed, 31 Jul 2024 17:09:29 +0200 Subject: [PATCH 112/139] Rebuild with rpm-mpi-hooks-8-10 to fix provides (#2302033) --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index 4ad1669..b22f68c 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface License: BSD and MIT and Romio URL: http://www.open-mpi.org/ @@ -444,6 +444,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Wed Jul 31 2024 Sandro Mani - 5.0.5-2 +- Rebuild with rpm-mpi-hooks-8-10 to fix provides (#2302033) + * Wed Jul 31 2024 Orion Poplawski - 5.0.5-1 - Update to 5.0.5 From f829fbc7e745727f620c5196627cda6fc8b3ae0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Mon, 2 Sep 2024 12:23:49 +0200 Subject: [PATCH 113/139] convert license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- openmpi.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index b22f68c..f0df4e8 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,9 +58,10 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.5 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Open Message Passing Interface -License: BSD and MIT and Romio +# Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. +License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio URL: http://www.open-mpi.org/ ExcludeArch: %{ix86} @@ -444,6 +445,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Mon Sep 02 2024 Miroslav Suchý - 5.0.5-3 +- convert license to SPDX + * Wed Jul 31 2024 Sandro Mani - 5.0.5-2 - Rebuild with rpm-mpi-hooks-8-10 to fix provides (#2302033) From 5940858d2f1279e6d35f8e0216fa039b172b5e97 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 7 Oct 2024 17:57:25 -0600 Subject: [PATCH 114/139] Add upstream patch to fix hdf5 tests --- 12847.patch | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ openmpi.spec | 7 +++- 2 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 12847.patch diff --git a/12847.patch b/12847.patch new file mode 100644 index 0000000..c73cd21 --- /dev/null +++ b/12847.patch @@ -0,0 +1,104 @@ +From 27901cfc0f3c57969717cb88b8695821b4872bbc Mon Sep 17 00:00:00 2001 +From: Joseph Schuchart +Date: Sat, 5 Oct 2024 17:53:35 +0200 +Subject: [PATCH] Retain info references on public info dup + +We need to keep the references when duplicating info through +MPI_Info_dup so that subsequent calls to MPI_Info_dup +see the same info entries. + +Test case provided by Neil Fortner: + +```C +#include +#include +#include + +#define ERROR(msg) \ +do { \ + printf(msg "\n"); \ + exit(1); \ +} while(0) + +int main(void) { + MPI_Info info1 = MPI_INFO_NULL, info2 = MPI_INFO_NULL, info3 = MPI_INFO_NULL; + int nkeys1, nkeys2, nkeys3; + + if (MPI_Info_create(&info1) != MPI_SUCCESS) + ERROR("MPI_Info_create failed"); + + if (MPI_Info_set(info1, "custom_key", "custom_value") != MPI_SUCCESS) + ERROR("MPI_Info_set failed"); + + if (MPI_Info_get_nkeys(info1, &nkeys1) != MPI_SUCCESS) + ERROR("MPI_Info_get_nkeys(info1, &nkeys1) failed"); + + if (MPI_Info_dup(info1, &info2) != MPI_SUCCESS) + ERROR("MPI_Info_dup failed"); + + if (MPI_Info_free(&info1) != MPI_SUCCESS) + ERROR("MPI_Info_free(&info1) failed"); + + if (MPI_Info_get_nkeys(info2, &nkeys2) != MPI_SUCCESS) + ERROR("MPI_Info_get_nkeys(info2, &nkeys2) failed"); + + if (nkeys1 != nkeys2) + ERROR("Number of keys on duplicated MPI info object does not match that on original"); + + if (MPI_Info_dup(info2, &info3) != MPI_SUCCESS) + ERROR("MPI_Info_dup failed"); + + if (MPI_Info_free(&info2) != MPI_SUCCESS) + ERROR("MPI_Info_free(&info2) failed"); + + if (MPI_Info_get_nkeys(info3, &nkeys3) != MPI_SUCCESS) + ERROR("MPI_Info_get_nkeys(info3, &nkeys3) failed"); + + if (nkeys1 != nkeys3) + ERROR("Number of keys on double duplicated MPI info object does not match that on original"); + + if (MPI_Info_free(&info3) != MPI_SUCCESS) + ERROR("MPI_Info_free(&info3) failed"); + + printf("test passed\n"); + + return 0; +} +``` + +Signed-off-by: Joseph Schuchart +--- + opal/util/info.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/opal/util/info.c b/opal/util/info.c +index 12981e8297c..72277bbb824 100644 +--- a/opal/util/info.c ++++ b/opal/util/info.c +@@ -69,19 +69,24 @@ OBJ_CLASS_INSTANCE(opal_info_entry_t, opal_list_item_t, info_entry_constructor, + * key-value pairs that are not internal and that had been referenced, + * either through opal_info_get or opal_info_set. + */ +-static int opal_info_dup_impl(opal_info_t *info, opal_info_t **newinfo, bool public_only) ++static int opal_info_dup_impl(opal_info_t *info, opal_info_t **newinfo, bool public) + { + opal_info_entry_t *iterator; + + OPAL_THREAD_LOCK(info->i_lock); + OPAL_LIST_FOREACH (iterator, &info->super, opal_info_entry_t) { + /* skip keys that are internal if we didn't ask for them */ +- if (public_only && (iterator->ie_internal || iterator->ie_referenced == 0)) continue; ++ if (public && (iterator->ie_internal || iterator->ie_referenced == 0)) continue; + /* create a new info entry and retain the string objects */ + opal_info_entry_t *newentry = OBJ_NEW(opal_info_entry_t); + newentry->ie_key = iterator->ie_key; + OBJ_RETAIN(iterator->ie_key); + newentry->ie_value = iterator->ie_value; ++ if (public) { ++ /* for public info-dup we also duplicate the references so that subsequent ++ * duplications see the same info keys */ ++ newentry->ie_referenced = iterator->ie_referenced; ++ } + OBJ_RETAIN(iterator->ie_value); + opal_list_append (&((*newinfo)->super), (opal_list_item_t *) newentry); + } diff --git a/openmpi.spec b/openmpi.spec index f0df4e8..0800121 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.5 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio @@ -71,6 +71,8 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +# Upstream fix for hdf5 tests +Patch: https://github.com/open-mpi/ompi/pull/12847.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -445,6 +447,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Mon Oct 07 2024 Orion Poplawski - 5.0.5-4 +- Add upstream patch to fix hdf5 tests + * Mon Sep 02 2024 Miroslav Suchý - 5.0.5-3 - convert license to SPDX From 5445fb9119b17193e53ae85dfbbd2ddfc65f4c1b Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 16 Nov 2024 16:09:49 -0700 Subject: [PATCH 115/139] Update to 5.0.6 --- .gitignore | 1 + 12847.patch | 104 --------------------------------------------------- openmpi.spec | 9 +++-- sources | 2 +- 4 files changed, 7 insertions(+), 109 deletions(-) delete mode 100644 12847.patch diff --git a/.gitignore b/.gitignore index da2b3f5..98ccb0c 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-5.0.2.tar.bz2 /openmpi-5.0.3.tar.bz2 /openmpi-5.0.5.tar.bz2 +/openmpi-5.0.6.tar.bz2 diff --git a/12847.patch b/12847.patch deleted file mode 100644 index c73cd21..0000000 --- a/12847.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 27901cfc0f3c57969717cb88b8695821b4872bbc Mon Sep 17 00:00:00 2001 -From: Joseph Schuchart -Date: Sat, 5 Oct 2024 17:53:35 +0200 -Subject: [PATCH] Retain info references on public info dup - -We need to keep the references when duplicating info through -MPI_Info_dup so that subsequent calls to MPI_Info_dup -see the same info entries. - -Test case provided by Neil Fortner: - -```C -#include -#include -#include - -#define ERROR(msg) \ -do { \ - printf(msg "\n"); \ - exit(1); \ -} while(0) - -int main(void) { - MPI_Info info1 = MPI_INFO_NULL, info2 = MPI_INFO_NULL, info3 = MPI_INFO_NULL; - int nkeys1, nkeys2, nkeys3; - - if (MPI_Info_create(&info1) != MPI_SUCCESS) - ERROR("MPI_Info_create failed"); - - if (MPI_Info_set(info1, "custom_key", "custom_value") != MPI_SUCCESS) - ERROR("MPI_Info_set failed"); - - if (MPI_Info_get_nkeys(info1, &nkeys1) != MPI_SUCCESS) - ERROR("MPI_Info_get_nkeys(info1, &nkeys1) failed"); - - if (MPI_Info_dup(info1, &info2) != MPI_SUCCESS) - ERROR("MPI_Info_dup failed"); - - if (MPI_Info_free(&info1) != MPI_SUCCESS) - ERROR("MPI_Info_free(&info1) failed"); - - if (MPI_Info_get_nkeys(info2, &nkeys2) != MPI_SUCCESS) - ERROR("MPI_Info_get_nkeys(info2, &nkeys2) failed"); - - if (nkeys1 != nkeys2) - ERROR("Number of keys on duplicated MPI info object does not match that on original"); - - if (MPI_Info_dup(info2, &info3) != MPI_SUCCESS) - ERROR("MPI_Info_dup failed"); - - if (MPI_Info_free(&info2) != MPI_SUCCESS) - ERROR("MPI_Info_free(&info2) failed"); - - if (MPI_Info_get_nkeys(info3, &nkeys3) != MPI_SUCCESS) - ERROR("MPI_Info_get_nkeys(info3, &nkeys3) failed"); - - if (nkeys1 != nkeys3) - ERROR("Number of keys on double duplicated MPI info object does not match that on original"); - - if (MPI_Info_free(&info3) != MPI_SUCCESS) - ERROR("MPI_Info_free(&info3) failed"); - - printf("test passed\n"); - - return 0; -} -``` - -Signed-off-by: Joseph Schuchart ---- - opal/util/info.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/opal/util/info.c b/opal/util/info.c -index 12981e8297c..72277bbb824 100644 ---- a/opal/util/info.c -+++ b/opal/util/info.c -@@ -69,19 +69,24 @@ OBJ_CLASS_INSTANCE(opal_info_entry_t, opal_list_item_t, info_entry_constructor, - * key-value pairs that are not internal and that had been referenced, - * either through opal_info_get or opal_info_set. - */ --static int opal_info_dup_impl(opal_info_t *info, opal_info_t **newinfo, bool public_only) -+static int opal_info_dup_impl(opal_info_t *info, opal_info_t **newinfo, bool public) - { - opal_info_entry_t *iterator; - - OPAL_THREAD_LOCK(info->i_lock); - OPAL_LIST_FOREACH (iterator, &info->super, opal_info_entry_t) { - /* skip keys that are internal if we didn't ask for them */ -- if (public_only && (iterator->ie_internal || iterator->ie_referenced == 0)) continue; -+ if (public && (iterator->ie_internal || iterator->ie_referenced == 0)) continue; - /* create a new info entry and retain the string objects */ - opal_info_entry_t *newentry = OBJ_NEW(opal_info_entry_t); - newentry->ie_key = iterator->ie_key; - OBJ_RETAIN(iterator->ie_key); - newentry->ie_value = iterator->ie_value; -+ if (public) { -+ /* for public info-dup we also duplicate the references so that subsequent -+ * duplications see the same info keys */ -+ newentry->ie_referenced = iterator->ie_referenced; -+ } - OBJ_RETAIN(iterator->ie_value); - opal_list_append (&((*newinfo)->super), (opal_list_item_t *) newentry); - } diff --git a/openmpi.spec b/openmpi.spec index 0800121..fc54188 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -57,8 +57,8 @@ %bcond_with autogen Name: openmpi%{?_cc_name_suffix} -Version: 5.0.5 -Release: 4%{?dist} +Version: 5.0.6 +Release: 1%{?dist} Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio @@ -71,8 +71,6 @@ Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Upstream fix for hdf5 tests -Patch: https://github.com/open-mpi/ompi/pull/12847.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -447,6 +445,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Sat Nov 16 2024 Orion Poplawski - 5.0.6-1 +- Update to 5.0.6 + * Mon Oct 07 2024 Orion Poplawski - 5.0.5-4 - Add upstream patch to fix hdf5 tests diff --git a/sources b/sources index 2845843..435b836 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.5.tar.bz2) = d0a137ebdeb578f0457113c6dd0f84d407c88d8f8844e6796114c8026d7391ebfb29d105f16289338eb3ac653ae9d3c0bdc4aa651402444b2ca91c1c447dc409 +SHA512 (openmpi-5.0.6.tar.bz2) = 097f7bb18d506b362f16d46df308b387e3173068ba8688739db756919453e1fe947c6d8c2e098481617d8c6bbecb8990002db42f284b1732a80ef3edaaa29f20 From 16472793a135aa0a89d568d8f9bc3c96c734c703 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jan 2025 21:44:57 +0000 Subject: [PATCH 116/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- openmpi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index fc54188..0587bd4 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio @@ -445,6 +445,9 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog +* Fri Jan 17 2025 Fedora Release Engineering - 5.0.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Nov 16 2024 Orion Poplawski - 5.0.6-1 - Update to 5.0.6 From c2701f130749f68ed4ad88c3d872b3c132e61414 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 7 Feb 2025 22:53:32 -0700 Subject: [PATCH 117/139] Rename .rpmlint to openmpi.rpmlintrc --- .rpmlint => openmpi.rpmlintrc | 1 - 1 file changed, 1 deletion(-) rename .rpmlint => openmpi.rpmlintrc (93%) diff --git a/.rpmlint b/openmpi.rpmlintrc similarity index 93% rename from .rpmlint rename to openmpi.rpmlintrc index 0aa5b0e..2342110 100644 --- a/.rpmlint +++ b/openmpi.rpmlintrc @@ -1,4 +1,3 @@ -from Config import * addFilter("shared-library-calls-exit .*/lib(mpi|open-rte|oshmem|_java)\.so"); # We use environment modules to load these paths addFilter("file-not-in-%lang /usr/share/man/openmpi-"); From b14325c7438abc85d49e275580ed504909a2080f Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 16 Feb 2025 12:24:30 -0700 Subject: [PATCH 118/139] Convert to %autorelease and %autochangelog [skip changelog] --- changelog | 881 ++++++++++++++++++++++++++++++++++++++++++++++++++ openmpi.spec | 885 +-------------------------------------------------- 2 files changed, 883 insertions(+), 883 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..e55d506 --- /dev/null +++ b/changelog @@ -0,0 +1,881 @@ +* Fri Jan 17 2025 Fedora Release Engineering - 5.0.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Nov 16 2024 Orion Poplawski - 5.0.6-1 +- Update to 5.0.6 + +* Mon Oct 07 2024 Orion Poplawski - 5.0.5-4 +- Add upstream patch to fix hdf5 tests + +* Mon Sep 02 2024 Miroslav Suchý - 5.0.5-3 +- convert license to SPDX + +* Wed Jul 31 2024 Sandro Mani - 5.0.5-2 +- Rebuild with rpm-mpi-hooks-8-10 to fix provides (#2302033) + +* Wed Jul 31 2024 Orion Poplawski - 5.0.5-1 +- Update to 5.0.5 + +* Thu Jul 18 2024 Fedora Release Engineering - 5.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jun 08 2024 Python Maint - 5.0.3-2 +- Rebuilt for Python 3.13 + +* Wed Apr 24 2024 Orion Poplawski - 5.0.3-1 +- Update to 5.0.3 + +* Mon Mar 04 2024 David Abdurachmanov - 5.0.2-2 +- Add support for riscv64 + +* Wed Feb 07 2024 Orion Poplawski - 5.0.2-1 +- Update to 5.0.2 + +* Wed Jan 24 2024 Orion Poplawski - 5.0.1-3 +- Drop unused BR on infinipath-psm + +* Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 +- Update to 5.0.1 + +* Tue Oct 31 2023 Yaakov Selkowitz - 5.0.0-2 +- Disable building docs in RHEL builds + +* Fri Oct 27 2023 Orion Poplawski - 5.0.0-1 +- Update to 5.0.0 +- Drops 32-bit i686 support +- Drops C++ bindings +- Add doc sub-package + +* Thu Oct 12 2023 Cristian Le - 4.1.5-8 +- Added CMAKE_PREFIX_PATH to module file + +* Sat Sep 30 2023 Benson Muite - 4.1.5-7 +- Add include and cmake directories for development files for OpenMPI packages + +* Fri Sep 22 2023 Orion Poplawski - 4.1.5-6 +- Rebuild for pmix 4.1.3 (bz#2240042) + +* Thu Jul 20 2023 Fedora Release Engineering - 4.1.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jul 10 2023 Yaakov Selkowitz - 4.1.5-4 +- Disable PSM2 in RHEL 10 builds + +* Thu Jun 22 2023 Yaakov Selkowitz - 4.1.5-3 +- Disable PSM, OrangeFS in RHEL builds + +* Tue Jun 13 2023 Python Maint - 4.1.5-2 +- Rebuilt for Python 3.12 + +* Sun Feb 26 2023 Orion Poplawski - 4.1.5-1 +- Update to 4.1.5 + +* Thu Jan 19 2023 Fedora Release Engineering - 4.1.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Nov 11 2022 Orion Poplawski - 4.1.4-7 +- Re-enable IPv6 support - was not the issue + +* Fri Nov 11 2022 Orion Poplawski - 4.1.4-6 +- Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) + +* Fri Aug 19 2022 Davide Cavalca - 4.1.4-5 +- Enable IPv6 support (bz#2119845) + +* Fri Jul 22 2022 Fedora Release Engineering - 4.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jul 10 2022 Orion Poplawski - 4.1.4-3 +- Drop java for i686 (bz#2104085) + +* Mon Jun 13 2022 Python Maint - 4.1.4-2 +- Rebuilt for Python 3.11 + +* Sun May 29 2022 Orion Poplawski - 4.1.4-1 +- Update to 4.1.4 + +* Sat Apr 16 2022 Orion Poplawski - 4.1.3-1 +- Update to 4.1.3 + +* Sat Feb 05 2022 Jiri Vanek - 4.1.2-3 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Fedora Release Engineering - 4.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Nov 29 2021 Orion Poplawski - 4.1.2-1 +- Update to 4.1.2 + +* Sun Oct 10 2021 Orion Poplawski - 4.1.2-0.1.rc1 +- Update to 4.1.2rc1 + +* Fri Sep 03 2021 Sandro Mani - 4.1.1-4 +- Also own %%{_libdir}/%%{name}/lib/cmake/ + +* Thu Jul 22 2021 Fedora Release Engineering - 4.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 4.1.1-2 +- Rebuilt for Python 3.10 + +* Tue Apr 27 2021 Orion Poplawski - 4.1.1-1 +- Update to 4.1.1 + +* Mon Apr 05 2021 Orion Poplawski - 4.1.1-0.2.rc2 +- Update to 4.1.1rc2 + +* Thu Feb 11 2021 Orion Poplawski - 4.1.1-0.1.rc1 +- Update to 4.1.1rc1 + +* Thu Jan 28 2021 Orion Poplawski - 4.1.0-5 +- Add upstream patch for generalized requests + +* Thu Jan 28 2021 Orion Poplawski - 4.1.0-4 +- Add upstream patch to fix AVX library linkage + +* Tue Jan 26 2021 Fedora Release Engineering - 4.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sun Jan 24 2021 Orion Poplawski - 4.1.0-2 +- Use set_build_flags macro +- Drop old opt_ macros + +* Sun Jan 24 2021 Orion Poplawski - 4.1.0-1 +- Update to 4.1.0 + +* Wed Sep 23 2020 Orion Poplawski - 4.0.5-2 +- Rebuild for libevent 2.1.12 + +* Wed Sep 02 2020 Orion Poplawski - 4.0.5-1 +- Update to 4.0.5 + +* Tue Jul 28 2020 Fedora Release Engineering - 4.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 11 2020 Jiri Vanek - 4.0.4-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Wed Jun 17 2020 Orion Poplawski - 4.0.4-1 +- Update to 4.0.4 + +* Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 +- Rebuilt for Python 3.9 + +* Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 +- Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) + +* Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 +- Update to 4.0.4 rc1 + +* Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 +- Update to 4.0.3 (use x to avoid epoch) + +* Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 +- Update to 4.0.3rc4 + +* Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 +- Update to 4.0.3rc3 + +* Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 10 2019 Dominik Mierzejewski - 4.0.2-4 +- disable rdma on ARM 32-bit (bz#1780584) + +* Sun Nov 24 2019 Orion Poplawski - 4.0.2-3 +- Add upstream fix for error in calculating aggregators in 32bit mode + +* Fri Nov 15 2019 Orion Poplawski - 4.0.2-2 +- Drop python2 for Fedora 32+ (bz#1773125) + +* Mon Oct 7 2019 Philip Kovacs - 4.0.2-1 +- Update to 4.0.2 + +* Sat Sep 14 2019 Orion Poplawski - 4.0.2-0.4.rc2 +- Update to 4.0.2rc2 +- Re-enable C++ bindings on power64 + +* Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 +- Rebuild for annobin update to correct aarch64 build (bug #1748529) + +* Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 +- Apply upstream PR 6946 to avoid linking to __mmap +- Add build deps to run upstream autogen.pl +- Remove embedded tabs in the spec + +* Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 +- Update to 4.0.2rc1 +- Closes bug #1746564 + +* Thu Aug 29 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-11 +- Fix MANPATH so normal modules can still be loaded (#1564899) + +* Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-10 +- Rebuilt for hwloc-2.0 + +* Sun Aug 18 2019 Miro Hrončok - 4.0.1-9 +- Rebuilt for Python 3.8 + +* Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 +- Remove torque support (torque retired: bug #1676147) + +* Thu Jul 25 2019 Fedora Release Engineering - 4.0.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 21 2019 Orion Poplawski - 4.0.1-6 +- Rebuild for libfabric 1.8 +- Re-enable UCX, hopefully issue fixed in 1.5.2 + +* Mon May 27 2019 Orion Poplawski - 4.0.1-5 +- Drop UCX support for now + +* Wed May 15 2019 Orion Poplawski - 4.0.1-4 +- Add upstream patch OSC/UCX: use correct rkey for atomic_fadd in rget/rput + +* Wed May 15 2019 Orion Poplawski - 4.0.1-3 +- Add upstream patch to fix issue with UCX usage in BTL/UCT + +* Tue May 7 2019 Orion Poplawski - 4.0.1-2 +- Add a guard for python3 version (#1705296) +- Add requires on python(abi) to python packages + +* Sun Apr 28 2019 Orion Poplawski - 4.0.1-1 +- Update to 4.0.1 + +* Sun Apr 28 2019 Orion Poplawski - 3.1.4-1 +- Update to 3.1.4 + +* Mon Apr 22 2019 Björn Esser - 3.1.3-5 +- rebuilt(opensm) + +* Wed Apr 17 2019 Christoph Junghans - 3.1.3-4 +- Rebuild to fix ibosmcomp linkage + +* Sat Mar 2 2019 Orion Poplawski - 3.1.3-3 +- Enable valgrind on s390x +- Cleanup arch conditionals + +* Tue Feb 19 2019 Orion Poplawski - 3.1.3-2 +- Enable PVFS2/OrangeFS MPI-IO support (bug #1655010) + +* Wed Feb 13 2019 Orion Poplawski - 3.1.3-1 +- Update to 3.1.3 +- Drop ppc64le patch fixed upstream +- Use external libevent and pmix, except on EL7 +- Fix EPEL7 builds + +* Sat Feb 2 2019 Orion Poplawski - 2.1.6-1 +- Update to 2.1.6 + +* Fri Feb 01 2019 Fedora Release Engineering - 2.1.6-0.2.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Nov 28 2018 Orion Poplawski - 2.1.6-0.1.rc1 +- Update to 2.1.6rc1 + +* Thu Oct 11 2018 Orion Poplawski - 2.1.5-1 +- Update to 2.1.5 + +* Sun Jul 22 2018 Orion Poplawski - 2.1.1-14 +- Add BR gcc-c++ (fix FTBFS bug #1605323) + +* Fri Jul 13 2018 Fedora Release Engineering - 2.1.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 2.1.1-12 +- Rebuilt for Python 3.7 + +* Thu May 10 2018 Troy Dawson - 2.1.1-11 +- Build with rdma-core-devel instead of libibcm-devel + +* Mon Apr 30 2018 Florian Weimer - 2.1.1-10 +- Rebuild with new flags from redhat-rpm-config + +* Fri Feb 09 2018 Igor Gnatenko - 2.1.1-9 +- Escape macros in %%changelog + +* Mon Feb 05 2018 Orion Poplawski - 2.1.1-8 +- Rebuild for rdma-core 16.2 + +* Wed Jan 31 2018 Christoph Junghans - 2.1.1-7 +- Rebuild for gfortran-8 + +* Fri Jan 12 2018 Iryna Shcherbina - 2.1.1-6 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Wed Aug 23 2017 Adam Williamson - 2.1.1-5 +- Disable RDMA support on 32-bit ARM (#1484155) +- Disable hanging opal_fifo test on ppc64le (gh #2526 / #2966) + +* Thu Aug 03 2017 Fedora Release Engineering - 2.1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 19 2017 Orion Poplawski - 2.1.1-2 +- Provide pkgconfig files in the main namespace as well (1471512) + +* Fri May 12 2017 Orion Poplawski - 2.1.1-1 +- Update to 2.1.1 + +* Thu May 4 2017 Orion Poplawski - 2.1.0-1 +- Update to 2.1.0 + +* Sat Feb 11 2017 Fedora Release Engineering - 2.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 2 2017 Orion Poplawski - 2.0.2-1 +- Update to 2.0.2 + +* Sat Jan 28 2017 Björn Esser - 2.0.1-7 +- Rebuilt for GCC-7 + +* Mon Dec 19 2016 Miro Hrončok - 2.0.1-6 +- Rebuild for Python 3.6 + +* Wed Nov 2 2016 Orion Poplawski - 2.0.1-5 +- Split python support into sub-packages (bug #1391157) + +* Thu Oct 27 2016 Dan Horák - 2.0.1-4 +- Temporarily disable C++ bindings on ppc64/ppc64le (#1388561) + +* Mon Oct 24 2016 Orion Poplawski - 2.0.1-3 +- Fix License tag format +- Use /usr/share/modulefiles for modulefile install location + +* Mon Oct 24 2016 Orion Poplawski - 2.0.1-2 +- Add upstream patch for thread wait issue with mpi4py + +* Fri Oct 21 2016 Orion Poplawski - 2.0.1-1 +- Update to 2.0.1 + +* Thu Oct 20 2016 Orion Poplawski - 1.10.4-4 +- Support s390(x) (bug #1358701) + +* Thu Oct 20 2016 Orion Poplawski - 1.10.4-3 +- Enable psm/psm2 support on x86_64 (bug #1263655) + +* Wed Oct 19 2016 Orion Poplawski - 1.10.4-2 +- Enable MPI_THREAD_MULTIPLE support (bug #1369989) + +* Wed Oct 19 2016 Orion Poplawski - 1.10.4-1 +- Update to 1.10.4 + +* Thu Sep 15 2016 Orion Poplawski - 1.10.3-3 +- Rebuild for papi 5.5.0 + +* Fri Jun 24 2016 Orion Poplawski - 1.10.3-2 +- Use bundled libevent, system version causes issues (bug #1235044) + +* Wed Jun 15 2016 Orion Poplawski - 1.10.3-1 +- Update to 1.10.3 +- New javadoc location + +* Thu Feb 04 2016 Fedora Release Engineering - 1.10.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 26 2016 Orion Poplawski - 1.10.2-2 +- Rebuild for papi 5.4.3 + +* Thu Jan 21 2016 Orion Poplawski - 1.10.2-1 +- Update to 1.10.2 +- Drop upsream nbc_copy patch + +* Tue Nov 10 2015 Orion Poplawski - 1.10.1-3 +- Add upstream patch to fix zero size message + +* Tue Nov 10 2015 Fedora Release Engineering - 1.10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Nov 5 2015 Orion Poplawski - 1.10.1-1 +- Update to 1.10.1 +- Require environment(modules) +- Fixup fortran module install (bug #1154982) + +* Tue Oct 6 2015 Orion Poplawski - 1.10.0-3 +- Do not set CFLAGS in %%_openmpi_load + +* Wed Sep 16 2015 Orion Poplawski - 1.10.0-2 +- Add patch to add needed opal/util/argv.h includes + +* Tue Sep 15 2015 Orion Poplawski - 1.10.0-1 +- Update to 1.10.0 + +* Thu Aug 27 2015 Zbigniew Jędrzejewski-Szmek - 1.8.8-5 +- Use .pth files to set the python path (https://fedorahosted.org/fpc/ticket/563) + +* Mon Aug 24 2015 Orion Poplawski 1.8.8-4 +- Disable valgrind only on s390 + +* Mon Aug 17 2015 Orion Poplawski 1.8.8-3 +- Do not filter libvt* provides as some dependencies link to it + +* Mon Aug 10 2015 Sandro Mani - 1.8.8-2 +- Require, BuildRequire: rpm-mpi-hooks + +* Mon Aug 10 2015 Orion Poplawski 1.8.8-1 +- Update to 1.8.8 +- Drop atomic patch applied upstream + +* Wed Jul 15 2015 Orion Poplawski 1.8.7-1 +- Update to 1.8.7 + +* Tue Jun 23 2015 Orion Poplawski 1.8.6-1 +- Update to 1.8.6 + +* Thu Jun 18 2015 Fedora Release Engineering - 1.8.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 5 2015 Orion Poplawski 1.8.5-1 +- Update to 1.8.5 + +* Fri May 1 2015 Orion Poplawski 1.8.5-0.2.rc3 +- Update to 1.8.5rc3 + +* Sun Apr 5 2015 Orion Poplawski 1.8.5-0.1.rc1 +- Update to 1.8.5rc1 + +* Mon Mar 30 2015 Orion Poplawski 1.8.4-7.20150324gitg9ad2aa8 +- Add upstream patch to fix race/hang on 32bit machines + +* Fri Mar 27 2015 Orion Poplawski 1.8.4-6.20150324gitg9ad2aa8 +- Update to latest 1.8.4 snapshot +- Add upstream patch to fix atomics on 32bit + +* Mon Mar 23 2015 Zbigniew Jędrzejewski-Szmek - 1.8.4-5.20150228gitgd83fb30 +- Rebuild for fortran update (#1204420) + +* Mon Mar 16 2015 Orion Poplawski 1.8.4-4.99.20150228gitgd83fb30 +- Own and ship pkgconfig files, set PKG_CONFIG_PATH in modulefile (bug #1113626) +- Drop old configure settings + +* Wed Mar 4 2015 Orion Poplawski 1.8.4-3.99.20150228gitgd83fb30 +- Update to 1.8.4.99 snapshot + +* Fri Feb 13 2015 Orion Poplawski 1.8.4-2 +- Fix MPI_FORTRAN_MOD_DIR (bug #1154982) + +* Tue Dec 23 2014 Orion Poplawski 1.8.4-1 +- Update to 1.8.4 + +* Mon Nov 17 2014 Orion Poplawski 1.8.3-3 +- Rebuild for papi soname change + +* Fri Oct 3 2014 Orion Poplawski 1.8.3-2 +- Fix typo in oshmem library name + +* Sat Sep 27 2014 Orion Poplawski 1.8.3-1 +- Update to 1.8.3 + +* Tue Sep 16 2014 Peter Robinson 1.8.2-2 +- ppc64le now has valgrind + +* Tue Aug 26 2014 Orion Poplawski 1.8.2-1 +- Update to 1.8.2 + +* Sun Aug 17 2014 Fedora Release Engineering - 1.8.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Aug 6 2014 Peter Robinson 1.8.1-6 +- Rebuild (papi) + +* Mon Aug 4 2014 Dan Horák 1.8.1-5 +- no valgrind on ppc64le yet + +* Sat Aug 2 2014 Peter Robinson 1.8.1-4 +- aarch64 now has valgrind + +* Thu Jul 17 2014 Orion Poplawski 1.8.1-3 +- Add patch to prevent shmem wrappers from adding extra libs + +* Sat Jun 07 2014 Fedora Release Engineering - 1.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Apr 23 2014 Orion Poplawski 1.8.1-1 +- Update to 1.8.1, fixes bug #1089044 + +* Tue Apr 1 2014 Orion Poplawski 1.8-1 +- Update to 1.8 + +* Tue Mar 25 2014 Orion Poplawski 1.7.5-2 +- Update provides filter + +* Mon Mar 24 2014 Orion Poplawski 1.7.5-1 +- Update to 1.7.5 + +* Fri Feb 21 2014 Orion Poplawski - 1.7.4-3 +- Require java-headless + +* Sat Feb 8 2014 Ville Skyttä - 1.7.4-2 +- Install macros to %%{_rpmconfdir}/macros.d where available. + +* Wed Feb 5 2014 Orion Poplawski 1.7.4-1 +- Update to 1.7.4 +- Drop format patch fixed upstream +- Build against system libevent +- Build Java mpi bindings, ship in -java sub-package +- Add requires openssh-clients + +* Tue Jan 28 2014 Peter Robinson 1.7.3-5 +- Drop mode/modeflag. mode no longer used, modeflag obsolete as set in CFLAGS +- Use distro LDFLAGS for hardened build +- Drop armv5tel options +- General spec cleanups + +* Thu Jan 16 2014 Orion Poplawski 1.7.3-4 +- Rebuild with papi 5.3.0 + +* Wed Dec 4 2013 Peter Robinson 1.7.3-3 +- valgrind not currently supported on aarch64 + +* Tue Dec 3 2013 Orion Poplawski 1.7.3-2 +- Fix compilation with -Werror=format-security (bug #1037231) + +* Sun Oct 20 2013 Orion Poplawski 1.7.3-1 +- Update to 1.7.3 +- Upstream no longer ships license incompatible files + +* Fri Aug 16 2013 Orion Poplawski 1.7.2-7 +- Move orte* compiler wrappers to devel sub-package (bug #997330) + +* Thu Aug 08 2013 Dennis Gilmore - 1.7.2-6 +- rebuild for papi soname bump bz#995092 + +* Sat Aug 03 2013 Petr Pisar - 1.7.2-5 +- Perl 5.18 rebuild + +* Fri Jul 26 2013 Orion Poplawski 1.7.2-4 +- Fix build issue with _cc_name_suffix (bug #986664) + +* Mon Jul 22 2013 Deji Akingunola - 1.7.2-3 +- Rebuild for papi's shared lib fix + +* Wed Jul 17 2013 Petr Pisar - 1.7.2-2 +- Perl 5.18 rebuild + +* Thu Jun 27 2013 Orion Poplawski 1.7.2-1 +- Update to 1.7.2 + +* Wed Apr 17 2013 Orion Poplawski 1.7.1-1 +- Update to 1.7.1 +- Add BR on hwloc +- Add BR on papi-devel + +* Tue Apr 16 2013 Orion Poplawski 1.7-1 +- Update to 1.7 +- Rebase patch to handle removed components +- Drop esmtp - no longer used + +* Sat Feb 23 2013 Orion Poplawski 1.6.4-2 +- Exclude libopen-trace.* from requires + +* Fri Feb 22 2013 Orion Poplawski 1.6.4-1 +- Update to 1.6.4 +- Drop f90sover and arm-atomics patch fixed upstream + +* Mon Jan 28 2013 Orion Poplawski 1.6.3-7 +- Make __requires_exclude more specific so we don't exclude needed libs + (bug #905263) + +* Sun Nov 18 2012 Peter Robinson 1.6.3-6 +- Update atomics patch for ARM (thanks to Jon Masters) + +* Sun Nov 11 2012 Peter Robinson 1.6.3-5 +- Atomics patch to fix building on ARM (thanks to Jon Masters) + +* Mon Nov 5 2012 Orion Poplawski 1.6.3-4 +- Add patch to fix libmpi_f90.so version +- Add patch to link tests with system libltdl +- Run make check + +* Fri Nov 2 2012 Orion Poplawski 1.6.3-3 +- Set enable-opal-multi-threads for IB support + +* Thu Nov 1 2012 Orion Poplawski 1.6.3-2 +- Update rpm macros to use the new module location + +* Wed Oct 31 2012 Orion Poplawski 1.6.3-1 +- Update to 1.6.3 + +* Sat Oct 13 2012 Orion Poplawski 1.6.2-1 +- Update to 1.6.2 +- Add BR torque-devel to enable torque support +- Drop old module file location (bug #838467) + +* Thu Sep 13 2012 Orion Poplawski 1.6.1-2 +- Drop adding -fPIC, no longer needed +- Set --disable-silent-rules for more verbose build logs +- Don't add opt_*flags to the wrappers +- Only use $RPM_OPT_FLAGS if not using the opt_*flags + +* Thu Aug 23 2012 Orion Poplawski 1.6.1-1 +- Update to 1.6.1 +- Drop hostfile patch applied upstream + +* Fri Jul 20 2012 Fedora Release Engineering - 1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue May 15 2012 Orion Poplawski 1.6-2 +- Add patch from upstream to fix default hostfile location + +* Tue May 15 2012 Orion Poplawski 1.6-1 +- Update to 1.6 +- Drop arm patch, appears to be addressed upstream +- Remove extraneous wrapper link libraries (bug 814798) + +* Tue Apr 3 2012 Peter Robinson - 1.5.5-1 +- Update to 1.5.5 + +* Tue Feb 28 2012 Fedora Release Engineering - 1.5.4-5.1 +- Rebuilt for c++ ABI breakage + +* Wed Feb 22 2012 Orion Poplawski 1.5.4-4.1 +- Rebuild with hwloc 1.4 + +* Wed Feb 15 2012 Peter Robinson - 1.5.4-4 +- Rebuild for hwloc soname bump + +* Fri Jan 20 2012 Doug Ledford - 1.5.4-3 +- Move modules file to mpi directory and make it conflict with any other + mpi module (bug #651074) + +* Sun Jan 8 2012 Orion Poplawski 1.5.4-2 +- Rebuild with gcc 4.7 (bug #772443) + +* Thu Nov 17 2011 Orion Poplawski 1.5.4-1 +- Update to 1.5.4 +- Drop dt-textrel patch fixed upstream +- Fixup handling removed files (bug #722534) +- Uses hwloc instead of plpa +- Exclude private libraries from provides/requires (bug #741104) +- Drop --enable-mpi-threads & --enable-openib-ibcm, no longer recognized + +* Sat Jun 18 2011 Peter Robinson 1.5-4 +- Exclude ARM platforms due to current lack of "atomic primitives" on the platform + +* Thu Mar 17 2011 Jay Fenlason 1.5-3 +- Add dt-textrel patch to close + Resolves: bz679489 +- Add memchecker and esmtp support + Resolves: bz647011 + +* Tue Feb 08 2011 Fedora Release Engineering - 1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Oct 18 2010 Jay Fenlason 1.5-1 +- set MANPATH in openmpi module file +- Upgrade to 1.5 +- Workaround for rhbz#617766 appears to no longer be needed for 1.5 +- remove pkgconfig files in instal +- Remove orteCC.1 dangling symlink +- Adjust the files entries for share/openmpi/help* and share/openmpi/mca* +- Adjust the files entries for share/openmpi/mpi* +- Add files entry for share/openmpi/orte*.txt + +* Sun Sep 05 2010 Dennis Gilmore - 1.4.1-7 +- disable valgrind support on sparc arches + +* Sat Jul 24 2010 David Malcolm - 1.4.1-6 +- workaround for rhbz#617766 + +* Wed Jul 21 2010 David Malcolm - 1.4.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Mon Mar 29 2010 Jay Fenlason - 1.4.1-4 +- Update to fix licencing and packaging issues: + Use the system plpa and ltdl librarires rather than the ones in the tarball + Remove licence incompatible files from the tarball. +- update module.in to prepend-path PYTHONPATH + +* Tue Mar 9 2010 Jay Fenlason - 1.4.1-3 +- remove the pkgconfig file completely like we did in RHEL. + +* Tue Jan 26 2010 Jay Fenlason - 1.4.1-2 +- BuildRequires: python + +* Tue Jan 26 2010 Jay Fenlason - 1.4.1-1 +- New upstream version, which includes the changeset_r22324 patch. +- Correct a typo in the Source0 line in this spec file. + +* Fri Jan 15 2010 Doug Ledford - 1.4-4 +- Fix an issue with usage of _cc_name_suffix that cause a broken define in + our module file + +* Fri Jan 15 2010 Doug Ledford - 1.4-3 +- Fix pkgconfig file substitution +- Bump version so we are later than the equivalent version from Red Hat + Enterprise Linux + +* Wed Jan 13 2010 Doug Ledford - 1.4-1 +- Update to latest upstream stable version +- Add support for libibcm usage +- Enable sge support via configure options since it's no longer on by default +- Add patch to resolve allreduce issue (bz538199) +- Remove no longer needed patch for Chelsio cards + +* Tue Sep 22 2009 Jay Fenlason - 1.3.3-6 +- Create and own man* directories for use by dependent packages. + +* Wed Sep 16 2009 Jay Fenlason - 1.3.3-5 +- Move the module file from %%{_datadir}/Modules/modulefiles/%%{namearch} to + %%{_sysconfdir}/modulefiles/%%{namearch} where it belongs. +- Have the -devel subpackage own the man1 and man7 directories for completeness. +- Add a blank line before the clean section. +- Remove --enable-mpirun-prefix-by-default from configure. + +* Wed Sep 9 2009 Jay Fenlason - 1.3.3-4 +- Modify packaging to conform to + https://fedoraproject.org/wiki/PackagingDrafts/MPI (bz521334). +- remove --with-ft=cr from configure, as it was apparently causing problems + for some people. +- Add librdmacm-devel and librdmacm to BuildRequires (related bz515565). +- Add openmpi-bz515567.patch to add support for the latest Chelsio device IDs + (related bz515567). +- Add exclude-arch (s390 s390x) because we don't have required -devel packages + there. + +* Sat Jul 25 2009 Fedora Release Engineering - 1.3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 21 2009 Doug Ledford - 1.3.3-2 +- Add MPI_BIN and MPI_LIB to the modules file (related bz511099) + +* Tue Jul 21 2009 Doug Ledford - 1.3.3-1 +- Make sure all created dirs are owned (bz474677) +- Fix loading of pkgconfig file (bz476844) +- Resolve file conflict between us and libotf (bz496131) +- Resolve dangling symlinks issue (bz496909) +- Resolve unexpanded %%{mode} issues (bz496911) +- Restore -devel subpackage (bz499851) +- Make getting the default openmpi devel environment easier (bz504357) +- Make the -devel package pull in the base package (bz459458) +- Make it easier to use alternative compilers to build package (bz246484) + +* Sat Jul 18 2009 Jussi Lehtola - 1.3.1-4 +- Add Provides: openmpi-devel to fix other package builds in rawhide. + +* Fri May 08 2009 Lubomir Rintel - 1.3.1-3 +- Treat i586 the same way as i386 + +* Wed Apr 22 2009 Doug Ledford - 1.3.1-2 +- fixed broken update +- Resolves: bz496909, bz496131, bz496911 + +* Tue Apr 14 2009 Tom "spot" Callaway - 1.3.1-1 +- update to 1.3.1, cleanup alternatives, spec, make new vt subpackage + +* Thu Feb 26 2009 Fedora Release Engineering - 1.2.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 18 2008 Fedora Release Engineering - 1.2.4-2 +- Autorebuild for GCC 4.3 + +* Wed Oct 17 2007 Doug Ledford - 1.2.4-1 +- Update to 1.2.4 upstream version +- Build against libtorque +- Pass a valid mode to open +- Resolves: bz189441, bz265141 + +* Tue Aug 28 2007 Fedora Release Engineering - 1.2.3-5 +- Rebuild for selinux ppc32 issue. + +* Mon Jul 16 2007 Doug Ledford - 1.2.3-4 +- Fix a directory permission problem on the base openmpi directories + +* Thu Jul 12 2007 Florian La Roche - 1.2.3-3 +- requires alternatives for various sub-rpms + +* Mon Jul 02 2007 Doug Ledford - 1.2.3-2 +- Fix dangling symlink issue caused by a bad macro usage +- Resolves: bz246450 + +* Wed Jun 27 2007 Doug Ledford - 1.2.3-1 +- Update to latest upstream version +- Fix file ownership on -libs package +- Take a swing at solving the multi-install compatibility issues + +* Mon Feb 19 2007 Doug Ledford - 1.1.1-7 +- Bump version to be at least as high as the RHEL4U5 openmpi +- Integrate fixes made in RHEL4 openmpi into RHEL5 (fix a multilib conflict + for the openmpi.module file by moving from _datadir to _libdir, make sure + all sed replacements have the g flag so they replace all instances of + the marker per line, not just the first, and add a %%defattr tag to the + files section of the -libs package to avoid install errors about + brewbuilder not being a user or group) +- Resolves: bz229298 + +* Wed Jan 17 2007 Doug Ledford - 1.1.1-5 +- Remove the FORTIFY_SOURCE and stack protect options +- Related: bz213075 + +* Fri Oct 20 2006 Doug Ledford - 1.1.1-4 +- Bump and build against the final openib-1.1 package + +* Wed Oct 18 2006 Doug Ledford - 1.1.1-3 +- Fix an snprintf length bug in opal/util/cmd_line.c +- RESOLVES: rhbz#210714 + +* Wed Oct 18 2006 Doug Ledford - 1.1.1-2 +- Bump and build against openib-1.1-0.pre1.1 instead of 1.0 + +* Tue Oct 17 2006 Doug Ledford - 1.1.1-1 +- Update to upstream 1.1.1 version + +* Fri Oct 13 2006 Doug Ledford - 1.1-7 +- ia64 can't take -m64 on the gcc command line, so don't set it there + +* Wed Oct 11 2006 Doug Ledford - 1.1-6 +- Bump rev to match fc6 rev +- Fixup some issue with alternatives support +- Split the 32bit and 64bit libs ld.so.conf.d files into two files so + multilib or single lib installs both work properly +- Put libs into their own package +- Add symlinks to /usr/share/openmpi/bin%%{mode} so that opal_wrapper-%%{mode} + can be called even if it isn't the currently selected default method in + the alternatives setup (opal_wrapper needs to be called by mpicc, mpic++, + etc. in order to determine compile mode from argv[0]). + +* Sun Aug 27 2006 Doug Ledford - 1.1-4 +- Make sure the post/preun scripts only add/remove alternatives on initial + install and final removal, otherwise don't touch. + +* Fri Aug 25 2006 Doug Ledford - 1.1-3 +- Don't ghost the mpi.conf file as that means it will get removed when + you remove 1 out of a number of alternatives based packages +- Put the .mod file in -devel + +* Mon Aug 7 2006 Doug Ledford - 1.1-2 +- Various lint cleanups +- Switch to using the standard alternatives mechanism instead of a home + grown one + +* Wed Aug 2 2006 Doug Ledford - 1.1-1 +- Upgrade to 1.1 +- Build with Infiniband support via openib + +* Mon Jun 12 2006 Jason Vas Dias - 1.0.2-1 +- Upgrade to 1.0.2 + +* Wed Feb 15 2006 Jason Vas Dias - 1.0.1-1 +- Import into Fedora Core +- Resolve LAM clashes + +* Wed Jan 25 2006 Orion Poplawski - 1.0.1-2 +- Use configure options to install includes and libraries +- Add ld.so.conf.d file to find libraries +- Add -fPIC for x86_64 + +* Tue Jan 24 2006 Orion Poplawski - 1.0.1-1 +- 1.0.1 +- Use alternatives + +* Sat Nov 19 2005 Ed Hill - 1.0-2 +- fix lam conflicts + +* Fri Nov 18 2005 Ed Hill - 1.0-1 +- initial specfile created diff --git a/openmpi.spec b/openmpi.spec index 0587bd4..d270036 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -58,7 +58,7 @@ Name: openmpi%{?_cc_name_suffix} Version: 5.0.6 -Release: 2%{?dist} +Release: %autorelease Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio @@ -445,885 +445,4 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %changelog -* Fri Jan 17 2025 Fedora Release Engineering - 5.0.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sat Nov 16 2024 Orion Poplawski - 5.0.6-1 -- Update to 5.0.6 - -* Mon Oct 07 2024 Orion Poplawski - 5.0.5-4 -- Add upstream patch to fix hdf5 tests - -* Mon Sep 02 2024 Miroslav Suchý - 5.0.5-3 -- convert license to SPDX - -* Wed Jul 31 2024 Sandro Mani - 5.0.5-2 -- Rebuild with rpm-mpi-hooks-8-10 to fix provides (#2302033) - -* Wed Jul 31 2024 Orion Poplawski - 5.0.5-1 -- Update to 5.0.5 - -* Thu Jul 18 2024 Fedora Release Engineering - 5.0.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 08 2024 Python Maint - 5.0.3-2 -- Rebuilt for Python 3.13 - -* Wed Apr 24 2024 Orion Poplawski - 5.0.3-1 -- Update to 5.0.3 - -* Mon Mar 04 2024 David Abdurachmanov - 5.0.2-2 -- Add support for riscv64 - -* Wed Feb 07 2024 Orion Poplawski - 5.0.2-1 -- Update to 5.0.2 - -* Wed Jan 24 2024 Orion Poplawski - 5.0.1-3 -- Drop unused BR on infinipath-psm - -* Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Dec 21 2023 Orion Poplawski - 5.0.1-1 -- Update to 5.0.1 - -* Tue Oct 31 2023 Yaakov Selkowitz - 5.0.0-2 -- Disable building docs in RHEL builds - -* Fri Oct 27 2023 Orion Poplawski - 5.0.0-1 -- Update to 5.0.0 -- Drops 32-bit i686 support -- Drops C++ bindings -- Add doc sub-package - -* Thu Oct 12 2023 Cristian Le - 4.1.5-8 -- Added CMAKE_PREFIX_PATH to module file - -* Sat Sep 30 2023 Benson Muite - 4.1.5-7 -- Add include and cmake directories for development files for OpenMPI packages - -* Fri Sep 22 2023 Orion Poplawski - 4.1.5-6 -- Rebuild for pmix 4.1.3 (bz#2240042) - -* Thu Jul 20 2023 Fedora Release Engineering - 4.1.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jul 10 2023 Yaakov Selkowitz - 4.1.5-4 -- Disable PSM2 in RHEL 10 builds - -* Thu Jun 22 2023 Yaakov Selkowitz - 4.1.5-3 -- Disable PSM, OrangeFS in RHEL builds - -* Tue Jun 13 2023 Python Maint - 4.1.5-2 -- Rebuilt for Python 3.12 - -* Sun Feb 26 2023 Orion Poplawski - 4.1.5-1 -- Update to 4.1.5 - -* Thu Jan 19 2023 Fedora Release Engineering - 4.1.4-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Nov 11 2022 Orion Poplawski - 4.1.4-7 -- Re-enable IPv6 support - was not the issue - -* Fri Nov 11 2022 Orion Poplawski - 4.1.4-6 -- Disable IPv6 support - appears to break MPI_Init() on koji builders (bz#2141137) - -* Fri Aug 19 2022 Davide Cavalca - 4.1.4-5 -- Enable IPv6 support (bz#2119845) - -* Fri Jul 22 2022 Fedora Release Engineering - 4.1.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sun Jul 10 2022 Orion Poplawski - 4.1.4-3 -- Drop java for i686 (bz#2104085) - -* Mon Jun 13 2022 Python Maint - 4.1.4-2 -- Rebuilt for Python 3.11 - -* Sun May 29 2022 Orion Poplawski - 4.1.4-1 -- Update to 4.1.4 - -* Sat Apr 16 2022 Orion Poplawski - 4.1.3-1 -- Update to 4.1.3 - -* Sat Feb 05 2022 Jiri Vanek - 4.1.2-3 -- Rebuilt for java-17-openjdk as system jdk - -* Thu Jan 20 2022 Fedora Release Engineering - 4.1.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Nov 29 2021 Orion Poplawski - 4.1.2-1 -- Update to 4.1.2 - -* Sun Oct 10 2021 Orion Poplawski - 4.1.2-0.1.rc1 -- Update to 4.1.2rc1 - -* Fri Sep 03 2021 Sandro Mani - 4.1.1-4 -- Also own %%{_libdir}/%%{name}/lib/cmake/ - -* Thu Jul 22 2021 Fedora Release Engineering - 4.1.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 4.1.1-2 -- Rebuilt for Python 3.10 - -* Tue Apr 27 2021 Orion Poplawski - 4.1.1-1 -- Update to 4.1.1 - -* Mon Apr 05 2021 Orion Poplawski - 4.1.1-0.2.rc2 -- Update to 4.1.1rc2 - -* Thu Feb 11 2021 Orion Poplawski - 4.1.1-0.1.rc1 -- Update to 4.1.1rc1 - -* Thu Jan 28 2021 Orion Poplawski - 4.1.0-5 -- Add upstream patch for generalized requests - -* Thu Jan 28 2021 Orion Poplawski - 4.1.0-4 -- Add upstream patch to fix AVX library linkage - -* Tue Jan 26 2021 Fedora Release Engineering - 4.1.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sun Jan 24 2021 Orion Poplawski - 4.1.0-2 -- Use set_build_flags macro -- Drop old opt_ macros - -* Sun Jan 24 2021 Orion Poplawski - 4.1.0-1 -- Update to 4.1.0 - -* Wed Sep 23 2020 Orion Poplawski - 4.0.5-2 -- Rebuild for libevent 2.1.12 - -* Wed Sep 02 2020 Orion Poplawski - 4.0.5-1 -- Update to 4.0.5 - -* Tue Jul 28 2020 Fedora Release Engineering - 4.0.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sat Jul 11 2020 Jiri Vanek - 4.0.4-2 -- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 - -* Wed Jun 17 2020 Orion Poplawski - 4.0.4-1 -- Update to 4.0.4 - -* Mon May 25 2020 Miro Hrončok - 4.0.4-0.3.rc1 -- Rebuilt for Python 3.9 - -* Sun May 24 2020 Orion Poplawski - 4.0.4-0.2.rc1 -- Set OMPI_MCA_rmaps_base_oversubscribe=1 in %%_openmpi_load (bz#1839571) - -* Sun May 10 2020 Orion Poplawski - 4.0.4-0.1.rc1 -- Update to 4.0.4 rc1 - -* Thu Mar 05 2020 Orion Poplawski - 4.0.3x-1 -- Update to 4.0.3 (use x to avoid epoch) - -* Sun Mar 01 2020 Orion Poplawski - 4.0.3rc4-1 -- Update to 4.0.3rc4 - -* Sat Feb 1 2020 Orion Poplawski - 4.0.3rc3-1 -- Update to 4.0.3rc3 - -* Wed Jan 29 2020 Fedora Release Engineering - 4.0.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Dec 10 2019 Dominik Mierzejewski - 4.0.2-4 -- disable rdma on ARM 32-bit (bz#1780584) - -* Sun Nov 24 2019 Orion Poplawski - 4.0.2-3 -- Add upstream fix for error in calculating aggregators in 32bit mode - -* Fri Nov 15 2019 Orion Poplawski - 4.0.2-2 -- Drop python2 for Fedora 32+ (bz#1773125) - -* Mon Oct 7 2019 Philip Kovacs - 4.0.2-1 -- Update to 4.0.2 - -* Sat Sep 14 2019 Orion Poplawski - 4.0.2-0.4.rc2 -- Update to 4.0.2rc2 -- Re-enable C++ bindings on power64 - -* Fri Sep 6 2019 Philip Kovacs - 4.0.2-0.3.rc1 -- Rebuild for annobin update to correct aarch64 build (bug #1748529) - -* Fri Aug 30 2019 Philip Kovacs - 4.0.2-0.2.rc1 -- Apply upstream PR 6946 to avoid linking to __mmap -- Add build deps to run upstream autogen.pl -- Remove embedded tabs in the spec - -* Thu Aug 29 2019 Philip Kovacs - 4.0.2-0.1.rc1 -- Update to 4.0.2rc1 -- Closes bug #1746564 - -* Thu Aug 29 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-11 -- Fix MANPATH so normal modules can still be loaded (#1564899) - -* Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 4.0.1-10 -- Rebuilt for hwloc-2.0 - -* Sun Aug 18 2019 Miro Hrončok - 4.0.1-9 -- Rebuilt for Python 3.8 - -* Fri Aug 9 2019 Philip Kovacs - 4.0.1-8 -- Remove torque support (torque retired: bug #1676147) - -* Thu Jul 25 2019 Fedora Release Engineering - 4.0.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Jun 21 2019 Orion Poplawski - 4.0.1-6 -- Rebuild for libfabric 1.8 -- Re-enable UCX, hopefully issue fixed in 1.5.2 - -* Mon May 27 2019 Orion Poplawski - 4.0.1-5 -- Drop UCX support for now - -* Wed May 15 2019 Orion Poplawski - 4.0.1-4 -- Add upstream patch OSC/UCX: use correct rkey for atomic_fadd in rget/rput - -* Wed May 15 2019 Orion Poplawski - 4.0.1-3 -- Add upstream patch to fix issue with UCX usage in BTL/UCT - -* Tue May 7 2019 Orion Poplawski - 4.0.1-2 -- Add a guard for python3 version (#1705296) -- Add requires on python(abi) to python packages - -* Sun Apr 28 2019 Orion Poplawski - 4.0.1-1 -- Update to 4.0.1 - -* Sun Apr 28 2019 Orion Poplawski - 3.1.4-1 -- Update to 3.1.4 - -* Mon Apr 22 2019 Björn Esser - 3.1.3-5 -- rebuilt(opensm) - -* Wed Apr 17 2019 Christoph Junghans - 3.1.3-4 -- Rebuild to fix ibosmcomp linkage - -* Sat Mar 2 2019 Orion Poplawski - 3.1.3-3 -- Enable valgrind on s390x -- Cleanup arch conditionals - -* Tue Feb 19 2019 Orion Poplawski - 3.1.3-2 -- Enable PVFS2/OrangeFS MPI-IO support (bug #1655010) - -* Wed Feb 13 2019 Orion Poplawski - 3.1.3-1 -- Update to 3.1.3 -- Drop ppc64le patch fixed upstream -- Use external libevent and pmix, except on EL7 -- Fix EPEL7 builds - -* Sat Feb 2 2019 Orion Poplawski - 2.1.6-1 -- Update to 2.1.6 - -* Fri Feb 01 2019 Fedora Release Engineering - 2.1.6-0.2.rc1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Nov 28 2018 Orion Poplawski - 2.1.6-0.1.rc1 -- Update to 2.1.6rc1 - -* Thu Oct 11 2018 Orion Poplawski - 2.1.5-1 -- Update to 2.1.5 - -* Sun Jul 22 2018 Orion Poplawski - 2.1.1-14 -- Add BR gcc-c++ (fix FTBFS bug #1605323) - -* Fri Jul 13 2018 Fedora Release Engineering - 2.1.1-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 2.1.1-12 -- Rebuilt for Python 3.7 - -* Thu May 10 2018 Troy Dawson - 2.1.1-11 -- Build with rdma-core-devel instead of libibcm-devel - -* Mon Apr 30 2018 Florian Weimer - 2.1.1-10 -- Rebuild with new flags from redhat-rpm-config - -* Fri Feb 09 2018 Igor Gnatenko - 2.1.1-9 -- Escape macros in %%changelog - -* Mon Feb 05 2018 Orion Poplawski - 2.1.1-8 -- Rebuild for rdma-core 16.2 - -* Wed Jan 31 2018 Christoph Junghans - 2.1.1-7 -- Rebuild for gfortran-8 - -* Fri Jan 12 2018 Iryna Shcherbina - 2.1.1-6 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Wed Aug 23 2017 Adam Williamson - 2.1.1-5 -- Disable RDMA support on 32-bit ARM (#1484155) -- Disable hanging opal_fifo test on ppc64le (gh #2526 / #2966) - -* Thu Aug 03 2017 Fedora Release Engineering - 2.1.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 2.1.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Jul 19 2017 Orion Poplawski - 2.1.1-2 -- Provide pkgconfig files in the main namespace as well (1471512) - -* Fri May 12 2017 Orion Poplawski - 2.1.1-1 -- Update to 2.1.1 - -* Thu May 4 2017 Orion Poplawski - 2.1.0-1 -- Update to 2.1.0 - -* Sat Feb 11 2017 Fedora Release Engineering - 2.0.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Feb 2 2017 Orion Poplawski - 2.0.2-1 -- Update to 2.0.2 - -* Sat Jan 28 2017 Björn Esser - 2.0.1-7 -- Rebuilt for GCC-7 - -* Mon Dec 19 2016 Miro Hrončok - 2.0.1-6 -- Rebuild for Python 3.6 - -* Wed Nov 2 2016 Orion Poplawski - 2.0.1-5 -- Split python support into sub-packages (bug #1391157) - -* Thu Oct 27 2016 Dan Horák - 2.0.1-4 -- Temporarily disable C++ bindings on ppc64/ppc64le (#1388561) - -* Mon Oct 24 2016 Orion Poplawski - 2.0.1-3 -- Fix License tag format -- Use /usr/share/modulefiles for modulefile install location - -* Mon Oct 24 2016 Orion Poplawski - 2.0.1-2 -- Add upstream patch for thread wait issue with mpi4py - -* Fri Oct 21 2016 Orion Poplawski - 2.0.1-1 -- Update to 2.0.1 - -* Thu Oct 20 2016 Orion Poplawski - 1.10.4-4 -- Support s390(x) (bug #1358701) - -* Thu Oct 20 2016 Orion Poplawski - 1.10.4-3 -- Enable psm/psm2 support on x86_64 (bug #1263655) - -* Wed Oct 19 2016 Orion Poplawski - 1.10.4-2 -- Enable MPI_THREAD_MULTIPLE support (bug #1369989) - -* Wed Oct 19 2016 Orion Poplawski - 1.10.4-1 -- Update to 1.10.4 - -* Thu Sep 15 2016 Orion Poplawski - 1.10.3-3 -- Rebuild for papi 5.5.0 - -* Fri Jun 24 2016 Orion Poplawski - 1.10.3-2 -- Use bundled libevent, system version causes issues (bug #1235044) - -* Wed Jun 15 2016 Orion Poplawski - 1.10.3-1 -- Update to 1.10.3 -- New javadoc location - -* Thu Feb 04 2016 Fedora Release Engineering - 1.10.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 26 2016 Orion Poplawski - 1.10.2-2 -- Rebuild for papi 5.4.3 - -* Thu Jan 21 2016 Orion Poplawski - 1.10.2-1 -- Update to 1.10.2 -- Drop upsream nbc_copy patch - -* Tue Nov 10 2015 Orion Poplawski - 1.10.1-3 -- Add upstream patch to fix zero size message - -* Tue Nov 10 2015 Fedora Release Engineering - 1.10.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 - -* Thu Nov 5 2015 Orion Poplawski - 1.10.1-1 -- Update to 1.10.1 -- Require environment(modules) -- Fixup fortran module install (bug #1154982) - -* Tue Oct 6 2015 Orion Poplawski - 1.10.0-3 -- Do not set CFLAGS in %%_openmpi_load - -* Wed Sep 16 2015 Orion Poplawski - 1.10.0-2 -- Add patch to add needed opal/util/argv.h includes - -* Tue Sep 15 2015 Orion Poplawski - 1.10.0-1 -- Update to 1.10.0 - -* Thu Aug 27 2015 Zbigniew Jędrzejewski-Szmek - 1.8.8-5 -- Use .pth files to set the python path (https://fedorahosted.org/fpc/ticket/563) - -* Mon Aug 24 2015 Orion Poplawski 1.8.8-4 -- Disable valgrind only on s390 - -* Mon Aug 17 2015 Orion Poplawski 1.8.8-3 -- Do not filter libvt* provides as some dependencies link to it - -* Mon Aug 10 2015 Sandro Mani - 1.8.8-2 -- Require, BuildRequire: rpm-mpi-hooks - -* Mon Aug 10 2015 Orion Poplawski 1.8.8-1 -- Update to 1.8.8 -- Drop atomic patch applied upstream - -* Wed Jul 15 2015 Orion Poplawski 1.8.7-1 -- Update to 1.8.7 - -* Tue Jun 23 2015 Orion Poplawski 1.8.6-1 -- Update to 1.8.6 - -* Thu Jun 18 2015 Fedora Release Engineering - 1.8.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue May 5 2015 Orion Poplawski 1.8.5-1 -- Update to 1.8.5 - -* Fri May 1 2015 Orion Poplawski 1.8.5-0.2.rc3 -- Update to 1.8.5rc3 - -* Sun Apr 5 2015 Orion Poplawski 1.8.5-0.1.rc1 -- Update to 1.8.5rc1 - -* Mon Mar 30 2015 Orion Poplawski 1.8.4-7.20150324gitg9ad2aa8 -- Add upstream patch to fix race/hang on 32bit machines - -* Fri Mar 27 2015 Orion Poplawski 1.8.4-6.20150324gitg9ad2aa8 -- Update to latest 1.8.4 snapshot -- Add upstream patch to fix atomics on 32bit - -* Mon Mar 23 2015 Zbigniew Jędrzejewski-Szmek - 1.8.4-5.20150228gitgd83fb30 -- Rebuild for fortran update (#1204420) - -* Mon Mar 16 2015 Orion Poplawski 1.8.4-4.99.20150228gitgd83fb30 -- Own and ship pkgconfig files, set PKG_CONFIG_PATH in modulefile (bug #1113626) -- Drop old configure settings - -* Wed Mar 4 2015 Orion Poplawski 1.8.4-3.99.20150228gitgd83fb30 -- Update to 1.8.4.99 snapshot - -* Fri Feb 13 2015 Orion Poplawski 1.8.4-2 -- Fix MPI_FORTRAN_MOD_DIR (bug #1154982) - -* Tue Dec 23 2014 Orion Poplawski 1.8.4-1 -- Update to 1.8.4 - -* Mon Nov 17 2014 Orion Poplawski 1.8.3-3 -- Rebuild for papi soname change - -* Fri Oct 3 2014 Orion Poplawski 1.8.3-2 -- Fix typo in oshmem library name - -* Sat Sep 27 2014 Orion Poplawski 1.8.3-1 -- Update to 1.8.3 - -* Tue Sep 16 2014 Peter Robinson 1.8.2-2 -- ppc64le now has valgrind - -* Tue Aug 26 2014 Orion Poplawski 1.8.2-1 -- Update to 1.8.2 - -* Sun Aug 17 2014 Fedora Release Engineering - 1.8.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Aug 6 2014 Peter Robinson 1.8.1-6 -- Rebuild (papi) - -* Mon Aug 4 2014 Dan Horák 1.8.1-5 -- no valgrind on ppc64le yet - -* Sat Aug 2 2014 Peter Robinson 1.8.1-4 -- aarch64 now has valgrind - -* Thu Jul 17 2014 Orion Poplawski 1.8.1-3 -- Add patch to prevent shmem wrappers from adding extra libs - -* Sat Jun 07 2014 Fedora Release Engineering - 1.8.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Apr 23 2014 Orion Poplawski 1.8.1-1 -- Update to 1.8.1, fixes bug #1089044 - -* Tue Apr 1 2014 Orion Poplawski 1.8-1 -- Update to 1.8 - -* Tue Mar 25 2014 Orion Poplawski 1.7.5-2 -- Update provides filter - -* Mon Mar 24 2014 Orion Poplawski 1.7.5-1 -- Update to 1.7.5 - -* Fri Feb 21 2014 Orion Poplawski - 1.7.4-3 -- Require java-headless - -* Sat Feb 8 2014 Ville Skyttä - 1.7.4-2 -- Install macros to %%{_rpmconfdir}/macros.d where available. - -* Wed Feb 5 2014 Orion Poplawski 1.7.4-1 -- Update to 1.7.4 -- Drop format patch fixed upstream -- Build against system libevent -- Build Java mpi bindings, ship in -java sub-package -- Add requires openssh-clients - -* Tue Jan 28 2014 Peter Robinson 1.7.3-5 -- Drop mode/modeflag. mode no longer used, modeflag obsolete as set in CFLAGS -- Use distro LDFLAGS for hardened build -- Drop armv5tel options -- General spec cleanups - -* Thu Jan 16 2014 Orion Poplawski 1.7.3-4 -- Rebuild with papi 5.3.0 - -* Wed Dec 4 2013 Peter Robinson 1.7.3-3 -- valgrind not currently supported on aarch64 - -* Tue Dec 3 2013 Orion Poplawski 1.7.3-2 -- Fix compilation with -Werror=format-security (bug #1037231) - -* Sun Oct 20 2013 Orion Poplawski 1.7.3-1 -- Update to 1.7.3 -- Upstream no longer ships license incompatible files - -* Fri Aug 16 2013 Orion Poplawski 1.7.2-7 -- Move orte* compiler wrappers to devel sub-package (bug #997330) - -* Thu Aug 08 2013 Dennis Gilmore - 1.7.2-6 -- rebuild for papi soname bump bz#995092 - -* Sat Aug 03 2013 Petr Pisar - 1.7.2-5 -- Perl 5.18 rebuild - -* Fri Jul 26 2013 Orion Poplawski 1.7.2-4 -- Fix build issue with _cc_name_suffix (bug #986664) - -* Mon Jul 22 2013 Deji Akingunola - 1.7.2-3 -- Rebuild for papi's shared lib fix - -* Wed Jul 17 2013 Petr Pisar - 1.7.2-2 -- Perl 5.18 rebuild - -* Thu Jun 27 2013 Orion Poplawski 1.7.2-1 -- Update to 1.7.2 - -* Wed Apr 17 2013 Orion Poplawski 1.7.1-1 -- Update to 1.7.1 -- Add BR on hwloc -- Add BR on papi-devel - -* Tue Apr 16 2013 Orion Poplawski 1.7-1 -- Update to 1.7 -- Rebase patch to handle removed components -- Drop esmtp - no longer used - -* Sat Feb 23 2013 Orion Poplawski 1.6.4-2 -- Exclude libopen-trace.* from requires - -* Fri Feb 22 2013 Orion Poplawski 1.6.4-1 -- Update to 1.6.4 -- Drop f90sover and arm-atomics patch fixed upstream - -* Mon Jan 28 2013 Orion Poplawski 1.6.3-7 -- Make __requires_exclude more specific so we don't exclude needed libs - (bug #905263) - -* Sun Nov 18 2012 Peter Robinson 1.6.3-6 -- Update atomics patch for ARM (thanks to Jon Masters) - -* Sun Nov 11 2012 Peter Robinson 1.6.3-5 -- Atomics patch to fix building on ARM (thanks to Jon Masters) - -* Mon Nov 5 2012 Orion Poplawski 1.6.3-4 -- Add patch to fix libmpi_f90.so version -- Add patch to link tests with system libltdl -- Run make check - -* Fri Nov 2 2012 Orion Poplawski 1.6.3-3 -- Set enable-opal-multi-threads for IB support - -* Thu Nov 1 2012 Orion Poplawski 1.6.3-2 -- Update rpm macros to use the new module location - -* Wed Oct 31 2012 Orion Poplawski 1.6.3-1 -- Update to 1.6.3 - -* Sat Oct 13 2012 Orion Poplawski 1.6.2-1 -- Update to 1.6.2 -- Add BR torque-devel to enable torque support -- Drop old module file location (bug #838467) - -* Thu Sep 13 2012 Orion Poplawski 1.6.1-2 -- Drop adding -fPIC, no longer needed -- Set --disable-silent-rules for more verbose build logs -- Don't add opt_*flags to the wrappers -- Only use $RPM_OPT_FLAGS if not using the opt_*flags - -* Thu Aug 23 2012 Orion Poplawski 1.6.1-1 -- Update to 1.6.1 -- Drop hostfile patch applied upstream - -* Fri Jul 20 2012 Fedora Release Engineering - 1.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue May 15 2012 Orion Poplawski 1.6-2 -- Add patch from upstream to fix default hostfile location - -* Tue May 15 2012 Orion Poplawski 1.6-1 -- Update to 1.6 -- Drop arm patch, appears to be addressed upstream -- Remove extraneous wrapper link libraries (bug 814798) - -* Tue Apr 3 2012 Peter Robinson - 1.5.5-1 -- Update to 1.5.5 - -* Tue Feb 28 2012 Fedora Release Engineering - 1.5.4-5.1 -- Rebuilt for c++ ABI breakage - -* Wed Feb 22 2012 Orion Poplawski 1.5.4-4.1 -- Rebuild with hwloc 1.4 - -* Wed Feb 15 2012 Peter Robinson - 1.5.4-4 -- Rebuild for hwloc soname bump - -* Fri Jan 20 2012 Doug Ledford - 1.5.4-3 -- Move modules file to mpi directory and make it conflict with any other - mpi module (bug #651074) - -* Sun Jan 8 2012 Orion Poplawski 1.5.4-2 -- Rebuild with gcc 4.7 (bug #772443) - -* Thu Nov 17 2011 Orion Poplawski 1.5.4-1 -- Update to 1.5.4 -- Drop dt-textrel patch fixed upstream -- Fixup handling removed files (bug #722534) -- Uses hwloc instead of plpa -- Exclude private libraries from provides/requires (bug #741104) -- Drop --enable-mpi-threads & --enable-openib-ibcm, no longer recognized - -* Sat Jun 18 2011 Peter Robinson 1.5-4 -- Exclude ARM platforms due to current lack of "atomic primitives" on the platform - -* Thu Mar 17 2011 Jay Fenlason 1.5-3 -- Add dt-textrel patch to close - Resolves: bz679489 -- Add memchecker and esmtp support - Resolves: bz647011 - -* Tue Feb 08 2011 Fedora Release Engineering - 1.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Oct 18 2010 Jay Fenlason 1.5-1 -- set MANPATH in openmpi module file -- Upgrade to 1.5 -- Workaround for rhbz#617766 appears to no longer be needed for 1.5 -- remove pkgconfig files in instal -- Remove orteCC.1 dangling symlink -- Adjust the files entries for share/openmpi/help* and share/openmpi/mca* -- Adjust the files entries for share/openmpi/mpi* -- Add files entry for share/openmpi/orte*.txt - -* Sun Sep 05 2010 Dennis Gilmore - 1.4.1-7 -- disable valgrind support on sparc arches - -* Sat Jul 24 2010 David Malcolm - 1.4.1-6 -- workaround for rhbz#617766 - -* Wed Jul 21 2010 David Malcolm - 1.4.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild - -* Mon Mar 29 2010 Jay Fenlason - 1.4.1-4 -- Update to fix licencing and packaging issues: - Use the system plpa and ltdl librarires rather than the ones in the tarball - Remove licence incompatible files from the tarball. -- update module.in to prepend-path PYTHONPATH - -* Tue Mar 9 2010 Jay Fenlason - 1.4.1-3 -- remove the pkgconfig file completely like we did in RHEL. - -* Tue Jan 26 2010 Jay Fenlason - 1.4.1-2 -- BuildRequires: python - -* Tue Jan 26 2010 Jay Fenlason - 1.4.1-1 -- New upstream version, which includes the changeset_r22324 patch. -- Correct a typo in the Source0 line in this spec file. - -* Fri Jan 15 2010 Doug Ledford - 1.4-4 -- Fix an issue with usage of _cc_name_suffix that cause a broken define in - our module file - -* Fri Jan 15 2010 Doug Ledford - 1.4-3 -- Fix pkgconfig file substitution -- Bump version so we are later than the equivalent version from Red Hat - Enterprise Linux - -* Wed Jan 13 2010 Doug Ledford - 1.4-1 -- Update to latest upstream stable version -- Add support for libibcm usage -- Enable sge support via configure options since it's no longer on by default -- Add patch to resolve allreduce issue (bz538199) -- Remove no longer needed patch for Chelsio cards - -* Tue Sep 22 2009 Jay Fenlason - 1.3.3-6 -- Create and own man* directories for use by dependent packages. - -* Wed Sep 16 2009 Jay Fenlason - 1.3.3-5 -- Move the module file from %%{_datadir}/Modules/modulefiles/%%{namearch} to - %%{_sysconfdir}/modulefiles/%%{namearch} where it belongs. -- Have the -devel subpackage own the man1 and man7 directories for completeness. -- Add a blank line before the clean section. -- Remove --enable-mpirun-prefix-by-default from configure. - -* Wed Sep 9 2009 Jay Fenlason - 1.3.3-4 -- Modify packaging to conform to - https://fedoraproject.org/wiki/PackagingDrafts/MPI (bz521334). -- remove --with-ft=cr from configure, as it was apparently causing problems - for some people. -- Add librdmacm-devel and librdmacm to BuildRequires (related bz515565). -- Add openmpi-bz515567.patch to add support for the latest Chelsio device IDs - (related bz515567). -- Add exclude-arch (s390 s390x) because we don't have required -devel packages - there. - -* Sat Jul 25 2009 Fedora Release Engineering - 1.3.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Tue Jul 21 2009 Doug Ledford - 1.3.3-2 -- Add MPI_BIN and MPI_LIB to the modules file (related bz511099) - -* Tue Jul 21 2009 Doug Ledford - 1.3.3-1 -- Make sure all created dirs are owned (bz474677) -- Fix loading of pkgconfig file (bz476844) -- Resolve file conflict between us and libotf (bz496131) -- Resolve dangling symlinks issue (bz496909) -- Resolve unexpanded %%{mode} issues (bz496911) -- Restore -devel subpackage (bz499851) -- Make getting the default openmpi devel environment easier (bz504357) -- Make the -devel package pull in the base package (bz459458) -- Make it easier to use alternative compilers to build package (bz246484) - -* Sat Jul 18 2009 Jussi Lehtola - 1.3.1-4 -- Add Provides: openmpi-devel to fix other package builds in rawhide. - -* Fri May 08 2009 Lubomir Rintel - 1.3.1-3 -- Treat i586 the same way as i386 - -* Wed Apr 22 2009 Doug Ledford - 1.3.1-2 -- fixed broken update -- Resolves: bz496909, bz496131, bz496911 - -* Tue Apr 14 2009 Tom "spot" Callaway - 1.3.1-1 -- update to 1.3.1, cleanup alternatives, spec, make new vt subpackage - -* Thu Feb 26 2009 Fedora Release Engineering - 1.2.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Mon Feb 18 2008 Fedora Release Engineering - 1.2.4-2 -- Autorebuild for GCC 4.3 - -* Wed Oct 17 2007 Doug Ledford - 1.2.4-1 -- Update to 1.2.4 upstream version -- Build against libtorque -- Pass a valid mode to open -- Resolves: bz189441, bz265141 - -* Tue Aug 28 2007 Fedora Release Engineering - 1.2.3-5 -- Rebuild for selinux ppc32 issue. - -* Mon Jul 16 2007 Doug Ledford - 1.2.3-4 -- Fix a directory permission problem on the base openmpi directories - -* Thu Jul 12 2007 Florian La Roche - 1.2.3-3 -- requires alternatives for various sub-rpms - -* Mon Jul 02 2007 Doug Ledford - 1.2.3-2 -- Fix dangling symlink issue caused by a bad macro usage -- Resolves: bz246450 - -* Wed Jun 27 2007 Doug Ledford - 1.2.3-1 -- Update to latest upstream version -- Fix file ownership on -libs package -- Take a swing at solving the multi-install compatibility issues - -* Mon Feb 19 2007 Doug Ledford - 1.1.1-7 -- Bump version to be at least as high as the RHEL4U5 openmpi -- Integrate fixes made in RHEL4 openmpi into RHEL5 (fix a multilib conflict - for the openmpi.module file by moving from _datadir to _libdir, make sure - all sed replacements have the g flag so they replace all instances of - the marker per line, not just the first, and add a %%defattr tag to the - files section of the -libs package to avoid install errors about - brewbuilder not being a user or group) -- Resolves: bz229298 - -* Wed Jan 17 2007 Doug Ledford - 1.1.1-5 -- Remove the FORTIFY_SOURCE and stack protect options -- Related: bz213075 - -* Fri Oct 20 2006 Doug Ledford - 1.1.1-4 -- Bump and build against the final openib-1.1 package - -* Wed Oct 18 2006 Doug Ledford - 1.1.1-3 -- Fix an snprintf length bug in opal/util/cmd_line.c -- RESOLVES: rhbz#210714 - -* Wed Oct 18 2006 Doug Ledford - 1.1.1-2 -- Bump and build against openib-1.1-0.pre1.1 instead of 1.0 - -* Tue Oct 17 2006 Doug Ledford - 1.1.1-1 -- Update to upstream 1.1.1 version - -* Fri Oct 13 2006 Doug Ledford - 1.1-7 -- ia64 can't take -m64 on the gcc command line, so don't set it there - -* Wed Oct 11 2006 Doug Ledford - 1.1-6 -- Bump rev to match fc6 rev -- Fixup some issue with alternatives support -- Split the 32bit and 64bit libs ld.so.conf.d files into two files so - multilib or single lib installs both work properly -- Put libs into their own package -- Add symlinks to /usr/share/openmpi/bin%%{mode} so that opal_wrapper-%%{mode} - can be called even if it isn't the currently selected default method in - the alternatives setup (opal_wrapper needs to be called by mpicc, mpic++, - etc. in order to determine compile mode from argv[0]). - -* Sun Aug 27 2006 Doug Ledford - 1.1-4 -- Make sure the post/preun scripts only add/remove alternatives on initial - install and final removal, otherwise don't touch. - -* Fri Aug 25 2006 Doug Ledford - 1.1-3 -- Don't ghost the mpi.conf file as that means it will get removed when - you remove 1 out of a number of alternatives based packages -- Put the .mod file in -devel - -* Mon Aug 7 2006 Doug Ledford - 1.1-2 -- Various lint cleanups -- Switch to using the standard alternatives mechanism instead of a home - grown one - -* Wed Aug 2 2006 Doug Ledford - 1.1-1 -- Upgrade to 1.1 -- Build with Infiniband support via openib - -* Mon Jun 12 2006 Jason Vas Dias - 1.0.2-1 -- Upgrade to 1.0.2 - -* Wed Feb 15 2006 Jason Vas Dias - 1.0.1-1 -- Import into Fedora Core -- Resolve LAM clashes - -* Wed Jan 25 2006 Orion Poplawski - 1.0.1-2 -- Use configure options to install includes and libraries -- Add ld.so.conf.d file to find libraries -- Add -fPIC for x86_64 - -* Tue Jan 24 2006 Orion Poplawski - 1.0.1-1 -- 1.0.1 -- Use alternatives - -* Sat Nov 19 2005 Ed Hill - 1.0-2 -- fix lam conflicts - -* Fri Nov 18 2005 Ed Hill - 1.0-1 -- initial specfile created - +%autochangelog From b020786425b938ecc2474a709f9a230efcbcf7f1 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 1 Mar 2025 14:38:52 -0700 Subject: [PATCH 119/139] Add patch to handle new OpenJDK location --- 13117.patch | 23 +++++++++++++++++++++++ openmpi.spec | 5 ++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 13117.patch diff --git a/13117.patch b/13117.patch new file mode 100644 index 0000000..0082455 --- /dev/null +++ b/13117.patch @@ -0,0 +1,23 @@ +From 2ea6bfb8d6b32a4a2ddc79dbf1043d0cef8e221c Mon Sep 17 00:00:00 2001 +From: Orion Poplawski +Date: Sat, 1 Mar 2025 14:25:18 -0700 +Subject: [PATCH] Latest Fedora has dropped the arch suffix from the openjdk + directory + +--- + config/ompi_setup_java.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config/ompi_setup_java.m4 b/config/ompi_setup_java.m4 +index b0212b230e7..02029b83dd6 100644 +--- a/config/ompi_setup_java.m4 ++++ b/config/ompi_setup_java.m4 +@@ -101,7 +101,7 @@ AC_DEFUN([_OMPI_SETUP_JAVA],[ + if test "$ompi_java_found" = "0"; then + # Various Linux + if test -z "$JAVA_HOME"; then +- ompi_java_dir='/usr/lib/jvm/java-*-openjdk-*/include/' ++ ompi_java_dir='/usr/lib/jvm/java-*-openjdk*/include/' + else + ompi_java_dir=$JAVA_HOME/include + fi diff --git a/openmpi.spec b/openmpi.spec index d270036..5e71ec4 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -54,7 +54,7 @@ %bcond_without pmix # Run autogen - needed for some patches -%bcond_with autogen +%bcond autogen 1 Name: openmpi%{?_cc_name_suffix} Version: 5.0.6 @@ -72,6 +72,9 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi +# Fix JAVA_HOME search +Patch: https://github.com/open-mpi/ompi/pull/13117.patch + BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make From 61df4659f6b2c4605045127e9a41a75e6bbeb5a2 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Fri, 4 Apr 2025 12:25:05 +0200 Subject: [PATCH 120/139] Rebuild for PMIX 5.0.7 From adb4f4609eeb94b2a074f57cb73a622587778e17 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 12:07:10 +0200 Subject: [PATCH 121/139] Rebuilt for Python 3.14 From 79bdb19e780c9e0ccbbe961403ef349116cbc24e Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 1 Jun 2025 21:22:19 -0600 Subject: [PATCH 122/139] Update to 5.0.8 Add upstream patch to fix s390x alignments --- .gitignore | 1 + 13117.patch | 23 ----------------------- 13281.patch | 30 ++++++++++++++++++++++++++++++ openmpi.spec | 11 +++-------- sources | 2 +- 5 files changed, 35 insertions(+), 32 deletions(-) delete mode 100644 13117.patch create mode 100644 13281.patch diff --git a/.gitignore b/.gitignore index 98ccb0c..3ca97ee 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-5.0.3.tar.bz2 /openmpi-5.0.5.tar.bz2 /openmpi-5.0.6.tar.bz2 +/openmpi-5.0.8.tar.bz2 diff --git a/13117.patch b/13117.patch deleted file mode 100644 index 0082455..0000000 --- a/13117.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 2ea6bfb8d6b32a4a2ddc79dbf1043d0cef8e221c Mon Sep 17 00:00:00 2001 -From: Orion Poplawski -Date: Sat, 1 Mar 2025 14:25:18 -0700 -Subject: [PATCH] Latest Fedora has dropped the arch suffix from the openjdk - directory - ---- - config/ompi_setup_java.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/config/ompi_setup_java.m4 b/config/ompi_setup_java.m4 -index b0212b230e7..02029b83dd6 100644 ---- a/config/ompi_setup_java.m4 -+++ b/config/ompi_setup_java.m4 -@@ -101,7 +101,7 @@ AC_DEFUN([_OMPI_SETUP_JAVA],[ - if test "$ompi_java_found" = "0"; then - # Various Linux - if test -z "$JAVA_HOME"; then -- ompi_java_dir='/usr/lib/jvm/java-*-openjdk-*/include/' -+ ompi_java_dir='/usr/lib/jvm/java-*-openjdk*/include/' - else - ompi_java_dir=$JAVA_HOME/include - fi diff --git a/13281.patch b/13281.patch new file mode 100644 index 0000000..3bcfaf3 --- /dev/null +++ b/13281.patch @@ -0,0 +1,30 @@ +From d5c84ea4595ea1fbb5b213621e0966ebe0fd3cc9 Mon Sep 17 00:00:00 2001 +From: Joseph Schuchart +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 +--- + 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 + diff --git a/openmpi.spec b/openmpi.spec index 5e71ec4..5eb1b98 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -54,10 +54,10 @@ %bcond_without pmix # Run autogen - needed for some patches -%bcond autogen 1 +%bcond autogen 0 Name: openmpi%{?_cc_name_suffix} -Version: 5.0.6 +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. @@ -72,8 +72,7 @@ Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Fix JAVA_HOME search -Patch: https://github.com/open-mpi/ompi/pull/13117.patch +Patch0: https://github.com/open-mpi/ompi/pull/13281.patch BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -330,10 +329,6 @@ install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth %check fail=1 -# Failing on s390x - https://github.com/open-mpi/ompi/issues/10988 -%ifarch s390x -fail=0 -%endif make check || ( cat test/*/test-suite.log && exit $fail ) %files diff --git a/sources b/sources index 435b836..1083caf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.6.tar.bz2) = 097f7bb18d506b362f16d46df308b387e3173068ba8688739db756919453e1fe947c6d8c2e098481617d8c6bbecb8990002db42f284b1732a80ef3edaaa29f20 +SHA512 (openmpi-5.0.8.tar.bz2) = de9128edaa1886f90f1452b8cee3c3962d7666beed96d7b95c601278c2debc7d7efecc9403792d428ce12131ce30416d6bc6bb657fb1a5490f53c6b6e369b080 From 792dbe38f0f838cc9b71d87db9ca0430cafb24e3 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 6 Jun 2025 09:33:57 +0200 Subject: [PATCH 123/139] Rebuilt for Python 3.14 From 7c735869e698da775e4c86e1e18b616b73e4c51c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 23:37:33 +0000 Subject: [PATCH 124/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From cf679b9c3377120a7fb3df62b273ca8ffdcfe855 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Wed, 30 Jul 2025 00:52:30 +0200 Subject: [PATCH 125/139] Rebuilt for java-25-openjdk as preffered jdk https://fedoraproject.org/wiki/Changes/Java25AndNoMoreSystemJdk Note, that since f43, you should be always explicit on what jdk to use. This commit should do exactly that. --- openmpi.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 5eb1b98..8ce1041 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -97,7 +97,7 @@ BuildRequires: hwloc-devel # So configure can find lstopo BuildRequires: hwloc-gui %if %{with java} -BuildRequires: java-devel +BuildRequires: java-25-devel %else Obsoletes: %{name}-java < %{version}-%{release} Obsoletes: %{name}-java-devel < %{version}-%{release} @@ -190,7 +190,7 @@ HTML documentation for openmpi. %package java Summary: Java library Requires: %{name} = %{version}-%{release} -Requires: java-headless +Requires: java-25-headless %description java Java library. @@ -198,7 +198,7 @@ Java library. %package java-devel Summary: Java development files for openmpi Requires: %{name}-java = %{version}-%{release} -Requires: java-devel +Requires: java-25-devel %description java-devel Contains development wrapper for compiling Java with openmpi. From dbd8fb83f5baa2527c5f48e1e2622ff3537ceacd Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 31 Jul 2025 07:34:01 -0600 Subject: [PATCH 126/139] Drop old python2 support --- openmpi.module.in | 2 -- openmpi.pth.py2 | 1 - openmpi.spec | 33 --------------------------------- 3 files changed, 36 deletions(-) delete mode 100644 openmpi.pth.py2 diff --git a/openmpi.module.in b/openmpi.module.in index cdd31b9..71cdbc3 100644 --- a/openmpi.module.in +++ b/openmpi.module.in @@ -14,8 +14,6 @@ setenv MPI_FORTRAN_MOD_DIR @FMODDIR@ setenv MPI_INCLUDE @INCDIR@ setenv MPI_LIB @LIBDIR@/lib setenv MPI_MAN @MANDIR@ -setenv MPI_PYTHON_SITEARCH @PY2SITEARCH@ -setenv MPI_PYTHON2_SITEARCH @PY2SITEARCH@ setenv MPI_PYTHON3_SITEARCH @PY3SITEARCH@ setenv MPI_COMPILER @COMPILER@ setenv MPI_SUFFIX @SUFFIX@ diff --git a/openmpi.pth.py2 b/openmpi.pth.py2 deleted file mode 100644 index a2dc353..0000000 --- a/openmpi.pth.py2 +++ /dev/null @@ -1 +0,0 @@ -import sys, os; s = os.getenv('MPI_PYTHON2_SITEARCH'); s and (s in sys.path or sys.path.append(s)) diff --git a/openmpi.spec b/openmpi.spec index 8ce1041..a2cef26 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -5,12 +5,6 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) -%if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 -%bcond_with python2 -%else -%bcond_without python2 -%endif - %ifarch aarch64 ppc64le x86_64 %bcond_without ucx %else @@ -68,7 +62,6 @@ ExcludeArch: %{ix86} # We can't use %%{name} here because of _cc_name_suffix Source0: https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in -Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi @@ -208,17 +201,6 @@ Contains development wrapper for compiling Java with openmpi. # particular package, version, compiler %global namearch openmpi-%{_arch}%{?_cc_name_suffix} -%if %{with python2} -%package -n python2-openmpi -Summary: OpenMPI support for Python 2 -BuildRequires: python2-devel -Requires: %{name} = %{version}-%{release} -Requires: python(abi) = %{python2_version} - -%description -n python2-openmpi -OpenMPI support for Python 2. -%endif - %package -n python%{python3_pkgversion}-openmpi Summary: OpenMPI support for Python 3 Requires: %{name} = %{version}-%{release} @@ -280,11 +262,6 @@ sed 's#@LIBDIR@#%{_libdir}/%{name}#; s#@FMODDIR@#%{_fmoddir}/%{name}#; s#@INCDIR@#%{_includedir}/%{namearch}#; s#@MANDIR@#%{_mandir}/%{namearch}#; -%if %{with python2} - s#@PY2SITEARCH@#%{python2_sitearch}/%{name}#; -%else - /@PY2SITEARCH@/d; -%endif s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#; s#@COMPILER@#openmpi-%{_arch}%{?_cc_name_suffix}#; s#@SUFFIX@#%{?_cc_name_suffix}_openmpi#' \ @@ -320,10 +297,6 @@ sed -i -e s/-ldl// -e s/-lhwloc// \ %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt # install .pth files -%if %{with python2} -mkdir -p %{buildroot}/%{python2_sitearch}/%{name} -install -pDm0644 %{SOURCE2} %{buildroot}/%{python2_sitearch}/openmpi.pth -%endif mkdir -p %{buildroot}/%{python3_sitearch}/%{name} install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth @@ -431,12 +404,6 @@ make check || ( cat test/*/test-suite.log && exit $fail ) %{_mandir}/%{namearch}/man1/mpijavac.1.gz %endif -%if %{with python2} -%files -n python2-openmpi -%dir %{python2_sitearch}/%{name} -%{python2_sitearch}/openmpi.pth -%endif - %files -n python%{python3_pkgversion}-openmpi %dir %{python3_sitearch}/%{name} %{python3_sitearch}/openmpi.pth From a46a18a27fb99f82e00b811d236e3982096f0c32 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 31 Jul 2025 07:35:59 -0600 Subject: [PATCH 127/139] Disable ucx on ppx64le because it is broken - https://github.com/openucx/ucx/issues/10780 --- openmpi.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index a2cef26..d5f879b 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -5,7 +5,8 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) -%ifarch aarch64 ppc64le x86_64 +# ucx on ppc64le/power10 is broken https://github.com/openucx/ucx/issues/10780 +%ifarch aarch64 x86_64 %bcond_without ucx %else %bcond_with ucx From 03257e2bed2f2634e3711779083864eac8740383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Terje=20R=C3=B8sten?= Date: Tue, 21 Oct 2025 12:49:29 +0200 Subject: [PATCH 128/139] Rebuild for orangefs 2.10.1 From 2811785c6e4e954164cf59de83bbd0d5e172ac15 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 31 Oct 2025 07:47:05 -0600 Subject: [PATCH 129/139] Update to 5.0.9 --- .gitignore | 1 + 13281.patch | 30 ------------------------------ openmpi.spec | 4 +--- sources | 2 +- 4 files changed, 3 insertions(+), 34 deletions(-) delete mode 100644 13281.patch diff --git a/.gitignore b/.gitignore index 3ca97ee..c18a70a 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ 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 diff --git a/13281.patch b/13281.patch deleted file mode 100644 index 3bcfaf3..0000000 --- a/13281.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d5c84ea4595ea1fbb5b213621e0966ebe0fd3cc9 Mon Sep 17 00:00:00 2001 -From: Joseph Schuchart -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 ---- - 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 - diff --git a/openmpi.spec b/openmpi.spec index d5f879b..eb7f409 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -52,7 +52,7 @@ %bcond autogen 0 Name: openmpi%{?_cc_name_suffix} -Version: 5.0.8 +Version: 5.0.9 Release: %autorelease Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. @@ -66,8 +66,6 @@ Source1: openmpi.module.in Source3: openmpi.pth.py3 Source4: macros.openmpi -Patch0: https://github.com/open-mpi/ompi/pull/13281.patch - BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: make diff --git a/sources b/sources index 1083caf..4af497e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.8.tar.bz2) = de9128edaa1886f90f1452b8cee3c3962d7666beed96d7b95c601278c2debc7d7efecc9403792d428ce12131ce30416d6bc6bb657fb1a5490f53c6b6e369b080 +SHA512 (openmpi-5.0.9.tar.bz2) = d7f700d6f412c6ff6d2f0d71da6dff9c88039e4c0693ff4f68c9cf4e9705744c362ac7afa916c7d7c6389832a1c8b4681b567a8521df3abdab22c581157cc5d0 From 0f5839e45810f28682bdd5d38a104d27b15387c1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 22:58:03 +0000 Subject: [PATCH 130/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From fc3843f7f12b1c475939a0cdf886a0c15ec6369e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Wed, 28 Jan 2026 08:55:30 +0100 Subject: [PATCH 131/139] migrate license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- openmpi.spec | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/openmpi.spec b/openmpi.spec index eb7f409..ea0807d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -56,7 +56,15 @@ Version: 5.0.9 Release: %autorelease Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. -License: LicenseRef-Callaway-BSD AND LicenseRef-Callaway-MIT AND LicenseRef-Romio +# 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 URL: http://www.open-mpi.org/ ExcludeArch: %{ix86} @@ -173,6 +181,7 @@ 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 @@ -181,6 +190,7 @@ HTML documentation for openmpi. %if %{with java} %package java Summary: Java library +License: Apache-2.0 Requires: %{name} = %{version}-%{release} Requires: java-25-headless @@ -189,6 +199,7 @@ Java library. %package java-devel Summary: Java development files for openmpi +License: Apache-2.0 Requires: %{name}-java = %{version}-%{release} Requires: java-25-devel From ddbbcc8a9cf0392f91f018d527cc0f9045153d71 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 5 Mar 2026 08:52:20 -0700 Subject: [PATCH 132/139] Add patches to fix building with gcc 16 (FTBFS rhbz#2434889) --- openmpi-braces.patch | 16 ++++++++++++++++ openmpi-inline.patch | 13 +++++++++++++ openmpi.spec | 4 ++++ 3 files changed, 33 insertions(+) create mode 100644 openmpi-braces.patch create mode 100644 openmpi-inline.patch diff --git a/openmpi-braces.patch b/openmpi-braces.patch new file mode 100644 index 0000000..61b3c59 --- /dev/null +++ b/openmpi-braces.patch @@ -0,0 +1,16 @@ +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) diff --git a/openmpi-inline.patch b/openmpi-inline.patch new file mode 100644 index 0000000..dd901e8 --- /dev/null +++ b/openmpi-inline.patch @@ -0,0 +1,13 @@ +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; diff --git a/openmpi.spec b/openmpi.spec index ea0807d..ac8b67d 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -73,6 +73,10 @@ 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 BuildRequires: gcc-c++ BuildRequires: gcc-gfortran From 44268f7cc876ad3218425ca66d4ba701d1b2acb0 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 21 Feb 2026 11:47:53 -0700 Subject: [PATCH 133/139] Cleanup old rpm conditionals --- openmpi.spec | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index ac8b67d..0b6d632 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -107,9 +107,7 @@ 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 @@ -134,9 +132,7 @@ 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 @@ -145,10 +141,6 @@ 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 @@ -172,13 +164,11 @@ 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. @@ -254,12 +244,10 @@ 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 @@ -354,9 +342,6 @@ 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* @@ -369,9 +354,6 @@ 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} From b7ffd3ae60c61766e3f2444b94e7eb04009ab960 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 6 Mar 2026 19:22:46 -0700 Subject: [PATCH 134/139] Update to 5.0.10 --- .gitignore | 1 + openmpi.spec | 3 +-- sources | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c18a70a..d89aa68 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ openmpi-1.4.1-RH.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 diff --git a/openmpi.spec b/openmpi.spec index 0b6d632..56f1d56 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -52,7 +52,7 @@ %bcond autogen 0 Name: openmpi%{?_cc_name_suffix} -Version: 5.0.9 +Version: 5.0.10 Release: %autorelease Summary: Open Message Passing Interface # Automatically converted from old format: BSD and MIT and Romio - review is highly recommended. @@ -313,7 +313,6 @@ 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* diff --git a/sources b/sources index 4af497e..34f655a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-5.0.9.tar.bz2) = d7f700d6f412c6ff6d2f0d71da6dff9c88039e4c0693ff4f68c9cf4e9705744c362ac7afa916c7d7c6389832a1c8b4681b567a8521df3abdab22c581157cc5d0 +SHA512 (openmpi-5.0.10.tar.bz2) = 24d29c2e88549e5a59f47dac0a2327db99644c59fd2991441d0ec23edb95aa7328fcd67bd44601ce9f11b0af90d36fddf82643e23f0f6e7c013c99f9bbd9738e From 107d2a8e740a4388f9ff5408c27be9e40603009d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 3 Jun 2026 23:34:26 +0200 Subject: [PATCH 135/139] Rebuilt for Python 3.15 From 79e515a9bf35e6d41105bce95855cddef2a15b2c Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 5 Jun 2026 22:07:40 -0600 Subject: [PATCH 136/139] Drop unused BuildRequires. [skip changelog] --- openmpi.spec | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/openmpi.spec b/openmpi.spec index 56f1d56..efcd4a9 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -12,13 +12,7 @@ %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} @@ -90,7 +84,6 @@ 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: @@ -98,8 +91,6 @@ 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 %else @@ -121,8 +112,6 @@ 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} From e3e1783aa51a9010acaaddb72f4da229b2b6cdb7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jul 2026 10:28:49 +0000 Subject: [PATCH 137/139] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From 32751bdeb8bc6afa610f6a3a42187a9421f141da Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 22 Jul 2026 10:56:02 +0200 Subject: [PATCH 138/139] Rebuilt for Python 3.15.0b4 ABI change From d46d1d9b6180eed7e96c07be60e6c55d532b588f Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Mon, 27 Jul 2026 16:06:23 +0200 Subject: [PATCH 139/139] Drop unused recommonmark Signed-off-by: Cristian Le --- openmpi-drop-recommonmark.patch | 31 +++++++++++++++++++++++++++++++ openmpi.spec | 5 +++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 openmpi-drop-recommonmark.patch diff --git a/openmpi-drop-recommonmark.patch b/openmpi-drop-recommonmark.patch new file mode 100644 index 0000000..9ee88a1 --- /dev/null +++ b/openmpi-drop-recommonmark.patch @@ -0,0 +1,31 @@ +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 diff --git a/openmpi.spec b/openmpi.spec index efcd4a9..c0ecb85 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -43,7 +43,7 @@ %bcond_without pmix # Run autogen - needed for some patches -%bcond autogen 0 +%bcond autogen 1 Name: openmpi%{?_cc_name_suffix} Version: 5.0.10 @@ -71,6 +71,8 @@ Source4: macros.openmpi 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 BuildRequires: gcc-c++ BuildRequires: gcc-gfortran @@ -125,7 +127,6 @@ BuildRequires: rpm-mpi-hooks %if %{with sphinx} # For docs BuildRequires: /usr/bin/sphinx-build -BuildRequires: python3-recommonmark BuildRequires: python3-sphinx_rtd_theme %endif