diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1-GCC-12.2.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1-GCC-12.2.0.eb index 9a77c6b3a775..80c8cc122032 100644 --- a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1-GCC-12.2.0.eb @@ -37,7 +37,12 @@ components = [ (name, version, { 'source_urls': ['https://github.com/mpimd-csc/flexiblas/releases/download/v%(version)s/'], 'sources': [SOURCELOWER_TAR_GZ], - 'checksums': ['5be7e508e2dbb751b3bf372639d8e82a11f79e9ef6cbf243b64981c24a5703cf'], + 'patches': ['FlexiBLAS-3.2.1_fix-zgbtrf-vectorizer-compilation.patch'], + 'checksums': [ + '5be7e508e2dbb751b3bf372639d8e82a11f79e9ef6cbf243b64981c24a5703cf', # flexiblas-3.2.1.tar.gz + '8814a134331fb7734c47bb5b9bb9f16d4294a379b41ab084640dcdabbf09c79c', + # FlexiBLAS-3.2.1_fix-zgbtrf-vectorizer-compilation.patch + ], 'backends': local_backends, }), ('LAPACK', '3.10.1', { diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1_fix-zgbtrf-vectorizer-compilation.patch b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1_fix-zgbtrf-vectorizer-compilation.patch new file mode 100644 index 000000000000..4ea929473c2e --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.2.1_fix-zgbtrf-vectorizer-compilation.patch @@ -0,0 +1,25 @@ +# make some work matrices allocatable to bypass errors generated by -ftree-vectorize with gcc 12.x on zen4/zen5 +# author: Bart Oldeman (Digital Research Alliance of Canada) +diff -ur flexiblas-3.2.1.orig/contributed/lapack-3.10.1/SRC/zgbtrf.f flexiblas-3.2.1/contributed/lapack-3.10.1/SRC/zgbtrf.f +--- flexiblas-3.2.1.orig/contributed/lapack-3.10.1/SRC/zgbtrf.f 2023-04-03 14:07:31.000000000 +0000 ++++ flexiblas-3.2.1/contributed/lapack-3.10.1/SRC/zgbtrf.f 2025-09-24 15:29:42.138091646 +0000 +@@ -169,8 +169,8 @@ + COMPLEX*16 TEMP + * .. + * .. Local Arrays .. +- COMPLEX*16 WORK13( LDWORK, NBMAX ), +- $ WORK31( LDWORK, NBMAX ) ++ COMPLEX*16, ALLOCATABLE :: WORK13( :, : ), ++ $ WORK31( :, : ) + * .. + * .. External Functions .. + INTEGER ILAENV, IZAMAX +@@ -232,6 +232,8 @@ + * + * Use blocked code + * ++ ALLOCATE(WORK13(LDWORK, NBMAX), WORK31(LDWORK, NBMAX)) ++* + * Zero the superdiagonal elements of the work array WORK13 + * + DO 20 J = 1, NB