From f90a27aa69f0d2c8a2bce3fc6fc30791dbab7ce5 Mon Sep 17 00:00:00 2001 From: "Oleg A. Khlybov" Date: Mon, 23 Jun 2025 23:00:27 +0500 Subject: [PATCH] mumps: test fixes --- mingw-w64-mumps/PKGBUILD | 9 ++++++--- mingw-w64-mumps/mumps.tcl | 11 +++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mingw-w64-mumps/PKGBUILD b/mingw-w64-mumps/PKGBUILD index 9e4a2eb504..f467744d06 100644 --- a/mingw-w64-mumps/PKGBUILD +++ b/mingw-w64-mumps/PKGBUILD @@ -1,6 +1,5 @@ # Contributor: Oleg A. Khlybov - # This package provides multiple library build flavors differentiated by # the 3-character suffix XYZ as follows: # @@ -25,12 +24,16 @@ # That is the ZMO suffix designates the optimized MPI parallel double precision complex library flavor. # Consider the `pkg-config mumps-zmo --cflags` command to obtain the build-specific compilation flags. +# There is a Tcl integration test suite for both packagers and end users to ensure the installed package is intact. +# The test suite performs a series of compile+run tests for multiple configurations from the build matrix. +# Basic usage: tclsh $MINGW_PREFIX/share/test/mumps/mumps.tcl + _realname=mumps pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.8.0 -pkgrel=1 +pkgrel=2 pkgdesc="Sparse direct SLAE solver (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64') @@ -60,7 +63,7 @@ sha256sums=('d762eb8b1d9843a0993b8cfc137d043d04c7c51877ad37c94560433a474340a0' '9d6df2d18a2fbf512a5808168335b712a1728a6979c5bc8b977ac73d7a0a6da1' 'bbefd4a5f841536132f32c1ffc684a58b778901cd777445ca817dbb34d983450' '357c13b985e75604fd9f59f2f174e6c75fd9133d0806e2db2d584d33e32b108d' - 'aa8cc50e447eebb14492744c8be6bd8f731e0140c339a76cc31e54ea2f11813d' + '14410ca49d5020feb94970ae47a20d616f0e58d9629a85cf1a7bdaf5ad29cac3' '8d8f5670ffdf34a10b0d027bff976131824e2e6b053f8a13d207ecddd4663d6d' 'd0db2aa573c9aaf57b30cb3c2bd7c66e1677f3f468002f467da98b75943076b1' 'd52709e3663d50ed793bfe991c571ec4ea5e6eaf72fcc920e1f8ba43d0ed7050') diff --git a/mingw-w64-mumps/mumps.tcl b/mingw-w64-mumps/mumps.tcl index aec836b9aa..de32264c0e 100644 --- a/mingw-w64-mumps/mumps.tcl +++ b/mingw-w64-mumps/mumps.tcl @@ -4,6 +4,13 @@ tcl::tm::add [file normalize [file join [file dirname [info script]] .]] package require xyz +# This fixes the issue related to the PkgConf-GFORTRAN interaction. +# Specifically, pkgconf (contrary to the original pkg-config utility) omits system +# directories (/ucrt64/include and alike) from command line options by default +# while gfortran (unlike gcc) maintains no default lookup directories and thus requires it. +set ::env(PKG_CONFIG_ALLOW_SYSTEM_CFLAGS) 1 + + foreach static {{} static} { foreach executor {{} omp} { xyz::unit MUMPS [concat $executor $static c double] { @@ -31,7 +38,7 @@ foreach precision {double single} { xyz::unit MUMPS [list $executor $static $precision $scalar fortran] -input $input { package require buildme buildme::sandbox { - buildme::shell "gfortran -o a [string index [dict get $unit -xyz] 0]simpletest.F -I/ucrt64/include `pkgconf mumps-[dict get $unit -xyz] --cflags --libs [dict get $unit -static]` [dict get $unit -static] && ./a < [dict get $unit -input]" + buildme::shell "gfortran -o a [string index [dict get $unit -xyz] 0]simpletest.F `pkgconf mumps-[dict get $unit -xyz] --cflags --libs [dict get $unit -static]` [dict get $unit -static] && ./a < [dict get $unit -input]" } } } @@ -39,7 +46,7 @@ foreach precision {double single} { xyz::unit MUMPS [list $executor $static $precision $scalar fortran] -input $input { package require buildme buildme::sandbox { - buildme::shell "mpifort -o a [string index [dict get $unit -xyz] 0]simpletest.F -I/usrt64/include `pkgconf mumps-[dict get $unit -xyz] --cflags --libs [dict get $unit -static]` [dict get $unit -static] && mpiexec -n 1 ./a < [dict get $unit -input]" + buildme::shell "mpifort -o a [string index [dict get $unit -xyz] 0]simpletest.F `pkgconf mumps-[dict get $unit -xyz] --cflags --libs [dict get $unit -static]` [dict get $unit -static] && mpiexec -n 1 ./a < [dict get $unit -input]" } } }