SHA256
6
0
forked from pool/openmpi5

16 Commits

Author SHA256 Message Date
12a507c89c Accepting request 1281139 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1281139
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=14
2025-06-01 19:36:13 +00:00
d04b31aa79 - Add Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch to fix a 128b CAS issue on
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=31
2025-05-29 12:20:25 +00:00
37d6d57053 - Fix bad git_ver appearing in VERSION
- Add disable-atomic-cas-128b-on-s390x.patch to fix a 128b CAS issue on
  s390x (bsc#1243680)

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=30
2025-05-27 09:07:36 +00:00
e51cb2869a Accepting request 1269645 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1269645
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=13
2025-04-16 18:37:24 +00:00
b1932953e9 - Remove bad dependency from openmpi5-testsuite to openmpi5-testsuite-libs
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=28
2025-04-15 14:18:56 +00:00
f550f1b14e Accepting request 1265555 from science:HPC
- Remove support for gnu-hpc build flavours.

- Disable gnu-hpc build flavours (bsc#1239982)

OBS-URL: https://build.opensuse.org/request/show/1265555
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=12
2025-04-03 14:45:49 +00:00
4b721835c8 - Remove support for gnu-hpc build flavours.
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=26
2025-03-30 15:33:59 +00:00
14624407bb - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=25
2025-03-24 16:01:06 +00:00
de86ef7514 Accepting request 1247230 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247230
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=11
2025-02-26 16:13:46 +00:00
f4036ffc00 - Update to 5.0.7 (jsc#PED-11356):
- Updated UCX version requirement to v1.9
  - Documentation Improvements
    - Updated `coll tuned` rules file documentation to reflect changes in versioning and features.
    - Updated CUDA-related networking documentation for consistency.
    - Improved descriptions for `mpirun` options, including ``--pmixmca`` and ``--prtemca``.
    - Fixed typos and formatting issues in `mpirun` man pages.
  - Functionality Enhancements
    - Improved argument checking for ``MPI_Comm_create_from_group`` and ``MPI_Intercomm_create_from_groups`` to align with MPI 4.0 standards.
    - Addressed potential race conditions in `PMIx_Group_construct` calls by adding discriminators.
    - Fixed ``MPI_Wtime`` to initialize timing relative to ``MPI_Init`` for accurate session-level measurements.
    - Added support for the `alltoall_algorithm_max_requests` parameter in the `coll tuned` rules file, maintaining backward compatibility.
    - Introduced a version identifier for the `coll tuned` rules file for better parser handling.
    - Adjusted MCA variable scopes across multiple components to allow setting via the `MPI_T` interface: `coll adapt,ucc, han, basic, hcoll`
  - Bug Fixes and Minor Enhancements
    - Ensures that singletons properly create their own sessions directory trees.
    - Fixed community Jenkins build pipeline to handle branch commits properly.
    - Resolved missing profiling symbols in the `mpi_f08` Fortran library.
    - Corrected parameter mismatches in `coll/cuda` functions to avoid type issues.
    - Fixed build issues on Hurd.
    - Removed unused portions of rcache base structure.
    - Fixed oshmem base segment address exchange.
    - Fixed UCC collective fallback issue.
    - Updated Nvidia/Mellanox platform file
- openMPI 5 is now the default openmpi for suse_version >= 1600
- Switch to dist tarball to drop Sphinx and other python dependencies
- Add Fix-type-mismatch-error.patch to fix a compilation error

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=23
2025-02-19 20:06:01 +00:00
212336f1a4 Accepting request 1232846 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1232846
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=10
2024-12-20 22:11:37 +00:00
cd3c5d2687 - Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
compilation issue with libfabric >= 2.0

- Update to 5.0.6 (jsc#PED-11356):
  - Session Management Enhancements:
    - Finalization Control: Ensures proper finalization of classes when references
      to the OPAL utility layer reach zero. A new smoke test has been added to
      validate this behavior.
    - Multiple Init/Finalize Handling: Improvements to handling session multiple
      initializations and finalizations, addressing issues with parameter
      management and session destruction.
  - MPI Communication and Resource Management:
    - Info Duplication: Enhanced `MPI_Info_dup` function to ensure consistent
      key management across duplicated info objects, supporting better memory
      and resource handling.
    - OFI/Initialization Improvements: Refactored code for OFI common components
      to support session-based initialization models per MPI 4 standards.
    - Resource Leak Fixes: Addressed memory leaks and reference count issues
      in several components to improve memory management and stability in
      high-demand environments.
  - Detailed Locking Protocol: Modified default file-locking protocols in UFS
    component to ensure data consistency, especially when using data-sieving
    operations, which require broader locking.
  - MPI_T Interface Enhancements: Modified MCA parameter settings to allow
    runtime tuning of collectives through the MPI_T interface, adding flexibility
    for dynamic rules in collective operations.
  - Corrected various documentation typos and clarified parameter settings in
    several API references, improving readability and usability for end users.
- Disable LTO as it is not supported by OpenPMIX
- Disable direct verbs (openib) support. It has been deprecated since v4.x.

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=21
2024-12-20 14:00:31 +00:00
53b38a0f27 Accepting request 1193453 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1193453
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=9
2024-08-13 11:24:03 +00:00
9292b0d9c0 - Update to 5.0.5
- btl/ofi: retry posting receive buffer
  - btl/uct: check return status from some uct funcs
  - fortran: use -Wl,-ld_classic if supported
  - fortran: parameterize the install location of Fortran MPI bindings modulefiles
    via the configure --with-mpi-moduledir CLI option
  - fortran: various configury improvements
  - use-mpi-f08: add missing subroutines in the mpi_f08 module
  - pml/base: remove redundant copy of ompi_mpi_thread_multiple
  - pml/cm: release datatype object in send completion callback
  - pml/ucx: propagate MPI serialized thread mode for all worker creations
  - pml/ob1: make no. of events an mca parameter
  - oshmem/shmem: fix warnings regarding types and unused variables in shmem
  - Add an AARCH64 OP component for for NEON and SVE ISA
  - Fix MPI function names in error output
  - Fix MPI_Neighbor_alltoall{v,w}_init to handle NULL parameters
  - Fix a bug in intercomm creation
  - Fix a bug in ompi_comm_lookup function to handle partially ready communicators
  - Fix error message in ompi_comm_get_rproc
  - Fix opal_basename for single character filenames
  - Fix rpm build test
  - Fix the info subscriber mechanism and hidden info keys
  - Fix ulfm bugs in ishrink/agree/iagree
  - Improve libcuda.so find command to follow symlinks
  - Improve pkgconfig installation logic in script wrapper
  - Change default tar format to tar-pax
  - Various document updates

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=19
2024-08-12 14:28:38 +00:00
7e3aa348b5 Accepting request 1183457 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1183457
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openmpi5?expand=0&rev=8
2024-06-27 14:02:42 +00:00
a11f52e623 - Update to 5.0.3
- Fix HAN MPI_Scatter intra-node data count and type 
  - Add missing write memory barrier in btl/smcuda 
  - Fix MPI_Alltoallv and MPI_Ialltoallv data count and type check
  - Enhance cuda-aware build by detecting default --with-cuda-lib value
  - Enhance ofi NIC selection logic
  - Fix an illegal memory access bug in mtl/ofi
  - Multiple bugfixes in rocm accelerator 
  - Fix a double free bug in oshmem
  - Add missing oshmem headers
  - Fix uninitialized lock in btl/usnic
  - Fix uninitialized mutex in file_open
  - Fix compiler warnings about unused cid_base variable
  - Enhance autogen submodule checks
  - Various document updates

OBS-URL: https://build.opensuse.org/package/show/science:HPC/openmpi5?expand=0&rev=17
2024-06-26 14:32:44 +00:00
10 changed files with 281 additions and 266 deletions

View File

@@ -0,0 +1,30 @@
commit fc4fb3a80615992277717e3e29ce585ebe1f2256
Author: Tomislav Janjusic <tomislavj@nvidia.com>
Date: Tue Feb 18 12:25:27 2025 -0600
Fix type mismatch error
Signed-off-by: Tomislav Janjusic <tomislavj@nvidia.com>
diff --git oshmem/mca/sshmem/base/sshmem_base_open.c oshmem/mca/sshmem/base/sshmem_base_open.c
index 1f0d1eb761e2..2694120e1cfe 100644
--- oshmem/mca/sshmem/base/sshmem_base_open.c
+++ oshmem/mca/sshmem/base/sshmem_base_open.c
@@ -31,7 +31,7 @@
* globals
*/
-void *mca_sshmem_base_start_address = UINTPTR_MAX;
+void *mca_sshmem_base_start_address = (void *)UINTPTR_MAX;
char * mca_sshmem_base_backing_file_dir = NULL;
@@ -49,7 +49,7 @@ mca_sshmem_base_register (mca_base_register_flag_t flags)
"base",
"start_address",
"Specify base address for shared memory region",
- MCA_BASE_VAR_TYPE_UNSIGNED_LONG_LONG,
+ MCA_BASE_VAR_TYPE_UNSIGNED_LONG,
NULL,
0,
MCA_BASE_VAR_FLAG_SETTABLE,

View File

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

View File

@@ -1,6 +1,4 @@
<multibuild> <multibuild>
<package>standard</package> <package>standard</package>
<package>testsuite</package> <package>testsuite</package>
<package>gnu-hpc</package>
<package>gnu-hpc-testsuite</package>
</multibuild> </multibuild>

View File

@@ -1,17 +0,0 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://github.com/open-mpi/ompi.git</param>
<param name="package-meta">no</param>
<param name="exclude">.git</param>
<param name="filename">openmpi</param>
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="revision">6db5e83b737a9b70c4e77a2bcf06ab641adffe2a</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">openmpi*.tar</param>
<param name="compression">bz2</param>
</service>
</services>

View File

@@ -1,21 +0,0 @@
#
# openmpi
#
%hpc_openmpi_init(V:) \
%{-V: %define _mf_ver %{-V*}} \
%{expand: %%global hpc_openmpi_dep_version %%{?_mf_ver}%%{?!_mf_ver:3}} \
%{expand: %%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}} \
%{expand: %%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}} \
%{expand: %%global _hpc_openmpi_modules openmpi}
# We may have to add a version here.
%hpc_setup_openmpi \
module load openmpi
%hpc_openmpi_requires \
Requires: libopenmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc
%hpc_openmpi_requires_devel \
Requires: openmpi%{hpc_openmpi_dep_version}-%{hpc_compiler_family}%{hpc_cf_pack_version}-hpc-devel

View File

@@ -0,0 +1,24 @@
commit 75b6dad5959ba75fcba8c64cc0a364d820e03ebc
Author: Nicolas Morey <nmorey@suse.com>
Date: Fri Dec 20 12:44:38 2024 +0100
mtl: ofi: fix missing definition of container_of
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git ompi/mca/mtl/ofi/mtl_ofi_request.h ompi/mca/mtl/ofi/mtl_ofi_request.h
index f68c2a91baa0..6d748fd59bdc 100644
--- ompi/mca/mtl/ofi/mtl_ofi_request.h
+++ ompi/mca/mtl/ofi/mtl_ofi_request.h
@@ -15,6 +15,11 @@
#include "mtl_ofi.h"
+#ifndef container_of
+#define container_of(ptr, type, field) \
+ ((type *) ((char *)ptr - offsetof(type, field)))
+#endif
+
#define TO_OFI_REQ(_ptr_ctx) \
container_of((_ptr_ctx), struct ompi_mtl_ofi_request_t, ctx)

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a7bbdbb669d686bd7f62402be52c611acdc402125112f20f6b537757e5edba1a
size 15677588

BIN
openmpi-5.0.7.tar.bz2 LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,144 @@
-------------------------------------------------------------------
Mon May 26 15:52:53 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Fix bad git_ver appearing in VERSION
- Add Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch to fix a 128b CAS issue on
s390x (bsc#1243680)
-------------------------------------------------------------------
Tue Apr 15 11:18:46 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove bad dependency from openmpi5-testsuite to openmpi5-testsuite-libs
-------------------------------------------------------------------
Sat Mar 29 14:47:03 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove support for gnu-hpc build flavours.
-------------------------------------------------------------------
Mon Mar 24 12:52:42 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
-------------------------------------------------------------------
Wed Feb 19 15:57:56 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.7 (jsc#PED-11356):
- Updated UCX version requirement to v1.9
- Documentation Improvements
- Updated `coll tuned` rules file documentation to reflect changes in versioning and features.
- Updated CUDA-related networking documentation for consistency.
- Improved descriptions for `mpirun` options, including ``--pmixmca`` and ``--prtemca``.
- Fixed typos and formatting issues in `mpirun` man pages.
- Functionality Enhancements
- Improved argument checking for ``MPI_Comm_create_from_group`` and ``MPI_Intercomm_create_from_groups`` to align with MPI 4.0 standards.
- Addressed potential race conditions in `PMIx_Group_construct` calls by adding discriminators.
- Fixed ``MPI_Wtime`` to initialize timing relative to ``MPI_Init`` for accurate session-level measurements.
- Added support for the `alltoall_algorithm_max_requests` parameter in the `coll tuned` rules file, maintaining backward compatibility.
- Introduced a version identifier for the `coll tuned` rules file for better parser handling.
- Adjusted MCA variable scopes across multiple components to allow setting via the `MPI_T` interface: `coll adapt,ucc, han, basic, hcoll`
- Bug Fixes and Minor Enhancements
- Ensures that singletons properly create their own sessions directory trees.
- Fixed community Jenkins build pipeline to handle branch commits properly.
- Resolved missing profiling symbols in the `mpi_f08` Fortran library.
- Corrected parameter mismatches in `coll/cuda` functions to avoid type issues.
- Fixed build issues on Hurd.
- Removed unused portions of rcache base structure.
- Fixed oshmem base segment address exchange.
- Fixed UCC collective fallback issue.
- Updated Nvidia/Mellanox platform file
- openMPI 5 is now the default openmpi for suse_version >= 1600
- Switch to dist tarball to drop Sphinx and other python dependencies
- Add Fix-type-mismatch-error.patch to fix a compilation error
-------------------------------------------------------------------
Fri Dec 20 11:50:25 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Add mtl-ofi-fix-missing-definition-of-container_of.patch to fix
compilation issue with libfabric >= 2.0
-------------------------------------------------------------------
Tue Nov 26 07:14:11 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.6 (jsc#PED-11356):
- Session Management Enhancements:
- Finalization Control: Ensures proper finalization of classes when references
to the OPAL utility layer reach zero. A new smoke test has been added to
validate this behavior.
- Multiple Init/Finalize Handling: Improvements to handling session multiple
initializations and finalizations, addressing issues with parameter
management and session destruction.
- MPI Communication and Resource Management:
- Info Duplication: Enhanced `MPI_Info_dup` function to ensure consistent
key management across duplicated info objects, supporting better memory
and resource handling.
- OFI/Initialization Improvements: Refactored code for OFI common components
to support session-based initialization models per MPI 4 standards.
- Resource Leak Fixes: Addressed memory leaks and reference count issues
in several components to improve memory management and stability in
high-demand environments.
- Detailed Locking Protocol: Modified default file-locking protocols in UFS
component to ensure data consistency, especially when using data-sieving
operations, which require broader locking.
- MPI_T Interface Enhancements: Modified MCA parameter settings to allow
runtime tuning of collectives through the MPI_T interface, adding flexibility
for dynamic rules in collective operations.
- Corrected various documentation typos and clarified parameter settings in
several API references, improving readability and usability for end users.
- Disable LTO as it is not supported by OpenPMIX
- Disable direct verbs (openib) support. It has been deprecated since v4.x.
RDMA devices should now be used through ofi/libfabric.
-------------------------------------------------------------------
Mon Aug 12 09:52:54 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.5
- btl/ofi: retry posting receive buffer
- btl/uct: check return status from some uct funcs
- fortran: use -Wl,-ld_classic if supported
- fortran: parameterize the install location of Fortran MPI bindings modulefiles
via the configure --with-mpi-moduledir CLI option
- fortran: various configury improvements
- use-mpi-f08: add missing subroutines in the mpi_f08 module
- pml/base: remove redundant copy of ompi_mpi_thread_multiple
- pml/cm: release datatype object in send completion callback
- pml/ucx: propagate MPI serialized thread mode for all worker creations
- pml/ob1: make no. of events an mca parameter
- oshmem/shmem: fix warnings regarding types and unused variables in shmem
- Add an AARCH64 OP component for for NEON and SVE ISA
- Fix MPI function names in error output
- Fix MPI_Neighbor_alltoall{v,w}_init to handle NULL parameters
- Fix a bug in intercomm creation
- Fix a bug in ompi_comm_lookup function to handle partially ready communicators
- Fix error message in ompi_comm_get_rproc
- Fix opal_basename for single character filenames
- Fix rpm build test
- Fix the info subscriber mechanism and hidden info keys
- Fix ulfm bugs in ishrink/agree/iagree
- Improve libcuda.so find command to follow symlinks
- Improve pkgconfig installation logic in script wrapper
- Change default tar format to tar-pax
- Various document updates
-------------------------------------------------------------------
Wed Jun 26 08:18:40 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 5.0.3
- Fix HAN MPI_Scatter intra-node data count and type
- Add missing write memory barrier in btl/smcuda
- Fix MPI_Alltoallv and MPI_Ialltoallv data count and type check
- Enhance cuda-aware build by detecting default --with-cuda-lib value
- Enhance ofi NIC selection logic
- Fix an illegal memory access bug in mtl/ofi
- Multiple bugfixes in rocm accelerator
- Fix a double free bug in oshmem
- Add missing oshmem headers
- Fix uninitialized lock in btl/usnic
- Fix uninitialized mutex in file_open
- Fix compiler warnings about unused cid_base variable
- Enhance autogen submodule checks
- Various document updates
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Mar 25 07:40:50 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com> Mon Mar 25 07:40:50 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>

View File

@@ -1,7 +1,7 @@
# #
# spec file # spec file for package openmpi5
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana # Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology # University Research and Technology
# Corporation. All rights reserved. # Corporation. All rights reserved.
@@ -37,103 +37,58 @@
%global flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
# Static libraries are disabled by default # Static libraries are disabled by default
# for non HPC builds
# To enable them, simply uncomment: # To enable them, simply uncomment:
# % define build_static_devel 1 # % define build_static_devel 1
%define pname openmpi
%define _vers 5_0_2
%define m_f_ver 5
%bcond_with ringdisabled %bcond_with ringdisabled
%if "%flavor" == "" %if "%flavor" == ""
ExclusiveArch: do_not_build ExclusiveArch: do_not_build
%{bcond_with hpc} %endif
%define package_name %pname%{m_f_ver}
%else # Trickery for OBS Staging. If _with_ringdisabled is set
# Trickery for OBS Staging. If _with_ringdisabled is set # we only want to build the flavors required by other rings packages.
# we only want to build the flavors required by other rings packages. # Do not build any other ones
# Do not build any other ones %if %{with ringdisabled} && "%flavor" != "standard"
%if %{with ringdisabled}
%if "%flavor" != "standard"
ExclusiveArch: do_not_build ExclusiveArch: do_not_build
%endif
%endif
%if "%flavor" == "standard" || "%flavor" == "testsuite"
%define package_name %{pname}%{m_f_ver}
%bcond_with hpc
%if "%flavor" == "testsuite"
%define testsuite 1
%endif
%else
%bcond_without hpc
# Needs to be defined here to avoid hen/egg problem with test packages.
%define package_name %{pname}_%{_vers}-%{compiler_family}%{?c_f_ver}-hpc
%define build_static_devel 1
%endif
%endif %endif
%if "%flavor" == "gnu-hpc" %if "%flavor" == "testsuite"
%define compiler_family gnu
%undefine c_f_ver
%endif
%if "%flavor" == "gnu7-hpc"
%define compiler_family gnu
%define c_f_ver 7
%endif
%if "%flavor" == "gnu-hpc-testsuite"
%define compiler_family gnu
%undefine c_f_ver
%define testsuite 1 %define testsuite 1
%endif %endif
%if "%flavor" == "gnu7-hpc-testsuite"
%define compiler_family gnu
%define c_f_ver 7
%define testsuite 1
%endif
%if 0%{?suse_version} >= 1320
%ifarch aarch64 %power64 x86_64 s390x %ifarch aarch64 %power64 x86_64 s390x
%define with_ucx 1 %define with_ucx 1
%endif %endif
%endif
# Detect whether we are the default openMPI implemantation or not
%if "%{flavor}" == "standard" && (%{suse_version} >= 1600)
%define default_openmpi 1
%else
%define default_openmpi 0 %define default_openmpi 0
%if %{with hpc}
%{!?compiler_family:%global compiler_family gnu}
%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m openmpi %{?mpi_f_ver:-V %{mpi_f_ver}}}
%global hpc_openmpi_dep_version %(VER=%m_f_ver; echo -n ${VER})
%global hpc_openmpi_dir openmpi%{hpc_openmpi_dep_version}
%global hpc_openmpi_pack_version %{hpc_openmpi_dep_version}
%endif %endif
%define git_ver .0.6db5e83b737a
############################################################################# #############################################################################
# #
# Preamble Section # Preamble Section
# #
############################################################################# #############################################################################
Name: %{package_name}%{?testsuite:-testsuite} Name: openmpi5%{?testsuite:-testsuite}
Version: 5.0.2 Version: 5.0.7
Release: 0 Release: 0
Summary: An implementation of MPI/SHMEM (Version %{m_f_ver}) Summary: An implementation of MPI/SHMEM (Version 5)
License: BSD-3-Clause License: BSD-3-Clause
Group: Development/Libraries/Parallel Group: Development/Libraries/Parallel
URL: http://www.open-mpi.org/ URL: http://www.open-mpi.org/
Source0: openmpi-%{version}%{git_ver}.tar.bz2 Source0: https://download.open-mpi.org/release/open-mpi/v5.0/openmpi-%{version}.tar.bz2
Source2: openmpi5-rpmlintrc Source2: openmpi5-rpmlintrc
Source3: macros.hpc-openmpi
Source4: mpivars.sh Source4: mpivars.sh
Source5: mpivars.csh Source5: mpivars.csh
Patch1: romio341-backport-fixes-from-mpich.patch Patch1: romio341-backport-fixes-from-mpich.patch
Patch2: mtl-ofi-fix-missing-definition-of-container_of.patch
Patch3: Fix-type-mismatch-error.patch
Patch4: Force-alignment-of-opal_atomic_int128_t-to-be-16B.patch
Provides: mpi Provides: mpi
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Exclude 32b archs # Exclude 32b archs
@@ -146,16 +101,13 @@ BuildRequires: hwloc-devel
BuildRequires: libevent-devel BuildRequires: libevent-devel
BuildRequires: libfabric-devel BuildRequires: libfabric-devel
BuildRequires: libibumad-devel BuildRequires: libibumad-devel
BuildRequires: libibverbs-devel
BuildRequires: libtool BuildRequires: libtool
# net-tools is required to run hostname # net-tools is required to run hostname
BuildRequires: net-tools BuildRequires: net-tools
BuildRequires: python3 BuildRequires: python3
BuildRequires: python3-Sphinx >= 4.2.0
BuildRequires: python3-recommonmark
%if 0%{?testsuite} %if 0%{?testsuite}
BuildArch: noarch BuildArch: noarch
BuildRequires: %{package_name} = %{version} BuildRequires: openmpi5 = %{version}
%endif %endif
%if 0%{?with_ucx} %if 0%{?with_ucx}
BuildRequires: libucm-devel BuildRequires: libucm-devel
@@ -163,22 +115,14 @@ BuildRequires: libucp-devel
BuildRequires: libucs-devel BuildRequires: libucs-devel
BuildRequires: libuct-devel BuildRequires: libuct-devel
%endif %endif
%if %{without hpc}
BuildRequires: Modules BuildRequires: Modules
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: gcc-fortran BuildRequires: gcc-fortran
BuildRequires: mpi-selector BuildRequires: mpi-selector
Requires: mpi-selector Requires: mpi-selector
Requires(preun):mpi-selector Requires(preun): mpi-selector
Requires: %{package_name}-libs = %{version} %if !0%{?testsuite}
%else Requires: %{name}-libs = %{version}
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: lua-lmod
BuildRequires: suse-hpc
%if 0%{!?testsuite:1}
Requires: lib%{package_name} = %{version}
%endif
%hpc_requires
%endif %endif
%ifarch x86_64 %ifarch x86_64
@@ -188,7 +132,7 @@ BuildRequires: numactl
%endif %endif
Requires: openmpi-runtime-config Requires: openmpi-runtime-config
Recommends: openmpi%{m_f_ver}-config Recommends: %{name}-config
%if 0%{?default_openmpi} %if 0%{?default_openmpi}
Provides: openmpi = %{version} Provides: openmpi = %{version}
%endif %endif
@@ -196,26 +140,14 @@ Provides: openmpi = %{version}
# Force ssh to make sure the install works out of the box # Force ssh to make sure the install works out of the box
Requires: openssh Requires: openssh
%if %{without hpc} %define mpi_prefix %{_libdir}/mpi/gcc/%{name}
%define mpi_prefix %{_libdir}/mpi/gcc/openmpi%{m_f_ver}
%define mpi_bindir %{mpi_prefix}/bin %define mpi_bindir %{mpi_prefix}/bin
%define mpi_libdir %{mpi_prefix}/%{_lib} %define mpi_libdir %{mpi_prefix}/%{_lib}
%define mpi_datadir %{mpi_prefix}/share %define mpi_datadir %{mpi_prefix}/share
%define mpi_helpdir %{mpi_datadir}/%{pname}%{m_f_ver} %define mpi_helpdir %{mpi_datadir}/%{name}
%define mpi_includedir %{mpi_prefix}/include %define mpi_includedir %{mpi_prefix}/include
%define mpi_mandir %{mpi_prefix}/share/man %define mpi_mandir %{mpi_prefix}/share/man
%else
%define mpi_prefix %hpc_prefix
%define mpi_bindir %hpc_bindir
%define mpi_libdir %hpc_libdir
%define mpi_datadir %hpc_datadir
%define mpi_helpdir %{mpi_datadir}/openmpi
%define mpi_includedir %hpc_includedir
%define mpi_mandir %hpc_mandir
%endif
%description %description
%if 0%{?testsuite} %if 0%{?testsuite}
@@ -235,20 +167,19 @@ one-sided communication techniques.
This package provides general tools (mpirun, mpiexec, etc.) and the This package provides general tools (mpirun, mpiexec, etc.) and the
Module Component Architecture (MCA) base and plugins necessary for Module Component Architecture (MCA) base and plugins necessary for
running Open MPI/OpenSHMEM version %{m_f_ver} jobs. running Open MPI/OpenSHMEM version %{version} jobs.
%endif %endif
%if 0%{!?testsuite:1} %if 0%{!?testsuite:1}
%package %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}} %package libs
Summary: OpenMPI runtime libraries for OpenMPI %{?with_hpc:HPC} version %{version} Summary: OpenMPI runtime libraries for OpenMPI %{?with_hpc:HPC} version %{version}
Group: System/Libraries Group: System/Libraries
Requires: %{name} = %{version} Requires: %{name} = %{version}
%if 0%{?default_openmpi} %if 0%{?default_openmpi}
Provides: openmpi-libs = %{version} Provides: openmpi-libs = %{version}
%endif %endif
%{?with_hpc:%hpc_requires}
%description %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}} %description libs
OpenMPI is an implementation of the Message Passing Interface, a OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations computing. OpenMPI is the merged result of four prior implementations
@@ -260,22 +191,17 @@ programming API, which is a Partitioned Global Address Space (PGAS)
abstraction layer providing inter-process communication using abstraction layer providing inter-process communication using
one-sided communication techniques. one-sided communication techniques.
This package provides the Open MPI/OpenSHMEM version %{m_f_ver} This package provides the Open MPI/OpenSHMEM version %{version}
shared libraries. shared libraries.
%package devel %package devel
Summary: SDK for openMPI %{?with_hpc:HPC} version %{version} Summary: SDK for openMPI version %{version}
Group: Development/Libraries/Parallel Group: Development/Libraries/Parallel
Requires: libibumad-devel Requires: libibumad-devel
Requires: libibverbs-devel
%if %{without hpc}
Requires: libstdc++-devel Requires: libstdc++-devel
%if 0%{?default_openmpi} %if 0%{?default_openmpi}
Provides: openmpi-devel = %{version} Provides: openmpi-devel = %{version}
%endif %endif
%else
%hpc_requires_devel
%endif
Requires: %{name} = %{version} Requires: %{name} = %{version}
%description devel %description devel
@@ -291,11 +217,11 @@ abstraction layer providing inter-process communication using
one-sided communication techniques. one-sided communication techniques.
This package provides the development files for Open MPI/OpenSHMEM This package provides the development files for Open MPI/OpenSHMEM
version %{m_f_ver}, such as wrapper compilers and header files for version %{version}, such as wrapper compilers and header files for
MPI/OpenSHMEM development. MPI/OpenSHMEM development.
%package docs %package docs
Summary: Documentation for Open MPI/SHMEM %{?with_hpc:HPC} version %{version} Summary: Documentation for Open MPI/SHMEM version %{version}
Group: Documentation/Man Group: Documentation/Man
Requires: %{name} = %{version} Requires: %{name} = %{version}
@@ -318,11 +244,11 @@ Summary: Macros for openMPI version %{version}
Group: Development/Libraries/Parallel Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version} Requires: %{name}-devel = %{version}
# Make sure no two openmpi macro file can be installed at once # Make sure no two openmpi macro file can be installed at once
Provides: %{pname}-macros-provider = %{version} Provides: openmpi-macros-provider = %{version}
Conflicts: otherproviders(%{pname}-macros-provider) Conflicts: otherproviders(openmpi-macros-provider)
# Conflict (without providing) with the older openmpi-hpc-macros-devel flag # Conflict (without providing) with the older openmpi-hpc-macros-devel flag
# to avoid issue with older packages # to avoid issue with older packages
Conflicts: otherproviders(%{pname}-hpc-macros-devel) Conflicts: otherproviders(openmpi-hpc-macros-devel)
%if 0%{?default_openmpi} %if 0%{?default_openmpi}
Provides: openmpi-macros-devel = %{version} Provides: openmpi-macros-devel = %{version}
@@ -333,7 +259,7 @@ Macros for building RPM packages for OpenMPI version %{version}.
%if 0%{?build_static_devel} %if 0%{?build_static_devel}
%package devel-static %package devel-static
Summary: Static libraries for openMPI %{?with_hpc:HPC} version %{version} Summary: Static libraries for openMPI version %{version}
Group: Development/Libraries/Parallel Group: Development/Libraries/Parallel
Requires: %{name}-devel = %{version} Requires: %{name}-devel = %{version}
%if 0%{?default_openmpi} %if 0%{?default_openmpi}
@@ -351,9 +277,8 @@ This RPM contains the static library files, which are packaged separately from
the dynamic library and headers. the dynamic library and headers.
%endif %endif
%if %{without hpc} %package config
%package -n %{pname}%{m_f_ver}-config Summary: Runtime configuration files for openMPI version %{version}
Summary: Runtime configuration files for openMPI %{?with_hpc:HPC} version %{version}
Group: Development/Libraries/Parallel Group: Development/Libraries/Parallel
Provides: openmpi-runtime-config = %{version} Provides: openmpi-runtime-config = %{version}
Conflicts: otherproviders(openmpi-runtime-config) Conflicts: otherproviders(openmpi-runtime-config)
@@ -361,7 +286,7 @@ Conflicts: otherproviders(openmpi-runtime-config)
Provides: pmix-runtime-config = %{version} Provides: pmix-runtime-config = %{version}
Conflicts: otherproviders(pmix-runtime-config) Conflicts: otherproviders(pmix-runtime-config)
%description -n %{pname}%{m_f_ver}-config %description config
OpenMPI is an implementation of the Message Passing Interface, a OpenMPI is an implementation of the Message Passing Interface, a
standardized API typically used for parallel and/or distributed standardized API typically used for parallel and/or distributed
computing. OpenMPI is the merged result of four prior implementations computing. OpenMPI is the merged result of four prior implementations
@@ -369,26 +294,13 @@ where the team found for them to excel in one or more areas,
such as latency or throughput. such as latency or throughput.
This RPM contains the configuration files for OpenMPI runtime (Version 3). This RPM contains the configuration files for OpenMPI runtime (Version 3).
%endif
%if %{with hpc}
%{hpc_master_package -L -a}
%{hpc_master_package -l}
%{hpc_master_package devel}
%{hpc_master_package docs}
%{hpc_master_package macros-devel}
%{hpc_master_package -a devel-static}
%endif # ?with_hpc
%endif # !testsuite %endif # !testsuite
# We do provide our own PMIx and should not create any requires/excludes # We do provide our own PMIx and should not create any requires/excludes
%global __provides_exclude_from %{mpi_libdir}/libpmix.*.so %global __provides_exclude_from %{mpi_libdir}/libpmix.*.so
%global __requires_exclude libpmix* %global __requires_exclude libpmix*
%if "%(echo %version | tr '.' '_')" != "%_vers"
%{error: Fix _vers variable to match package version!}
%endif
############################################################################# #############################################################################
# #
# Prepatory Section # Prepatory Section
@@ -396,16 +308,10 @@ This RPM contains the configuration files for OpenMPI runtime (Version 3).
############################################################################# #############################################################################
%prep %prep
echo FLAVOR %{flavor} echo FLAVOR %{flavor}
%if %{with hpc} %autosetup -p0 -n openmpi-%{version}
echo with HPC
%endif
%if %{without hpc}
echo without HPC
%endif
%autosetup -p0 -n openmpi-%{version}%{git_ver}
# Live patch the VERSION file # Live patch the VERSION file
sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{version}%{git_ver}/' \ sed -i -e 's/^greek=.*$/greek=/' -e 's/^repo_rev=.*$/repo_rev=%{version}/' \
-e 's/^date=.*$/date="OpenMPI %{version} Distribution for SUSE"/' VERSION -e 's/^date=.*$/date="OpenMPI %{version} Distribution for SUSE"/' VERSION
############################################################################# #############################################################################
@@ -419,15 +325,14 @@ sed -i -e 's/^greek=.*$/greek=%{git_ver}/' -e 's/^repo_rev=.*$/repo_rev=%{versio
export USER=OBS export USER=OBS
export HOSTNAME=OBS export HOSTNAME=OBS
# OBS sets SOURCE_DATE_EPOCH # OBS sets SOURCE_DATE_EPOCH
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects # OpenPMIx does not support LTO:
%{?with_hpc:%hpc_debug} # configure: WARNING: Configure has detected the presence of the -flto
# Remove .gitmodules so autogen.pl does not try to run git commands # configure: WARNING: compiler directive in CFLAGS. PMIx does not currently
find . -name .gitmodules -delete # configure: WARNING: support this flag as it conflicts with the
# configure: WARNING: plugin architecture of the PMIx library.
# configure: error: Please remove this directive and re-run configure.
%global _lto_cflags %{nil}
./autogen.pl --force --no-3rdparty libevent,hwloc ./autogen.pl --force --no-3rdparty libevent,hwloc
%if %{with hpc}
%{hpc_setup}
%{hpc_configure} \
%else
%{configure} \ %{configure} \
--prefix="%{mpi_prefix}" \ --prefix="%{mpi_prefix}" \
--exec-prefix="%{mpi_prefix}" \ --exec-prefix="%{mpi_prefix}" \
@@ -436,13 +341,12 @@ find . -name .gitmodules -delete
--includedir="%{mpi_includedir}" \ --includedir="%{mpi_includedir}" \
--libdir="%{mpi_libdir}" \ --libdir="%{mpi_libdir}" \
--mandir="%{mpi_mandir}" \ --mandir="%{mpi_mandir}" \
%endif
--with-libevent=external \ --with-libevent=external \
--with-hwloc=external \ --with-hwloc=external \
%{?build_static_devel:--enable-static} \ %{?build_static_devel:--enable-static} \
%{!?build_static_devel:--disable-static} \ %{!?build_static_devel:--disable-static} \
--enable-builtin-atomics \ --enable-builtin-atomics \
--with-verbs \ --without-verbs \
--with-libfabric \ --with-libfabric \
%if 0%{?with_ucx} %if 0%{?with_ucx}
--with-ucx \ --with-ucx \
@@ -483,7 +387,6 @@ make check
############################################################################# #############################################################################
%install %install
%{?with_hpc:%{hpc_setup_compiler}}
make install DESTDIR="%buildroot" make install DESTDIR="%buildroot"
# sanitize .la files # sanitize .la files
@@ -516,7 +419,6 @@ rm -f %{buildroot}%{mpi_libdir}/mpi_ext.mod
%fdupes %{buildroot}%{mpi_datadir} %fdupes %{buildroot}%{mpi_datadir}
%fdupes %{buildroot}%{mpi_libdir}/pkgconfig %fdupes %{buildroot}%{mpi_libdir}/pkgconfig
%if %{without hpc}
# make and install mpivars files # make and install mpivars files
sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \ sed -e 's,prefix,%{mpi_prefix},g' -e 's,libdir,%{mpi_libdir},g' %{SOURCE4} \
> %{buildroot}%{mpi_bindir}/mpivars.sh > %{buildroot}%{mpi_bindir}/mpivars.sh
@@ -553,56 +455,7 @@ cat <<EOF >%{buildroot}%{_rpmmacrodir}/macros.openmpi
%openmpi_devel_requires Requires: %{name}-devel %openmpi_devel_requires Requires: %{name}-devel
EOF EOF
%else
%hpc_write_modules_files
#%%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the %{pname} library built with the %{compiler_family} toolchain."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} toolchain"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{SUMMARY:0}"
module-whatis "URL: %{url}"
set version %{version}
setenv MPI_DIR %{hpc_mpi_install_path}
prepend-path PATH %{hpc_bindir}
prepend-path MANPATH %{hpc_mandir}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
prepend-path MODULEPATH %{hpc_modulepath}
%{hpc_modulefile_add_pkgconfig_path}
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{mpi_bindir}/mpivars.sh
%hpc_setup_compiler
module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
sed -e "s/export/setenv/" -e "s/=/ /" \
%{buildroot}/%{mpi_bindir}/mpivars.sh > \
%{buildroot}/%{mpi_bindir}/mpivars.csh
mkdir -p %{buildroot}%{_rpmmacrodir}
mkdir -p %{buildroot}%{_rpmmacrodir}
cp %{S:3} %{buildroot}%{_rpmmacrodir}
# Drop the files that should go into %{pname}-config as we only package them
# in the non HPC build
rm -f %{buildroot}%{_sysconfdir}/prte-default-hostfile
rm -f %{buildroot}%{_sysconfdir}/prte-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/openmpi-totalview.tcl
rm -f %{buildroot}%{_sysconfdir}/pmix-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/openmpi-mca-params.conf
rm -f %{buildroot}%{_sysconfdir}/prte.conf
%endif
%if %{without hpc}
%post %post
# Always register. We might be already registered in the case of an udate # Always register. We might be already registered in the case of an udate
# but mpi-selector handles it fine # but mpi-selector handles it fine
@@ -623,18 +476,10 @@ fi
%post libs -p /sbin/ldconfig %post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig
%else #!?with_hpc
# make it default
%post -n lib%{name} -p /sbin/ldconfig
%postun -n lib%{name} -p /sbin/ldconfig
%postun
%hpc_module_delete_if_default
%endif #!?with_hpc
%files %files
%defattr(-, root, root) %defattr(-, root, root)
%doc docs/news/news-v5.0.x.rst README.md %doc docs/release-notes/changelog/v5.0.x.rst README.md
%license LICENSE %license LICENSE
%dir %{mpi_prefix} %dir %{mpi_prefix}
%dir %{mpi_bindir} %dir %{mpi_bindir}
@@ -643,20 +488,15 @@ fi
%dir %{mpi_mandir} %dir %{mpi_mandir}
%{mpi_bindir}/mpivars.csh %{mpi_bindir}/mpivars.csh
%{mpi_bindir}/mpivars.sh %{mpi_bindir}/mpivars.sh
%if %{without hpc}
%dir %{_libdir}/mpi %dir %{_libdir}/mpi
%dir %{_libdir}/mpi/gcc %dir %{_libdir}/mpi/gcc
%dir %{_datadir}/modules/gnu-openmpi %dir %{_datadir}/modules/gnu-openmpi
%{_datadir}/modules/gnu-openmpi/%{version} %{_datadir}/modules/gnu-openmpi/%{version}
%else # with hpc
%hpc_mpi_dirs
%hpc_modules_files
%endif # with hpc
# #
%{mpi_bindir}/oshrun %{mpi_bindir}/oshrun
%{mpi_bindir}/mpirun %{mpi_bindir}/mpirun
%{mpi_bindir}/ompi_info %{mpi_bindir}/ompi_info
%{mpi_bindir}/palloc
%{mpi_bindir}/pattrs %{mpi_bindir}/pattrs
%{mpi_bindir}/pctrl %{mpi_bindir}/pctrl
%{mpi_bindir}/pevent %{mpi_bindir}/pevent
@@ -687,7 +527,7 @@ fi
%{mpi_datadir}/prte/amca-param-sets/example.conf %{mpi_datadir}/prte/amca-param-sets/example.conf
%{mpi_datadir}/prte/help-*.txt %{mpi_datadir}/prte/help-*.txt
%files %{!?with_hpc:libs}%{?with_hpc:-n lib%{name}} %files libs
%defattr(-,root,root) %defattr(-,root,root)
%dir %mpi_prefix/ %dir %mpi_prefix/
%dir %mpi_libdir/ %dir %mpi_libdir/
@@ -707,10 +547,8 @@ fi
%{mpi_libdir}/*.so %{mpi_libdir}/*.so
%{mpi_libdir}/pkgconfig/*.pc %{mpi_libdir}/pkgconfig/*.pc
%{mpi_libdir}/mpi.mod %{mpi_libdir}/mpi.mod
%if 0%{?suse_version} >= 1320
%{mpi_libdir}/mpi_f08*.mod %{mpi_libdir}/mpi_f08*.mod
%{mpi_libdir}/pmpi_f08*.mod %{mpi_libdir}/pmpi_f08*.mod
%endif
%{mpi_bindir}/mpiCC %{mpi_bindir}/mpiCC
%{mpi_bindir}/mpic++ %{mpi_bindir}/mpic++
%{mpi_bindir}/mpicc %{mpi_bindir}/mpicc
@@ -743,11 +581,7 @@ fi
%files macros-devel %files macros-devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%if %{with hpc}
%{_rpmmacrodir}/macros.hpc-openmpi
%else
%{_rpmmacrodir}/macros.openmpi %{_rpmmacrodir}/macros.openmpi
%endif
%if 0%{?build_static_devel} %if 0%{?build_static_devel}
%files devel-static %files devel-static
@@ -758,15 +592,13 @@ fi
%{mpi_libdir}/openmpi/*.a %{mpi_libdir}/openmpi/*.a
%endif %endif
%if %{without hpc} %files config
%files -n %{pname}%{m_f_ver}-config
%config %{_sysconfdir}/prte-default-hostfile %config %{_sysconfdir}/prte-default-hostfile
%config %{_sysconfdir}/prte-mca-params.conf %config %{_sysconfdir}/prte-mca-params.conf
%config %{_sysconfdir}/pmix-mca-params.conf %config %{_sysconfdir}/pmix-mca-params.conf
%config %{_sysconfdir}/openmpi-mca-params.conf %config %{_sysconfdir}/openmpi-mca-params.conf
%{_sysconfdir}/openmpi-totalview.tcl %{_sysconfdir}/openmpi-totalview.tcl
%config %{_sysconfdir}/prte.conf %config %{_sysconfdir}/prte.conf
%endif
%endif # !?testsuite %endif # !?testsuite