24 Commits

Author SHA256 Message Date
Nicolas Morey
c1eb839278 Update to v5.0.0
- ADI
    - MPID_Comm_get_lpid removed
    - MPID_Intercomm_exchange_map renamed to MPID_Intercomm_exchange
      and parameters now include tag, context_id, and will
      perform context_id exchange and lpid exchange.
  - CH4:OFI
    - added native RNDV feature
  - General
    - MPI_VERSION/MPI_SUBVERSION updated to 5 and 0.
      MPICH now supports the MPI 5.0 standard.
    - MPIR_CHKLMEM_ and MPIR_CHKPMEM_ macros are simplified
    - Rename MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT to MPIR_CVAR_PROGRESS_TIMEOUT
    - MPICH now generates the MPI-IO bindings when ROMIO is build inside MPICH.
    - Yaksa is now maintained inside MPICH rather than as an external submodule.
    - Added internal builtin datatypes and external builtin datatypes are mapped to internal types
    - Removed MPIR_Find_{local,external}. Added in MPIR_Comm struct.
    - Use MPIR_Comm_get_{node,node_roots}_comm to obtain node_comm and node_roots_comm.
    - Added MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4, MPI_LOGICAL8, and MPI_LOGICAL16.
    - Added MPIX_BFLOAT16, and added software reduction support for
      MPIX_BFLOAT16 and MPIX_C_FLOAT16.
    - Reworked AVX and AVX512 support.
    - PMI 2 is now deprecated. Please consider switching to PMI 1.
    - PMI 2 thread support is removed.
    - PMI 1 upgraded to PMI 1.2, adding new API PMI_Barrier_group.
    - MPI_Session_init default to MPI_THREAD_MULTIPLE. Thread levels are global.
    - Internal collective interface replaces the last parameter
      "MPIR_Errflag_t errflag" with "int coll_attr".

Signed-off-by: Nicolas Morey <nmorey@suse.com>
2026-02-05 16:49:13 +01:00
Nicolas Morey
2f71a10b62 Fix FFLAGS
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-09 01:15:10 +01:00
Nicolas Morey
83fcab613e Fix random configure failure on aarch64
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-09 01:15:10 +01:00
Nicolas Morey
0064fc5d6c Speed up testsuite by not rebuilding mpich completely
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-09 01:15:10 +01:00
Nicolas Morey
43f9f20607 Fix a datatype issue on s390x
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-09 00:13:13 +01:00
Nicolas Morey
15f2f50e9f disable CMA in make check
CMA does not work in OBS with recent kernels as it requires special user capabilities

Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-08 20:07:38 +01:00
Nicolas Morey
2bb6e745cc use autoreconf
This is much much faster than rerunning fully autogen.sh

Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-08 20:03:11 +01:00
Nicolas Morey
323ae90257 Rename standard multibuild flavor to ucx for more clarity
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-04 19:03:23 +01:00
Nicolas Morey
caf2d5c876 Use external hwloc
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-11-04 19:03:00 +01:00
Nicolas Morey
a1cbdd8dee Update to 4.3.2
Signed-off-by: Nicolas Morey <nmorey@suse.com>
2025-10-28 23:11:24 +01:00
38adbe3a04 Add Gitea build results 2025-10-27 17:35:26 +01:00
05ef4fee82 Accepting request 1310010 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1310010
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=38
2025-10-10 15:09:12 +00:00
5c58781524 - Remove romio-disable-tests.patch to reenable tests in OBS.
- Add romio-test-fix-bad-snprintf-arguments.patch to fix a test
  issue when building with FORTIFY_SOURCE
- Fix dependency from '*testsuite' packages to BuildRequires '*-devel'

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=83
2025-10-09 13:41:40 +00:00
46ac03da29 Accepting request 1288728 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1288728
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=37
2025-06-27 21:01:21 +00:00
7c33e07c1e - Update to 4.3.1
- Fix initialization in GPU-aware builds when no devices are present
  - Fix internal pmix.h header conflict when building with an external
    PMIx library.
  - Fix build issue with Slurm by removing dependency on libslurm and
    always using internal logic for parsing the Slurm hostfile.
  - Fix potential stale GPU IPC handle usage resulting in data corruption
    or crashes
  - Update XPMEM thresholds to avoid excessive buffer mapping overhead
  - Fix potential hang in ROMIO when setting info hints on certain files
  - Improved detection of incompatible PMI[x] client/server configuration
  - Fix use of PMIX_PREFIX attribute for certain versions of OpenPMIx
  - Fix Intel GPU output with MPIR_CVAR_DEBUG_SUMMARY
  - Fix F08 binding compilation with nvfortran
  - Fix line continuation Hydra's --configfile option
  - Fix valgrind uninitialized read warnings in ch3
  - Fix missing mpixxx_opts.conf file with help text for mpicc and friends
  - Fixes for several compiler warnings

OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=81
2025-06-26 16:15:31 +00:00
c1b988e46d Accepting request 1265556 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/1265556
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=36
2025-04-03 14:46:44 +00:00
6f9d3a62db - Remove support for gnu-hpc build flavours
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=79
2025-03-30 15:33:43 +00:00
8f6201a385 - Disable gnu-hpc build flavours (bsc#1239982)
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=78
2025-03-24 16:00:26 +00:00
2516dcdb76 Accepting request 1247233 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1247233
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=35
2025-02-20 15:40:16 +00:00
d2b9e60117 Accepting request 1247232 from home:NMorey:branches:science:HPC
- Update to 4.3.0
  - Support MPI memory allocation kinds side document.
  - Support MPI ABI Proposal. Configure with --enable-mpi-abi and build with
    mpicc_abi. By default, mpicc still builds and links with MPICH ABI.
  - Added benchmark tests test/mpi/bench/p2p_{latency,bw}. 
  - Added CMA support in CH4 IPC.
  - Added IPC read algorithm for intranode Allgather and Allgatherv.
  - Added CVAR MPIR_CVAR_CH4_SHM_POSIX_TOPO_ENABLE to enable non-temporal memcpy
    for inter-numa shm communication.
  - Added CVAR MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT for debugging MPI deadlock issues.  
  - ch4:ucx now supports dynamic processes. MPI_Comm_spawn{_multiple} will work.
    MPI_Open_port will fail due to ucx port name exceeds current MPI_MAX_PORT_NAME
    of 256. One can work around by use an info hint "port_name_size" and use a
    larger port name buffer.
  - PMI-1 defines PMI_MAX_PORT_NAME, which may be different from MPI_MAX_PORT_NAME.
    This is used by "PMI_Lookup_name". Consequently, MPI_Lookup_name accepts info
    hint "port_name_size" that may be larger than MPI_MAX_PORT_NAME. If the port
    name does not fit in "port_name_size", it will return a truncation error.
  - Autogen default to use -yaksa-depth=2.
  - Default MPIR_CVAR_CH4_ROOTS_ONLY_PMI to on.
  - Added ch4 netmod API am_tag_send and am_tag_recv.
  - Added MPIR_CVAR_CH4_OFI_EAGER_THRESHOLD to force RNDV send mode.
  - Make check target will run ROMIO tests.
  - Add back handle conversion macros (f2c/c2f) to preserve ABI
    compatibility with older MPICH libraries
  - Fix compilation issue with g++ in -std=gnu++20 mode
  - Fix bug in MPI_ANY_SOURCE handling observed using the libfabric CXI
    provider
  - Add NIC information to error messages in ch4:ofi netmod
- Add romio-disable-tests.patch to disable romio tests

OBS-URL: https://build.opensuse.org/request/show/1247232
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=76
2025-02-19 20:17:01 +00:00
6ec8e73b8e Accepting request 1193491 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1193491
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=34
2024-08-13 11:24:22 +00:00
045130142e Accepting request 1193409 from home:NMorey:branches:science:HPC
- Update to 4.2.2
  -  Update embedded libfabric to v1.20.1 and fix compilation with GCC 14.
  -  Fix dataloop support for MPIX_Type_iov routines
  -  Fix crash in Hydra when system has many local ip addresses
  -  Fix RMA fallback check in ch4:ofi netmod
  -  Fix MPI_UNDEFINED handling in mpi_f08 module
  -  Fix Slurm environment variable inheritance in Hydra
  -  Fix multiple issues with large count support in ROMIO
  -  Fix potential hang in init using PMIx client and nonstandard keys
  -  Fix crash if PMIx client cannot get appnum from server during init
  -  Fix other build errors and warnings
  -  Disable flat_namespace to build libmpifort on macOS by default
  -  Prefix warning messages with "MPICH"
  -  Add --disable-doc configure option
  -  Fix support for building MPICH Fortran support with Xcode 15 on macOS
  -  Fix bug in MPI_WIN_SHARED_QUERY when window is not shared
  -  Fix bug in ch4/ofi gpu pipelining
  -  Fixes for Intel GPU support
  -  Fix memory leak in ch4/shm collectives
  -  Fix bug in MPI_COMM_SPLIT with intercommunicators and non-zero root
  -  Fix bug in DAOS ROMIO driver
  -  Fix bug in cycling error code array
  -  Return an error if there is failure to create a datatype in mpi_f08
     module for noncontiguous user data
  -  Return an error when shared memory segment creation fails
  -  Complete support MPI 4.1 specification
  -  Experimental thread communicator feature (e.g. MPIX_Threadcomm_init).
     See paper "Frustrated With MPI+Threads? Try MPIxThreads!",
     https://doi.org/10.1145/3615318.3615320.
  -  Experimental datatype functions MPIX_Type_iov_len and MPIX_Type_Iov

OBS-URL: https://build.opensuse.org/request/show/1193409
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=74
2024-08-12 16:29:03 +00:00
5b6ee6c81a Accepting request 1183208 from science:HPC
OBS-URL: https://build.opensuse.org/request/show/1183208
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpich?expand=0&rev=33
2024-06-25 21:09:34 +00:00
27f10865e7 Accepting request 1183200 from home:NMorey:branches:science:HPC
- Remove unneeded sysfsutil dependency
- Do no build hpc flavours on 32b systems

OBS-URL: https://build.opensuse.org/request/show/1183200
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mpich?expand=0&rev=72
2024-06-25 14:27:35 +00:00
8 changed files with 208 additions and 53 deletions

12
README.md Normal file
View File

@@ -0,0 +1,12 @@
## Build Results
Current state of mpich in openSUSE:Factory is
![Factory build results](https://br.opensuse.org/status/openSUSE:Factory/mpich/standard)
The current state of mpich in the devel project build (science:HPC)
![Devel project build results](https://br.opensuse.org/status/science:HPC/mpich)

View File

@@ -1,6 +1,6 @@
<multibuild>
<package>standard</package>
<package>testsuite</package>
<package>ucx</package>
<package>ucx-testsuite</package>
<package>ofi</package>
<package>ofi-testsuite</package>
</multibuild>

View File

@@ -0,0 +1,47 @@
commit 7d1129bb636b97d03b36412015bc6cb2d085665e
Author: Nicolas Morey <nmorey@suse.com>
Date: Sat Nov 8 23:34:58 2025 +0100
ch4: shm: fix data type for recv_bytes in MPIDI_POSIX_mpi_release_gather_release
The number of received bytes in release_gather_release is badly cast between
int and MPI_Aint. On most arch this is not an issue, but for Big-Endian 64b arch (s390x)
it ends up losing the actual value as we only copy the first 4 MSB.
Fix the issue by writing the whole MPI_AInt in the shm_buf instead of just an int.
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git src/mpid/ch4/shm/posix/release_gather/release_gather.h src/mpid/ch4/shm/posix/release_gather/release_gather.h
index e5e055f20b57..b49e1c84e65e 100644
--- src/mpid/ch4/shm/posix/release_gather/release_gather.h
+++ src/mpid/ch4/shm/posix/release_gather/release_gather.h
@@ -124,7 +124,7 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_POSIX_mpi_release_gather_release(void *local_
datatype, root, MPIR_BCAST_TAG, comm_ptr, &status);
MPIR_ERR_CHECK(mpi_errno);
MPIR_Get_count_impl(&status, MPIR_BYTE_INTERNAL, &recv_bytes);
- MPIR_Typerep_copy(bcast_data_addr, &recv_bytes, sizeof(int),
+ MPIR_Typerep_copy(bcast_data_addr, &recv_bytes, sizeof(MPI_Aint),
MPIR_TYPEREP_FLAG_NONE);
/* It is necessary to copy the coll_attr as well to handle the case when non-root
* becomes temporary root as part of compositions (or smp aware colls). These temp
@@ -149,7 +149,7 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_POSIX_mpi_release_gather_release(void *local_
/* When error checking is enabled, place the datasize in shm_buf first, followed by the
* coll_attr, followed by the actual data with an offset of (2*cacheline_size) bytes from
* the starting address */
- MPIR_Typerep_copy(bcast_data_addr, &count, sizeof(int), MPIR_TYPEREP_FLAG_NONE);
+ MPIR_Typerep_copy(bcast_data_addr, &count, sizeof(MPI_Aint), MPIR_TYPEREP_FLAG_NONE);
/* It is necessary to copy the coll_attr as well to handle the case when non-root
* becomes root as part of compositions (or smp aware colls). These roots might
* expect same data as other ranks but different from the actual root. So only
@@ -221,8 +221,9 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_POSIX_mpi_release_gather_release(void *local_
* datasize is copied out from shm_buffer and compared against the count a rank was
* expecting. Also, the coll_attr is copied out. In case of mismatch mpi_errno is set.
* Actual data starts after (2*cacheline_size) bytes */
- int recv_bytes, recv_errflag;
- MPIR_Typerep_copy(&recv_bytes, bcast_data_addr, sizeof(int), MPIR_TYPEREP_FLAG_NONE);
+ MPI_Aint recv_bytes;
+ int recv_errflag;
+ MPIR_Typerep_copy(&recv_bytes, bcast_data_addr, sizeof(MPI_Aint), MPIR_TYPEREP_FLAG_NONE);
MPIR_Typerep_copy(&recv_errflag, (char *) bcast_data_addr + MPIDU_SHM_CACHE_LINE_LEN,
sizeof(int), MPIR_TYPEREP_FLAG_NONE);
MPIR_ERR_CHKANDJUMP2(recv_bytes != count, mpi_errno, MPI_ERR_OTHER,

Binary file not shown.

BIN
mpich-5.0.0.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,110 @@
-------------------------------------------------------------------
Sun Jan 25 18:12:49 UTC 2026 - Nicolas Morey <nmorey@suse.com>
- Update to v5.0.0
- ADI
- MPID_Comm_get_lpid removed
- MPID_Intercomm_exchange_map renamed to MPID_Intercomm_exchange
and parameters now include tag, context_id, and will
perform context_id exchange and lpid exchange.
- CH4:OFI
- added native RNDV feature
- General
- MPI_VERSION/MPI_SUBVERSION updated to 5 and 0.
MPICH now supports the MPI 5.0 standard.
- MPIR_CHKLMEM_ and MPIR_CHKPMEM_ macros are simplified
- Rename MPIR_CVAR_DEBUG_PROGRESS_TIMEOUT to MPIR_CVAR_PROGRESS_TIMEOUT
- MPICH now generates the MPI-IO bindings when ROMIO is build inside MPICH.
- Yaksa is now maintained inside MPICH rather than as an external submodule.
- Added internal builtin datatypes and external builtin datatypes are mapped to internal types
- Removed MPIR_Find_{local,external}. Added in MPIR_Comm struct.
- Use MPIR_Comm_get_{node,node_roots}_comm to obtain node_comm and node_roots_comm.
- Added MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4, MPI_LOGICAL8, and MPI_LOGICAL16.
- Added MPIX_BFLOAT16, and added software reduction support for
MPIX_BFLOAT16 and MPIX_C_FLOAT16.
- Reworked AVX and AVX512 support.
- PMI 2 is now deprecated. Please consider switching to PMI 1.
- PMI 2 thread support is removed.
- PMI 1 upgraded to PMI 1.2, adding new API PMI_Barrier_group.
- MPI_Session_init default to MPI_THREAD_MULTIPLE. Thread levels are global.
- Internal collective interface replaces the last parameter
"MPIR_Errflag_t errflag" with "int coll_attr".
- Refresh ch4-shm-fix-data-type-for-recv_bytes-in-MPIDI_POSIX_mpi_release_gather_release.patch
- Drop patch picked upstream romio-test-fix-bad-snprintf-arguments.patch
-------------------------------------------------------------------
Tue Nov 4 17:54:18 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Use external hwloc
- Rename standard multibuild flavor to ucx for more clarity
- Add ch4-shm-fix-data-type-for-recv_bytes-in-MPIDI_POSIX_mpi_release_gather_release.patch
to fix a datatype issue on s390x
- Speed up testsuite by not rebuilding mpich completely
- Fix random configure failure on aarch64
- Fix FFLAGS
-------------------------------------------------------------------
Tue Oct 28 17:54:04 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.3.2
- Improve libfabric provider selection when available providers have
negative internal score
- Improve error messages when Level Zero failures are detected
- Improve localhost detection in Hydra
- Update libfabric usage to silence deprecation warnings
- Update yaksa for improved reproducibility in code generation
- Add compatibility with CUDA 13
- Fix missing const in nondestructive request test and status query
functions
- Fix HCOLL support
- Fix crash with GPU-aware build when running on systems with no GPUs
- Fix HIP device query
- Fix singleton init with Hydra
- Fix thread safety for Level Zero memcpy functions
- Fix potential crash when release gather collective initialization fails
- Fix ch3 connect/accept protocol handling when a discard event arrives
after a connection is already established
- Fix inlining for posix eager modules in ch4/shm
- Fix weak attribute usage in MPI ABI build
- Fix potential use-after-free bug in Hydra during spawn operations
- Fix bug in persistent bcast algorithm
- Fix bug in fabric coordinate retrieval with PMIx
- Fix integer overflow and signed/unsigned bugs in ROMIO
- Fix Quobtye ROMIO driver build error
- Fix broken string conversion in mpi_f08 module
- Fix compilation issue with mpi_f08 and NAG compiler
- Fixes for various test program bugs
-------------------------------------------------------------------
Thu Sep 25 06:59:00 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Remove romio-disable-tests.patch to reenable tests in OBS.
- Add romio-test-fix-bad-snprintf-arguments.patch to fix a test
issue when building with FORTIFY_SOURCE
- Fix dependency from '*testsuite' packages to BuildRequires '*-devel'
-------------------------------------------------------------------
Sun Jun 22 17:39:27 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 4.3.1
- Fix initialization in GPU-aware builds when no devices are present
- Fix internal pmix.h header conflict when building with an external
PMIx library.
- Fix build issue with Slurm by removing dependency on libslurm and
always using internal logic for parsing the Slurm hostfile.
- Fix potential stale GPU IPC handle usage resulting in data corruption
or crashes
- Update XPMEM thresholds to avoid excessive buffer mapping overhead
- Fix potential hang in ROMIO when setting info hints on certain files
- Improved detection of incompatible PMI[x] client/server configuration
- Fix use of PMIX_PREFIX attribute for certain versions of OpenPMIx
- Fix Intel GPU output with MPIR_CVAR_DEBUG_SUMMARY
- Fix F08 binding compilation with nvfortran
- Fix line continuation Hydra's --configfile option
- Fix valgrind uninitialized read warnings in ch3
- Fix missing mpixxx_opts.conf file with help text for mpicc and friends
- Fixes for several compiler warnings
-------------------------------------------------------------------
Sat Mar 29 14:25:11 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package mpich
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,10 +29,10 @@
ExclusiveArch: do_not_build
%endif
%if "%{flavor}" == "standard"
%if "%{flavor}" == "ucx"
%define build_flavor ucx
%endif
%if "%{flavor}" == "testsuite"
%if "%{flavor}" == "ucx-testsuite"
%define build_flavor ucx
%define testsuite 1
%endif
@@ -65,11 +65,12 @@ ExclusiveArch: do_not_build
%define p_mandir %{p_datadir}/man
%define p_libdir %{p_prefix}/%{_lib}
%define p_libexecdir %{p_prefix}/%{_lib}
%define p_sysconfdir %{p_prefix}/%{_sysconfdir}
%define _moduledir /usr/share/modules/gnu-%{module_name}
%define package_name %{pname}%{?pack_suff}
Name: %{package_name}%{?testsuite:-testsuite}
Version: 4.3.0
Version: 5.0.0
Release: 0
Summary: High-performance and widely portable implementation of MPI
License: MIT
@@ -79,9 +80,10 @@ Source0: http://www.mpich.org/static/downloads/%{version}/mpich-%{version
Source1: mpivars.sh
Source2: mpivars.csh
Source100: _multibuild
Source101: README.md
Patch1: autogen-only-deal-with-json-yaksa-if-enabled.patch
Patch2: autoconf-pull-dynamic-and-not-static-libs-from-pkg-config.patch
Patch3: romio-disable-tests.patch
Patch3: ch4-shm-fix-data-type-for-recv_bytes-in-MPIDI_POSIX_mpi_release_gather_release.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
@@ -99,6 +101,7 @@ BuildRequires: libtool
BuildRequires: libtool
BuildRequires: mpi-selector
BuildRequires: python3-devel
BuildRequires: hwloc-devel >= 2.0
%if "%{build_flavor}" == "ofi"
BuildRequires: libfabric-devel
@@ -112,7 +115,6 @@ BuildRequires: libuct-devel >= 1.7.0
# UCX is only available for 64b archs
ExcludeArch: %ix86 %arm
%endif
Provides: mpi
BuildRequires: Modules
BuildRequires: gcc-c++
@@ -122,7 +124,7 @@ Requires: mpi-selector
Requires(preun): mpi-selector
%if 0%{?testsuite}
BuildRequires: %package_name = %{version}
BuildRequires: %package_name-devel = %{version}
%endif
%description
@@ -185,11 +187,15 @@ rm -R modules/{ucx,libfabric,json-c}
# GCC10 needs an extra flag to allow badly passed parameters
%if 0%{?suse_version} > 1500
export FFLAGS="-fallow-argument-mismatch $FFLAGS"
export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
export FFLAGS="-fallow-argument-mismatch %{optflags}"
export FCFLAGS="-fallow-argument-mismatch %{optflags}"
%endif
./autogen.sh --without-ucx --without-ofi --without-json
%ifarch aarch64
# For some reason, configure has random issue with defining this
# on aarch64 only. Set it to avoid random failure
export CROSS_F77_SIZEOF_INTEGER=4
%endif
autoreconf -fi
%configure \
--prefix=%{p_prefix} \
--exec-prefix=%{p_prefix} \
@@ -200,8 +206,10 @@ export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
--libexecdir=%{p_libexecdir} \
--mandir=%{p_mandir} \
--docdir=%{_datadir}/doc/%{name} \
--sysconfdir=%{p_sysconfdir} \
--disable-rpath \
--disable-wrapper-rpath \
--with-hwloc \
%if "%{build_flavor}" == "ofi"
--with-ofi \
--with-device=ch4:ofi \
@@ -215,6 +223,21 @@ export FCFLAGS="-fallow-argument-mismatch $FCFLAGS"
MPICHLIB_CFLAGS="%{optflags}" \
MPICHLIB_CXXFLAGS="%{optflags}"
%if 0%{?testsuite}
%install
rm -rf %{buildroot}/*
%check
# Disable CMA. Modern kernels require specific ptrace capabilities
# that are not available in OBS
export MPIR_CVAR_CH4_CMA_ENABLE=0
for dir in src/mpl src/mpi/romio/test; do
(
cd $dir && make check
)
done
%else
make %{?_smp_mflags} VERBOSE=1
%install
@@ -248,16 +271,6 @@ find %{buildroot} -name "*.a" -delete
%fdupes %{buildroot}%{p_datadir}
%fdupes %{buildroot}%{p_libdir}/pkgconfig
%if 0%{?testsuite}
# Remove everything from testsuite package
# It is all contained by mpich packages
rm -rf %{buildroot}/*
%check
make check
%else
# make and install mpivars files
install -m 0755 -d %{buildroot}%{_bindir}
sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:1} > %{buildroot}%{p_bindir}/mpivars.sh
@@ -314,12 +327,10 @@ fi
%files
%defattr(-,root,root)
%doc CHANGES COPYRIGHT README README.envvar RELEASE_NOTES
%doc CHANGES COPYRIGHT README README.envvar
%dir /usr/%_lib/mpi
%dir /usr/%_lib/mpi/gcc
%dir /usr/share/modules
%dir %{_moduledir}
%{_moduledir}
%doc %{_datadir}/doc/*
%dir %{p_prefix}
%dir %{p_bindir}
@@ -329,9 +340,11 @@ fi
%dir %{p_mandir}/man1
%dir %{p_mandir}/man3
%dir %{p_libdir}
%{_moduledir}
%{p_bindir}/*
%{p_mandir}/man1/*
%{p_libdir}/*.so.*
%{p_sysconfdir}
%files devel
%defattr(-,root,root)

View File

@@ -1,24 +0,0 @@
commit 064abd16295dd402a436d9e9e3a1ad887c6fafb6
Author: Nicolas Morey <nmorey@suse.com>
Date: Wed Feb 19 19:45:08 2025 +0100
romio: disable tests
Tests assumes mpich to be fully installed which does not work
for %check
Signed-off-by: Nicolas Morey <nmorey@suse.com>
diff --git src/mpi/romio/Makefile.am src/mpi/romio/Makefile.am
index a6429766fd47..eb9ccd4f2f81 100644
--- src/mpi/romio/Makefile.am
+++ src/mpi/romio/Makefile.am
@@ -56,7 +56,7 @@ nodist_include_HEADERS += include/mpio.h include/mpiof.h
# ------------------------------------------------------------------------
-SUBDIRS = $(external_subdirs) . test
+SUBDIRS = $(external_subdirs) .
DIST_SUBDIRS = test test-internal $(external_dist_subdirs)
# for the sake of parallel make and avoiding an excessive number of convenience