head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.2 pkgsrc-2026Q1-base:1.1; locks; strict; comment @# @; 1.1 date 2026.02.24.23.09.02; author thor; state Exp; branches; next ; commitid LkkOtNI91FnUtGvG; desc @@ 1.1 log @openblas: update to 0.3.31 OpenBLAS ChangeLog ==================================================================== Version 0.3.31 15-Jan-2025 general: - reverted a matrix partitioning optimization from 0.3.30 that could lead to race conditions and subsequent invalid results in GEMM - added the bfloat16 extensions BGEMM and BGEMV - added a BLAS interface for the ?GEMM_BATCH extensions - added the BLAS extensions ?GEMM_BATCH_STRIDED and their CBLAS interface - added the basic infrastructure for half-precision float (FP16) format using SH prefix - reimplemented the LAPACK SLAED3/DLAED3 function using multithreading, thereby improving the performance of the SSYEVD/DSYEVD eigensolver for symmetric matrices on all platforms - limited the number of retries for initial memory allocation to avoid infinite hanging on low-memory systems - fixed a thread lockup situation encountered with python 3.9 or older and numpy - introduced a problem size threshold for multithreading in STRMV/DTRMV - introduced a problem size threshold for multithreading in CHER/CHER2/CHPR/CHPR2 and ZHER/ZHER2/ZHPR/ZHPR2 - improved the problem size thresholds for multithreading in SGER/DGER - improved autodetection of the Fortran compiler - fixed passing of the INTERFACE64=1 option to the flang-new compiler - fixed a potential deadlock in multithreaded code after calling fork() - fixed builds using CMake on FreeBSD - fixed builds using CMake from within Cygwin on Windows - fixed builds using CMake and the NVHPC compiler on ARM64 - fixed CMake build error from misdetecting compiler or OpenMP versions - improved contents of the CMake-generated OpenBLASConfig.cmake file - added support for cross-compilation to RISCV targets via CMake - fixed cross-compilation to x86 targets from non-x86 architectures - fixed failure to install cblas.h if NO_CBLAS=0 was specified - fixed missing user-defined pre- and postfixes on functions in lapack.h,lapacke.h - included fixes from the Reference-LAPACK project: - fix ordering bug in ?LAED/?LASD (Reference-LAPACK PR 1140) - revert changes in ?GEEV from PR 1129 (Reference-LAPACK PR 1142) - fix workspace allocation in LAPACKE_?TRSEN (Reference-LAPACK PR 1144) riscv: - added optimized SBGEMM kernels for ZVL128B and ZVL256B targets - added optimized SHGEMM kernels for ZVL128B and ZVL256B targets - added optimized SBGEMV and SHGEMV kernels for ZVL128B/ZVL256B - improved performance of the GEMV kernel for ZVL256B - improved the performance of the CROT and ZROT kernels for ZVL128B and x280 - improved the detection of RVV1.0 capability - improved performance of the matrix packing helper functions for ZVL128B and ZVL256B - improved performance of OMATCOPY for ZVL128B and ZVL256B arm: - fixed spurious executable stack in the getarch utility arm64: - fixed spurious executable stack in the getarch utility - fixed compiler warnings arising from the timer macro RPCC - fixed cache size detection for Qualcomm Oryon under Windows on Arm - fixed argument handling in the default SVE kernel for SDOT/DDOT - building the BFLOAT16 kernels is now enabled by default - improved the overall performance of GEMM,SYMM and HEMM on A64FX - improved the performance of SDOT/DDOT on A64FX - improved the multithreading performance of SDOT/DDOT on A64FX by introduction of a throttling table matching thread count to problem size - improved the performance of SGER/DGER on A64FX and NEOVERSEV1 - improved the multithreading performance of GEMM on A64FX and NEOVERSEV1 - improved the performance of the GEMV kernel for SVE-capable targets - improved the multithreading performance of SGEMM on NEOVERSEV1 and V2 - added optimized SAXPY/DAXPY SVE kernels for A64FX and NEOVERSEV1 - added optimized BGEMM and BGEMV kernels for NEOVERSEV1 - added an optimized BGEMM kernel for NEOVERSEN2 - added support for the NEOVERSEV2 cpu - added dedicated support for the Apple M4 cpu as VORTEXM4 - added optimized SGEMM/SSYMM/STRMM/SSYRK/SSYR2K for SME-capable targets (ARMV9SME and VORTEXM4) - improved the precision of the SNRM2 kernel - added cpu autodetection and compiler settings for Ampere One processors - fixed cpu autodetection for Apple M systems running Linux - fixed building on MacOS with AppleClang,gfortran and xcode v16 or newer - fixed several errors in the C code replacements for the complex and double precision complex LAPACK functions that get used (only) when compiling with Microsoft C and NOFORTRAN=1 under MS Windows power: - added initial support for the POWER11 architecture - improved performance of DGEMM and DGEMV on POWER10 - fixed the default compiler flags to use "-O3" instead of the possibly unsafe "-Ofast" - fixed building under MacOS (for old G4 Macs) with CMake - fixed potential miscompilation of DGEMV and other assembly kernels by gcc15.1 - fixed compilation with recent versions of flang loongarch64: - fixed warnings and potential inaccuracies arising from incorrect saving of registers - fixed enumeration of logical cores on big NUMA servers - fixed building with LLVM and the INTERFACE64=1 option x86: - fixed building the GEMM3M kernels for the GENERIC target - fixed several errors in the C code replacements for the complex and double precision complex LAPACK functions that get used (only) when compiling with Microsoft C and NOFORTRAN=1 under MS Windows x86_64: - added cpu autodetection for Intel Lunar Lake (Core Ultra 200V) - changed all ?MIN and ?MAX assembly kernels to use unaligned operations - fixed several errors in the C code replacements for the complex and double precision complex LAPACK functions that get used (only) when compiling with Microsoft C and NOFORTRAN=1 under MS Windows - fixed potential crashes in builds for Cooper Lake, Sapphire Rapids or Zen5 cpus under MS Windows zarch: - added support for building with CMake sparc: - fixed a potential crash in the DNRM2 kernel ==================================================================== Version 0.3.30 19-Jun-2025 general: - fixed an installation problem with the thread safety test in gmake builds - fixed spurious overwriting of an input array in complex GEMMT/GEMMTR - fixed naming of GEMMTR in error messages from XERBLA - fixed compilation of SBGEMMT/SBGEMMTR in CMake builds - fixed the implementation of ?NRM2 to handle INCX=0 correctly - removed tests for CSROT and ZDROT that relied on unspecified behavior - fixed a performance regression in multithreaded GEMM that was particularly serious on POWER targets - fixed linking issues when using LLVM's flang-new with gmake - fixed a potential thread safety problem with C11 atomic operations - further improved the workload partitioning in parallel GEMM - fixed omission of LAPACKE interfaces for CGESVDQ,CTRSYL3 and ?GEQPF in CMake builds - fixed mishandling of setting NO_LAPACK to FALSE, and incorrect dependencies for LAPACK function SPMV in CMake builds - added explicit CMake options for building LAPACKE and shared libraries - simplified and improved handling of OpenMP options in CMake builds - reworked Windows DLL generation in CMake builds to ensure correct symbol renaming (pre/postfixing) and optional generation of PDB files for debugging - updated the Perl script version of the gensymbol utility for use with Windows-on-Arm - Fixed building with (Mingw) gmake on Windows to ensure completeness of the LAPACK included in the static library (potential race condition due to the Windows version of the "ln" utility creating snapshot copies rather than links) - fixed unwanted deletion of the lapacke_mangling.h file by "make clean" - fixed potential duplication of a _64 suffix on library names in CMake builds - fixed compilation of the C fallback copies of the LAPACK code with GCC 15 - included fixed from the Reference-LAPACK project: - fixed a truncated error message in the EIG part of the testsuite (Reference-LAPACK PR 1119) - fixed too strict check in LAPACKE_?gesdd_work (PR #1126) - fixed memory corruption when calling ?GEEV with non-finite data (PR #1128) - fixed missing initialization of a variable in C/GEQP3RK (PR #1131) - fixed 2nd dimension chosen in C/ZUNMLQ transposition operation (PR #1135) x86_64: - fixed an error in the SBGEMV kernel for Cooper Lake/Sapphire Rapids - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - improved the compiler identification code for flang-new - fixed a potential build issue in the ZSUM kernel - fixed "argument list too long" errors when building on MacOS - added cpu autodetection support for several new Arrow Lake models - fixed conditional inclusion of the fast path SGEMM kernel in DYNAMIC_ARCH - fixed compilation with the MinGW build of GCC 15 arm64: - fixed cpu type detection of A64FX and some ThunderX models (broken in 0.3.29) - added support for the AmpereOne/1A cpus in DYNAMIC_ ARCH builds - added an optimized SBGEMM kernel for NEOVERSEV1 - improved 1xN SBGEMM performance by forwarding to SBGEMV - introduced a stepwise increase of the thread count used for SGEMM and SGEMV on NEOVERSEV1/V2 in relation to problem size - introduced a stepwise increase of the thread count used for DGEMV on NEOVERSEV1 in relation to problem size - introduced a stepwise increase of the thread count used for SDOT and DDOT on NEOVERSEV1 in relation to problem size - worked around assembler limitations in LLVM for Windows-on-Arm - enabled cpu type autodetection from the registry on Windows-on-Arm - improved multithreading threshold for GEMV and GESV on Windows-on-Arm - fixed overoptimization issues with LLVM's flang in Windows-on-Arm - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - added a fast path SGEMM kernel for small workloads on SME capable targets - improved performance of SGEMM and DGEMM kernels for small workloads - improved performance of SGEMV and DGEMV on SVE-capable targets - improved performance of SGEMV on NEOVERSEN1 and Apple M - added optimized SSYMV and DSYMV kernels for NEOVERSEN1, Apple M and all SVE capable targets - added optimized SBGEMV kernels for NEOVERSEV1/V2/N2 - improved performance of SGEMM through faster NCOPY kernels - added compiler options for the NVIDIA HPC Compiler Suite - fixed compilation on OSX with XCode 16.3 and later - fixed cpu core type and cache size detection on Apple M4 - updated GEMM parameter settings for Neoverse cpus in cross-builds with CMake - fixed default compiler options for NEOVERSEN1 and CORTEXX2 in CMake builds - fixed conditional inclusion of the fast path SGEMM kernel in DYNAMIC_ARCH - fixed potential miscompilation of the non-SVE SDOT kernel riscv64: - added optimized SROTM and DROTM kernels for x280 - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - improved performance of GEMM_TCOPY on RVV1.0 targets with VLEN of 128 or 256 - improved performance of OMATCOPY on targets with VLEN 256 - greatly improved performance of SGEMV/DGEMV - improved performance of CGEMV and ZGEMV on C910V and all RVV targets with VLEN 256 - improved performance of SAXPBY and DAXPBY on C910V and all RVV targets with VLEN 256 - improved performance of AXPY and DOT on C910V and ZVL256B targets by falling back to non-vectorized code for very small N. (Thereby fixing poor performance of CHBMV/ZHBMV for very small K) - fixed CMake build failures of the TRMM kernels loongarch64: - improved performance of the LSX versions of SSYMV/DSYMV - made the LASX versions of the DSYMV and SSYMV kernels compatible with hardware changes in LA664 and future targets - fixed inaccuracies in several LASX kernels - improved compatibility of LSX kernels with LA264 targets - fixed handling of deprecated target names in CMake builds - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL power: - fixed building for PPCG4 with CMake - fixed SSCAL/DSCAL on PPC970 running FreeBSD - fixed a potential alignment issue in the POWER8 SGEMV kernel - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL zarch: - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - fixed unwanted generation of object files with a writable stack x86: - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - worked around potential miscompilation of CDOT with very old binutils arm: - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL - fixed unwanted generation of object files with a writable stack sparc: - fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL alpha: - fixed build failure caused by spurious Windows-only typecasts cell: - fixed probable build issue caused by spurious Windows-only typecasts ==================================================================== Version 0.3.29 12-Jan-2025 general: - fixed a potential NULL pointer dereference in multithreaded builds - added function aliases for GEMMT using its new name GEMMTR adopted by Reference-BLAS - fixed a build failure when building without LAPACK_DEPRECATED functions - the minimum required CMake version for CMake-based builds was raised to 3.16.0 in order to remove many compatibility and deprecation warnings - added more detailed CMake rules for OpenMP builds (mainly to support recent LLVM) - fixed the behavior of the recently added CBLAS_?GEMMT functions with row-major data - improved thread scaling of multithreaded SBGEMV - improved thread scaling of multithreaded TRTRI - fixed compilation of the CBLAS testsuite with gcc14 (and no Fortran compiler) - added support for option handling changes in flang-new from LLVM18 onwards - added support for recent calling conventions changes in Cray and NVIDIA compilers - added support for compilation with the NAG Fortran compiler - fixed placement of the -fopenmp flag and libsuffix in the generated pkgconfig file - improved the CMakeConfig file generated by the Makefile build - fixed const-correctness of cblas_?geadd in cblas.h - fixed a potential inaccuracy in multithreaded BLAS3 calls - fixed empty implementations of get/set_affinity that print a warning in OpenMP builds - fixed function signatures for TRTRS in the converted C version of LAPACK - fixed omission of several single-precision LAPACK symbols in the shared library - improved build instructions for the provided "pybench" benchmarks - improved documentation, including added build instructions for WoA and HarmonyOS as well as descriptions of environment variables that affect build and runtime behavior - added a separate "make install_tests" target for use with cross-compilations - integrated improvements and corrections from Reference-LAPACK: - removed a comparison in LAPACKE ?tpmqrt that is always false (LAPACK PR 1062) - fixed the leading dimension for B in tests for GGEV (LAPACK PR 1064) - replaced the ?LARFT functions with a recursive implementation (LAPACK PR 1080) arm: - fixed build with recent versions of the NDK (missing .type declaration of symbols) arm64: - fixed a long-standing bug in the (generic) c/zgemm_beta kernel that could lead to reads and writes outside the array bounds in some circumstances - rewrote cpu autodetection to scan all cores and return the highest performing type - improved the DGEMM performance for SVE targets and small matrix sizes - improved dimension criteria for forwarding from GEMM to GEMV kernels - added SVE kernels for ROT and SWAP - improved SVE kernels for SGEMV and DGEMV on A64FX and NEOVERSEV1 - added support for using the "small matrix" kernels with CMake as well - fixed compilation on Windows on Arm - improved compile-time detection of SVE capability - added cpu autodetection and initial support for Apple M4 - added support for compilation on systems running IOS - added support for compilation on NetBSD ("evbarm" architecture) - fixed NRM2 implementations for generic SVE targets and the Neoverse N2 - fixed compilation for SVE-capable targets with the NVIDIA compiler x86_64: - fixed a wrong storage size in the SBGEMV kernel for Cooper Lake - added cpu autodetection for Intel Granite Rapids - added cpu autodetection for AMD Ryzen 5 series - added optimized SOMATCOPY_CT for AVX-capable targets - fixed the fallback implementation of GEMM3M in GENERIC builds - tentatively re-enabled builds with the EXPRECISION option - worked around a miscompilation of tests with mingw32-gfortran14 - added support for compilation with the Intel oneAPI 2025.0 compiler on Windows power: - fixed multithreaded SBGEMM - fixed a CMake build problem on POWER10 - improved the performance of SGEMV - added vectorized implementations of SBGEMV and support for forwarding 1xN SBGEMM to them - fixed illegal instructions and potential memory overflow in SGEMM on PPCG4 - fixed handling of NaN and Inf arguments in SSCAL and DSCAL on PPC440,G4 and 970 - added improved CGEMM and ZGEMM kernels for POWER10 - added Makefile logic to remove all optimization flags in DEBUG builds mips64: - fixed compilation with gcc14 - fixed GEMM parameter selection for the MIPS64_GENERIC target - fixed a potential build failure when compiling with OpenMP loongarch64: - fixed compilation for Loongson3 with recent versions of gmake - fixed a potential loss of precision in Loongson3A GEMM - fixed a potential build failure when compiling with OpenMP - added optimized SOMATCOPY for LASX-capable targets - introduced a new cpu naming scheme while retaining compatibility - added support for cross-compiling Loongarch64 targets with CMake - added support for compilation with LLVM riscv64: - removed thread yielding overhead caused by sched_yield - replaced some non-standard intrinsics with their official names - fixed and sped up the implementations of CGEMM/ZGEMM TCOPY for vector lenghts 128 and 256 - improved the performance of SNRM2/DNRM2 for RVV1.0 targets - added optimized ?OMATCOPY_CN kernels for RVV1.0 targets ==================================================================== Version 0.3.28 8-Aug-2024 general: - Reworked the unfinished implementation of HUGETLB from GotoBLAS for allocating huge memory pages as buffers on suitable systems - Changed the unfinished implementation of GEMM3M for the generic target on all architectures to at least forward to regular GEMM - Improved multithreaded GEMM performance for large non-skinny matrices - Improved BLAS3 performance on larger multicore systems through improved parallelism - Improved performance of the initial memory allocation by reducing locking overhead - Improved performance of GBMV at small problem sizes by introducing a size barrier for the switch to multithreading - Added an implementation of the CBLAS_GEMM_BATCH extension - Fixed miscompilation of CAXPYC and ZAXPYC on all architectures in CMAKE builds (error introduced in 0.3.27) - Fixed corner cases involving the handling of NAN and INFINITY arguments in ?SCAL on all architectures - Added support for cross-compiling to WEBM with CMAKE (in addition to the already present makefile support) - Fixed NAN handling and potential accuracy issues in compilations with Intel ICX by supplying a suitable fp-model option by default - The contents of the github project wiki have been converted into a new set of documentation included with the source code. - It is now possible to register a callback function that replaces the built-in support for multithreading with an external backend like TBB (openblas_set_threads_callback_function) - Fixed potential duplication of suffixes in shared library naming - Improved C compiler detection by the build system to tolerate more naming variants for gcc builds - Fixed an unnecessary dependency of the utest on CBLAS - Fixed spurious error reports from the BLAS extensions utest - Fixed unwanted invocation of the GEMM3M tests in cross-compilation - Fixed a flaw in the makefile build that could lead to the pkgconfig file containing an entry of UNKNOWN for the target cpu after installing - Integrated fixes from the Reference-LAPACK project: - Fixed uninitialized variables in the LAPACK tests for ?QP3RK (PR 961) - Fixed potential bounds error in ?UNHR_COL/?ORHR_COL (PR 1018) - Fixed potential infinite loop in the LAPACK testsuite (PR 1024) - Make the variable type used for hidden length arguments configurable (PR 1025) - Fixed SYTRD workspace computation and various typos (PR 1030) - Prevent compiler use of FMA that could increase numerical error in ?GEEVX (PR 1033) x86-64: - reverted thread management under Windows to its state before 0.3.26 due to signs of race conditions in some circumstances now under study - fixed accidental selection of the unoptimized generic SBGEMM kernel in CMAKE builds for CooperLake and SapphireRapids targets - fixed a potential thread buffer overrun in SBSTOBF16 on small systems - fixed an accuracy issue in ZSCAL introduced in 0.3.26 - fixed compilation with CMAKE and recent releases of LLVM - added support for Intel Emerald Rapids and Meteor Lake cpus - added autodetection support for the Zhaoxin KX-7000 cpu - fixed autodetection of Intel Prescott (probably broken since 0.3.19) - fixed compilation for older targets with the Yocto SDK - fixed compilation of the converter-generated C versions of the LAPACK sources with gcc-14 - improved compiler options when building with CMAKE and LLVM for AVX512-capable targets - added support for supplying the L2 cache size via an environment variable (OPENBLAS_L2_SIZE) in case it is not correctly reported (as in some VM configurations) - improved the error message shown when thread creation fails on startup - fixed setting the rpath entry of the dylib in CMAKE builds on MacOS arm: - fixed building for baremetal targets with make arm64: - Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1 matrix to the corresponding GEMV kernel - added optimized SGEMV and DGEMV kernels for A64FX - added optimized SVE kernels for small-matrix GEMM - added A64FX to the cpu list for DYNAMIC_ARCH - fixed building with support for cpu affinity - worked around accuracy problems with C/ZNRM2 on NeoverseN1 and Apple M targets - improved GEMM performance on Neoverse V1 - fixed compilation for NEOVERSEN2 with older compilers - fixed potential miscompilation of the SVE SDOT and DDOT kernels - fixed potential miscompilation of the non-SVE CDOT and ZDOT kernels - fixed a potential overflow when using very large user-defined BUFFERSIZE - fixed setting the rpath entry of the dylib in CMAKE builds on MacOS power: - Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1 matrix to the corresponding GEMV kernel - significantly improved performance of SBGEMM on POWER10 - fixed compilation with OpenMP and the XLF compiler - fixed building of the BLAS extension utests under AIX - fixed building of parts of the LAPACK testsuite with XLF - fixed CSWAP/ZSWAP on big-endian POWER10 targets - fixed a performance regression in SAXPY on POWER10 with OpenXL - fixed accuracy issues in CSCAL/ZSCAL when compiled with LLVM - fixed building for POWER9 under FreeBSD - fixed a potential overflow when using very large user-defined BUFFERSIZE - fixed an accuracy issue in the POWER6 kernels for GEMM and GEMV riscv64: - Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1 matrix to the corresponding GEMV kernel - fixed building for RISCV64_GENERIC with OpenMP enabled - added DYNAMIC_ARCH support (comprising GENERIC_RISCV64 and the two RVV 1.0 targets with vector length of 128 and 256) - worked around the ZVL128B kernels for AXPBY mishandling the special case of zero Y increment loongarch64: - improved GEMM performance on servers of the 3C5000 generation - improved performance and stability of DGEMM - improved GEMV and TRSM kernels for LSX and LASX vector ABIs - fixed CMAKE compilation with the INTERFACE64 option set - fixed compilation with CMAKE - worked around spurious errors flagged by the BLAS3 tests - worked around a miscompilation of the POTRS utest by gcc 14.1 mips64: - fixed ASUM and SUM kernels to accept negative step sizes in X - fixed complex GEMV kernels for MSA ==================================================================== Version 0.3.27 4-Apr-2024 general: - added initial (generic) support for the CSKY architecture - capped the maximum number of threads used in GEMM, GETRF and POTRF to avoid creating underutilized or idle threads - sped up multithreaded POTRF on all platforms - added extension openblas_set_num_threads_local() that returns the previous thread count - re-evaluated the SGEMV and DGEMV load thresholds to avoid activating multithreading for too small workloads - improved the fallback code used when the precompiled number of threads is exceeded, and made it callable multiple times during the lifetime of an instance - added CBLAS interfaces for the BLAS extensions ?AMIN,?AMAX, CAXPYC and ZAXPYC - fixed a potential buffer overflow in the interface to the GEMMT kernels - fixed use of incompatible pointer types in GEMMT and C/ZAXPBY as flagged by GCC-14 - fixed unwanted case sensitivity of the character parameters in ?TRTRS - sped up the OpenMP thread management code - fixed sizing of logical variables in INTERFACE64 builds of the C version of LAPACK - fixed inclusion of new LAPACK and LAPACKE functions from LAPACK 3.11 in the shared library - added a testsuite for the BLAS extensions - modified the error thresholds for SGS/DGS functions in the LAPACK testsuite to suppress spurious errors - added support for building the benchmark collection with CMAKE - added rewriting of linker options to avoid linking both libgomp and libomp in CMAKE builds with OpenMP enabled that use clang with gfortran - fixed building on systems with ucLibc - added support for calling ?NRM2 with a negative increment value on all architectures - added support for the LLVM18 version of the flang-new compiler - fixed handling of the OPENBLAS_LOOPS variable in several benchmarks - Integrated fixes from the Reference-LAPACK project: - Increased accuracy in C/ZLARFGP (Reference-LAPACK PR 981) x86: - fixed handling of NaN and Inf arguments in ZSCAL - fixed GEMM3M functions failing in CMAKE builds x86-64: - removed all instances of sched_yield() on Linux and BSD - fixed a potential deadlock in the thread server on MSWindows (introduced in 0.3.26) - fixed GEMM3M functions failing in CMAKE builds - fixed handling of NaN and Inf arguments in ZSCAL - added compiler checks for AVX512BF16 compatibility - fixed LLVM compiler options for Sapphire Rapids - fixed cpu handling fallbacks for Sapphire Rapids with disabled AVX2 in DYNAMIC_ARCH mode - fixed extensions SCSUM and DZSUM - improved GEMM performance for ZEN targets arm: - fixed handling of NaN and Inf arguments in ZSCAL arm64: - added initial support for the Cortex-A76 cpu - fixed handling of NaN and Inf arguments in ZSCAL - fixed default compiler options for gcc (-march and -mtune) - added support for ArmCompilerForLinux - added support for the NeoverseV2 cpu in DYNAMIC_ARCH builds - fixed mishandling of the INTERFACE64 option in CMAKE builds - corrected SCSUM kernels (erroneously duplicating SCASUM behaviour) - added SVE-enabled kernels for CSUM/ZSUM - worked around an inaccuracy in the NRM2 kernels for NeoverseN1 and Apple M power: - improved performance of SGEMM on POWER8/9/10 - improved performance of DGEMM on POWER10 - added support for OpenMP builds with xlc/xlf on AIX - improved cpu autodetection for DYNAMIC_ARCH builds on older AIX - fixed cpu core counting on AIX - added support for building a shared library on AIX riscv64: - added support for the X280 cpu - added support for semi-generic RISCV models with vector length 128 or 256 - added support for compiling with either RVV 0.7.1 or RVV 1.0 standard compilers - fixed handling of NaN and Inf arguments in ZSCAL - improved cpu model autodetection - fixed corner cases in ?AXPBY for C910V - fixed handling of zero increments in ?AXPY kernels for C910V loongarch64: - added optimized kernels for ?AMIN and ?AMAX - fixed handling of NaN and Inf arguments in ZSCAL - fixed handling of corner cases in ?AXPBY - fixed computation of SAMIN and DAMIN in LSX mode - fixed computation of ?ROT - added optimized SSYMV and DSYMV kernels for LSX and LASX mode - added optimized CGEMM and ZGEMM kernels for LSX and LASX mode - added optimized CGEMV and ZGEMV kernels mips: - fixed utilizing MSA on P5600 and related cpus (broken in 0.3.22) - fixed handling of NaN and Inf arguments in ZSCAL - fixed mishandling of the INTERFACE64 option in CMAKE builds zarch: - fixed handling of NaN and Inf arguments in ZSCAL - fixed calculation of ?SUM on Z13 @ text @$NetBSD$ Fix SONAME for FIXED_LIBNAME (adding major version suffix in Makefile.system). --- exports/Makefile.orig 2026-01-15 22:57:26.000000000 +0000 +++ exports/Makefile @@@@ -140,7 +140,7 @@@@ libgoto_hpl.def : $(GENSYM) ifeq ($(OSNAME), Darwin) ifeq ($(FIXED_LIBNAME),1) -INTERNALNAME = $(LIBPREFIX).dylib +INTERNALNAME = $(LIBDYNNAME) else INTERNALNAME = $(LIBPREFIX).$(MAJOR_VERSION).dylib endif @@@@ -181,7 +181,7 @@@@ FEXTRALIB += -lm EXTRALIB += -lm else ifeq ($(FIXED_LIBNAME),1) -INTERNALNAME = $(LIBPREFIX).so +INTERNALNAME = $(LIBSONAME) else INTERNALNAME = $(LIBPREFIX).so.$(MAJOR_VERSION) endif @