git: 91eafc4ac8d9 - main - math/cosma: update 2.6.2 → 2.8.4

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 01 Oct 2026 05:58:14 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=91eafc4ac8d9efdd387b9d0bce33b045931079d9

commit 91eafc4ac8d9efdd387b9d0bce33b045931079d9
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-10-01 05:14:17 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-10-01 05:58:09 +0000

    math/cosma: update 2.6.2 → 2.8.4
---
 math/cosma/Makefile                           | 31 ++++++++-----------
 math/cosma/distinfo                           |  8 ++---
 math/cosma/files/patch-src_cosma_strategy.cpp | 19 ++++++++++++
 math/cosma/pkg-plist                          | 44 +++++++--------------------
 4 files changed, 46 insertions(+), 56 deletions(-)

diff --git a/math/cosma/Makefile b/math/cosma/Makefile
index 6f233a3a4f4a..a481eb66bbf9 100644
--- a/math/cosma/Makefile
+++ b/math/cosma/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	cosma
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.6.2
-PORTREVISION=	6
+DISTVERSION=	2.8.4
 CATEGORIES=	math
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -11,33 +10,29 @@ WWW=		https://github.com/eth-cscs/COSMA
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-.if !exists(/usr/include/omp.h)
-BROKEN=		requires OpenMP support that is missing on this architecture
-.endif
+BUILD_DEPENDS=	cxxopts>0:devel/cxxopts
+LIB_DEPENDS=	libcosta.so:math/costa \
+		libopenblas.so:math/openblas
 
-BUILD_DEPENDS=	openmpi4>0:net/openmpi4
-LIB_DEPENDS=	libopenblas.so:math/openblas
-RUN_DEPENDS=	openmpi4>0:net/openmpi4
-
-USES=		cmake:testing
+USES=		cmake:testing mpi:mpich
 USE_LDCONFIG=	yes
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	eth-cscs
 GH_PROJECT=	COSMA
-GH_TUPLE=	eth-cscs:COSTA:5f1ea59:costa/libs/COSTA \
-		eth-cscs:Tiled-MM:9e880f9:tiledmm/libs/Tiled-MM
+GH_TUPLE=	eth-cscs:Tiled-MM:9e880f9:tiledmm/libs/Tiled-MM
 
 CMAKE_ON=	BUILD_SHARED_LIBS
 CMAKE_OFF=	COSMA_WITH_TESTS
 CMAKE_ARGS=	-DCOSMA_BLAS="OPENBLAS"
 CMAKE_TESTING_ON=	COSMA_WITH_TESTS
 
-post-install:
-	@cd ${STAGEDIR}${PREFIX} && \
-		${RMDIR} \
-			include/costa/pxtran \
-			include/costa/pxtranc \
-			include/costa/pxtranu
+LDFLAGS+=	-pthread
+
+.if !exists(/usr/include/omp.h)
+BROKEN=		requires OpenMP support that is missing on this architecture
+.endif
+
+# tests as of 2.8.4: 100% tests passed, 0 tests failed out of 4
 
 .include <bsd.port.mk>
diff --git a/math/cosma/distinfo b/math/cosma/distinfo
index c460612f6a6c..87a0bc9f9347 100644
--- a/math/cosma/distinfo
+++ b/math/cosma/distinfo
@@ -1,7 +1,5 @@
-TIMESTAMP = 1661720404
-SHA256 (eth-cscs-COSMA-v2.6.2_GH0.tar.gz) = 1f13579ab7e1fab903f7a8a8a76395d8fbbe42012e1a48e207bce3d88064c5a8
-SIZE (eth-cscs-COSMA-v2.6.2_GH0.tar.gz) = 1647903
-SHA256 (eth-cscs-COSTA-5f1ea59_GH0.tar.gz) = dedd4891cbce9bbf40bc5061ad761d6467626cae0635643d8bb0f8d21ebdeabd
-SIZE (eth-cscs-COSTA-5f1ea59_GH0.tar.gz) = 804689
+TIMESTAMP = 1790829487
+SHA256 (eth-cscs-COSMA-v2.8.4_GH0.tar.gz) = b478cc239a99baf6fdf889d123308a6b01a4521330bdb3f4def457feb0f7dfa0
+SIZE (eth-cscs-COSMA-v2.8.4_GH0.tar.gz) = 1562576
 SHA256 (eth-cscs-Tiled-MM-9e880f9_GH0.tar.gz) = bde0484ec241a393bb0fd82cb1d4ab0421ecbbfa85b50e442bf1c364803070a3
 SIZE (eth-cscs-Tiled-MM-9e880f9_GH0.tar.gz) = 139512
diff --git a/math/cosma/files/patch-src_cosma_strategy.cpp b/math/cosma/files/patch-src_cosma_strategy.cpp
new file mode 100644
index 000000000000..7593cd21011d
--- /dev/null
+++ b/math/cosma/files/patch-src_cosma_strategy.cpp
@@ -0,0 +1,19 @@
+-- Avoid undefined behavior when enable_overlapping_comm_and_comp() is called
+-- on an empty strategy. With n_steps() == 0, last_step becomes -1 and the
+-- subsequent split_dimension[last_step] access is out-of-bounds; Clang turns
+-- that path into a ud2 "privileged opcode" and the process dies with SIGILL.
+-- This is exercised by the parameterized test.multiply case (3,4,5,1).
+
+--- src/cosma/strategy.cpp.orig	2026-10-01 04:56:44 UTC
++++ src/cosma/strategy.cpp
+@@ -927,6 +927,10 @@ void Strategy::enable_overlapping_comm_and_comp() {
+
+ // enables overlapping and updates the value of the `irregular` variable
+ void Strategy::enable_overlapping_comm_and_comp() {
++    if (n_steps() == 0) {
++        return;
++    }
++
+     int last_step = n_steps() - 1;
+
+     // if comm and comp are overlapped, then in the last step
diff --git a/math/cosma/pkg-plist b/math/cosma/pkg-plist
index b3c95df23c55..500481271f63 100644
--- a/math/cosma/pkg-plist
+++ b/math/cosma/pkg-plist
@@ -34,43 +34,21 @@ include/cosma/statistics.hpp
 include/cosma/strategy.hpp
 include/cosma/timer.hpp
 include/cosma/two_sided_communicator.hpp
-include/costa/blacs.hpp
-include/costa/cinterface/transform.hpp
-include/costa/grid2grid/block.hpp
-include/costa/grid2grid/cantor_mapping.hpp
-include/costa/grid2grid/comm_volume.hpp
-include/costa/grid2grid/communication_data.hpp
-include/costa/grid2grid/grid2D.hpp
-include/costa/grid2grid/grid_cover.hpp
-include/costa/grid2grid/grid_layout.hpp
-include/costa/grid2grid/interval.hpp
-include/costa/grid2grid/memory_utils.hpp
-include/costa/grid2grid/mpi_type_wrapper.hpp
-include/costa/grid2grid/profiler.hpp
-include/costa/grid2grid/ranks_reordering.hpp
-include/costa/grid2grid/scalapack_layout.hpp
-include/costa/grid2grid/threads_workspace.hpp
-include/costa/grid2grid/transform.hpp
-include/costa/grid2grid/transformer.hpp
-include/costa/grid2grid/utils.hpp
-include/costa/layout.hpp
-include/costa/pxgemr2d/costa_pxgemr2d.hpp
-include/costa/pxgemr2d/pxgemr2d_params.hpp
-include/costa/pxtran_op/costa_pxtran_op.hpp
-include/costa/pxtran_op/pxtran_op_params.hpp
-include/costa/random_generator.hpp
-include/costa/scalapack.hpp
+lib/cmake/cosma/FindARMPL.cmake
+lib/cmake/cosma/FindATLAS.cmake
+lib/cmake/cosma/FindBLIS.cmake
+lib/cmake/cosma/FindBlas.cmake
+lib/cmake/cosma/FindCRAY_LIBSCI.cmake
+lib/cmake/cosma/FindFLEXIBLAS.cmake
+lib/cmake/cosma/FindGenericBLAS.cmake
 lib/cmake/cosma/FindMKL.cmake
+lib/cmake/cosma/FindNCCL.cmake
+lib/cmake/cosma/FindNVPL.cmake
+lib/cmake/cosma/FindOPENBLAS.cmake
+lib/cmake/cosma/FindSCALAPACK.cmake
 lib/cmake/cosma/cosmaConfig.cmake
 lib/cmake/cosma/cosmaConfigVersion.cmake
 lib/cmake/cosma/cosmaTargets-%%CMAKE_BUILD_TYPE%%.cmake
 lib/cmake/cosma/cosmaTargets.cmake
-lib/cmake/costa/FindMKL.cmake
-lib/cmake/costa/costaConfig.cmake
-lib/cmake/costa/costaConfigVersion.cmake
-lib/cmake/costa/costaTargets-%%CMAKE_BUILD_TYPE%%.cmake
-lib/cmake/costa/costaTargets.cmake
 lib/libcosma.so
-lib/libcosta.so
 libdata/pkgconfig/cosma.pc
-libdata/pkgconfig/costa.pc