Skip to content

crmvec 0.12.1: packages for older distribution releases

Choose a tag to compare

@anun333 anun333 released this 08 Oct 23:36
· 10 commits to main since this release

crmvec's packages now build on the distribution releases still in long-term
use. The RPM spec builds with gcc-toolset-14 on RHEL 8 and 9 and with gcc13 on
openSUSE Leap 15, whose own compilers are too old. The packages build, pass
make check, install and run on AlmaLinux 8, 9 and 10, openSUSE Leap 15.6 and
16.0, Debian 13, Fedora 44 and Ubuntu 24.04.

Building now needs gcc 13 or newer on x86-64 (__bf16, for the bfloat16
functions; _Float16 needs 12). make checks this before compiling anything and
names the compiler to use on each older release. Debian 12 and Ubuntu 22.04
have no gcc 13 in their archives; conda-forge's crmvec runs there.

Fixed in the checks: on openSUSE, whose gcc builds non-PIE executables,
mpfrcheck stopped as VOID, because its guard took a library function's
address to find which libmvec.so.1 it had loaded; it now asks the dynamic
loader. With MPFR older than 4.2 (RHEL 8 and 9, Ubuntu 22.04, Leap 15)
f16check could not be built; it now builds without MPFR and compares a hash
of all its outputs with f16check-hash.txt, recorded from builds whose every
output matched MPFR. mpfrcheck and f16check link -ldl, for glibc before 2.34.

Unchanged: the libraries. libmvec.so.1, the fast mode's library and
libcrpreload.so built from 0.12.1 are byte-identical to 0.12.0's built
with the same compiler.

Checked before the tag: CI on x86-64 and arm64; the packages of AlmaLinux 8,
9 and 10, openSUSE Leap 15.6 and 16.0, Debian 13, Fedora 44 and Ubuntu
24.04, each built with make check, installed and run; Nix; the conda package
as conda-forge builds it; and make check and the preload's check (620,756,992
calls) natively on a Neoverse N1.