diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index f7fc29f..44f93bc 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -5,7 +5,7 @@
jobs:
- job: win
pool:
- vmImage: windows-2019
+ vmImage: windows-2022
strategy:
matrix:
win_64_:
@@ -15,6 +15,7 @@ jobs:
timeoutInMinutes: 360
variables:
CONDA_BLD_PATH: D:\\bld\\
+ UPLOAD_TEMP: D:\\tmp
steps:
- task: PythonScript@0
@@ -36,7 +37,7 @@ jobs:
- script: |
call activate base
- mamba.exe install 'python=3.9' conda-build conda pip boa 'conda-forge-ci-setup=3' -c conda-forge --strict-channel-priority --yes
+ mamba.exe install "python=3.10" conda-build conda pip boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes
displayName: Install conda-build
- script: set PYTHONUNBUFFERED=1
@@ -100,6 +101,9 @@ jobs:
- script: |
set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%"
set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%"
+ set "TEMP=$(UPLOAD_TEMP)"
+ if not exist "%TEMP%\" md "%TEMP%"
+ set "TMP=%TEMP%"
call activate base
upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml
displayName: Upload package
diff --git a/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml b/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
index fc53806..7ae404d 100644
--- a/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
+++ b/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos6
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- -ilp64
perl:
diff --git a/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml b/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
index f3d02ff..ffe2f9d 100644
--- a/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
+++ b/.ci_support/linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos6
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- -ilp64
perl:
diff --git a/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml b/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
index fa57d78..eae9927 100644
--- a/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
+++ b/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos6
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml b/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
index f548596..6e61cdb 100644
--- a/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
+++ b/.ci_support/linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos6
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/linux_aarch64_USE_OPENMP0.yaml b/.ci_support/linux_aarch64_USE_OPENMP0.yaml
index e249aae..a8a20fb 100644
--- a/.ci_support/linux_aarch64_USE_OPENMP0.yaml
+++ b/.ci_support/linux_aarch64_USE_OPENMP0.yaml
@@ -9,7 +9,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_arch:
- aarch64
cdt_name:
@@ -23,7 +23,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/linux_aarch64_USE_OPENMP1.yaml b/.ci_support/linux_aarch64_USE_OPENMP1.yaml
index 71d0a40..25381ec 100644
--- a/.ci_support/linux_aarch64_USE_OPENMP1.yaml
+++ b/.ci_support/linux_aarch64_USE_OPENMP1.yaml
@@ -9,7 +9,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_arch:
- aarch64
cdt_name:
@@ -23,7 +23,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml b/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
index 7fbae98..1e402f0 100644
--- a/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
+++ b/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos7
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- -ilp64
perl:
diff --git a/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml b/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
index e044393..3f0df6a 100644
--- a/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
+++ b/.ci_support/linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos7
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- -ilp64
perl:
diff --git a/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml b/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
index 5dd6b5f..c8df516 100644
--- a/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
+++ b/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos7
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml b/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
index 4dc2ef9..8ca2562 100644
--- a/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
+++ b/.ci_support/linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix.yaml
@@ -7,7 +7,7 @@ USE_OPENMP:
c_compiler:
- gcc
c_compiler_version:
-- '10'
+- '11'
cdt_name:
- cos7
channel_sources:
@@ -19,7 +19,7 @@ docker_image:
fortran_compiler:
- gfortran
fortran_compiler_version:
-- '10'
+- '11'
name_suffix:
- ''
perl:
diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml
index df781bb..3630b08 100644
--- a/.ci_support/win_64_.yaml
+++ b/.ci_support/win_64_.yaml
@@ -20,9 +20,6 @@ name_suffix:
- ''
perl:
- 5.32.1
-pin_run_as_build:
- curl:
- max_pin: x
target_platform:
- win-64
zip_keys:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 3e61aa2..8b4ef2f 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,6 +1,6 @@
# This file was generated automatically from conda-smithy. To update this configuration,
# update the conda-forge.yml and/or the recipe/meta.yaml.
-# -*- mode: yaml -*-
+# -*- mode: jinja-yaml -*-
version: 2
diff --git a/.scripts/create_conda_build_artifacts.bat b/.scripts/create_conda_build_artifacts.bat
index 79ce625..2853cfd 100755
--- a/.scripts/create_conda_build_artifacts.bat
+++ b/.scripts/create_conda_build_artifacts.bat
@@ -54,8 +54,8 @@ if defined BLD_ARTIFACT_PREFIX (
echo ##vso[task.setVariable variable=BLD_ARTIFACT_PATH]!BLD_ARTIFACT_PATH!
)
if "%CI%" == "github_actions" (
- echo ::set-output name=BLD_ARTIFACT_NAME::!BLD_ARTIFACT_NAME!
- echo ::set-output name=BLD_ARTIFACT_PATH::!BLD_ARTIFACT_PATH!
+ echo BLD_ARTIFACT_NAME=!BLD_ARTIFACT_NAME!>> !GITHUB_OUTPUT!
+ echo BLD_ARTIFACT_PATH=!BLD_ARTIFACT_PATH!>> !GITHUB_OUTPUT!
)
)
@@ -74,7 +74,7 @@ if defined ENV_ARTIFACT_PREFIX (
echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH!
)
if "%CI%" == "github_actions" (
- echo ::set-output name=ENV_ARTIFACT_NAME::!ENV_ARTIFACT_NAME!
- echo ::set-output name=ENV_ARTIFACT_PATH::!ENV_ARTIFACT_PATH!
+ echo ENV_ARTIFACT_NAME=!ENV_ARTIFACT_NAME!>> !GITHUB_OUTPUT!
+ echo ENV_ARTIFACT_PATH=!ENV_ARTIFACT_PATH!>> !GITHUB_OUTPUT!
)
)
\ No newline at end of file
diff --git a/.scripts/create_conda_build_artifacts.sh b/.scripts/create_conda_build_artifacts.sh
index cba0fae..17ec086 100755
--- a/.scripts/create_conda_build_artifacts.sh
+++ b/.scripts/create_conda_build_artifacts.sh
@@ -79,8 +79,8 @@ if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then
echo "##vso[task.setVariable variable=BLD_ARTIFACT_NAME]$BLD_ARTIFACT_NAME"
echo "##vso[task.setVariable variable=BLD_ARTIFACT_PATH]$BLD_ARTIFACT_PATH"
elif [[ "$CI" == "github_actions" ]]; then
- echo "::set-output name=BLD_ARTIFACT_NAME::$BLD_ARTIFACT_NAME"
- echo "::set-output name=BLD_ARTIFACT_PATH::$BLD_ARTIFACT_PATH"
+ echo "BLD_ARTIFACT_NAME=$BLD_ARTIFACT_NAME" >> $GITHUB_OUTPUT
+ echo "BLD_ARTIFACT_PATH=$BLD_ARTIFACT_PATH" >> $GITHUB_OUTPUT
fi
fi
@@ -107,7 +107,7 @@ if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then
echo "##vso[task.setVariable variable=ENV_ARTIFACT_NAME]$ENV_ARTIFACT_NAME"
echo "##vso[task.setVariable variable=ENV_ARTIFACT_PATH]$ENV_ARTIFACT_PATH"
elif [[ "$CI" == "github_actions" ]]; then
- echo "::set-output name=ENV_ARTIFACT_NAME::$ENV_ARTIFACT_NAME"
- echo "::set-output name=ENV_ARTIFACT_PATH::$ENV_ARTIFACT_PATH"
+ echo "ENV_ARTIFACT_NAME=$ENV_ARTIFACT_NAME" >> $GITHUB_OUTPUT
+ echo "ENV_ARTIFACT_PATH=$ENV_ARTIFACT_PATH" >> $GITHUB_OUTPUT
fi
fi
\ No newline at end of file
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index 736a39a..bb00584 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -23,7 +23,6 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME}
source ${MINIFORGE_HOME}/etc/profile.d/conda.sh
conda activate base
-echo -e "\n\nInstalling ['conda-forge-ci-setup=3'] and conda-build."
mamba install --update-specs --quiet --yes --channel conda-forge \
conda-build pip boa conda-forge-ci-setup=3
mamba update --update-specs --yes --quiet --channel conda-forge \
diff --git a/README.md b/README.md
index 0dcbbaf..43f4f57 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,30 @@
+About openblas-feedstock
+========================
+
+Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/openblas-feedstock/blob/main/LICENSE.txt)
+
About openblas
-==============
+--------------
Home: http://www.openblas.net/
Package license: BSD-3-Clause
-Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/openblas-feedstock/blob/main/LICENSE.txt)
+Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version
+About libopenblas-ilp64
+-----------------------
+
+Home: http://www.openblas.net/
+
+Package license: BSD-3-Clause
+
+Summary: An optimized BLAS library (ILP64 interface) based on GotoBLAS2 1.13 BSD version
+About openblas-ilp64
+--------------------
+
+Home: http://www.openblas.net/
+
+Package license: BSD-3-Clause
Summary: An optimized BLAS library (ILP64 interface) based on GotoBLAS2 1.13 BSD version
@@ -37,105 +56,105 @@ Current build status
linux_64_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64 |
-
+
|
linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 |
-
+
|
linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix |
-
+
|
linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix |
-
+
|
linux_aarch64_USE_OPENMP0 |
-
+
|
linux_aarch64_USE_OPENMP1 |
-
+
|
linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64 |
-
+
|
linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 |
-
+
|
linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix |
-
+
|
linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix |
-
+
|
osx_64_SYMBOLSUFFIX64_name_suffix-ilp64 |
-
+
|
osx_64_SYMBOLSUFFIXname_suffix |
-
+
|
osx_arm64_SYMBOLSUFFIX64_name_suffix-ilp64 |
-
+
|
osx_arm64_SYMBOLSUFFIXname_suffix |
-
+
|
win_64 |
-
+
|
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 5099d13..74e6a9f 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
-{% set version = "0.3.21" %}
-{% set build_number = 3 %}
+{% set version = "0.3.22" %}
+{% set build_number = 0 %}
package:
name: openblas
@@ -7,13 +7,13 @@ package:
source:
url: https://github.com/xianyi/OpenBLAS/archive/v{{ version }}.tar.gz
- sha256: f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca
+ sha256: 7fa9685926ba4f27cfe513adbf9af64d6b6b63f9dcabb37baefad6a65ff347a7
patches:
- # backport xianyi/OpenBLAS#3718 to fix tests on PPC + INTERFACE64 (2 commits)
- - patches/0001-Use-blasint-for-INTERFACE64-compatibility.patch
- - patches/0002-remove-spurious-loops.patch
- # backport xianyi/OpenBLAS#3721 to fix linkage errors on OSX
- - patches/0003-Fix-building-tests-when-NOFORTRAN-is-not-given-at-al.patch
+ # build fixes backported from xianyi/OpenBLAS#3972 & #3975 & #3978 & #3980
+ - patches/0001-remove-unqualified-ifdef-s-for-NO_LAPACK-E.patch
+ - patches/0002-Fix-build-failures-seen-with-the-NO_LAPACK-option-cs.patch
+ - patches/0003-fix-conditional.patch
+ - patches/0004-Split-test-condition-in-LU-computation-non-denormal-.patch
build:
number: {{ build_number }}
@@ -103,6 +103,7 @@ about:
- lapack-netlib/LICENSE
summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version # [SYMBOLSUFFIX != "64_"]
summary: An optimized BLAS library (ILP64 interface) based on GotoBLAS2 1.13 BSD version # [SYMBOLSUFFIX == "64_"]
+ dev_url: https://github.com/xianyi/openblas
extra:
recipe-maintainers:
diff --git a/recipe/patches/0001-Use-blasint-for-INTERFACE64-compatibility.patch b/recipe/patches/0001-Use-blasint-for-INTERFACE64-compatibility.patch
deleted file mode 100644
index 4e77564..0000000
--- a/recipe/patches/0001-Use-blasint-for-INTERFACE64-compatibility.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 121b52eac98c1b0b4b3f0dd481d993730f2118a3 Mon Sep 17 00:00:00 2001
-From: Martin Kroeker
-Date: Mon, 8 Aug 2022 14:52:10 +0200
-Subject: [PATCH 1/3] Use blasint for INTERFACE64 compatibility
-
----
- test/compare_sgemm_sbgemm.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/compare_sgemm_sbgemm.c b/test/compare_sgemm_sbgemm.c
-index a2c358cf..d4b59145 100644
---- a/test/compare_sgemm_sbgemm.c
-+++ b/test/compare_sgemm_sbgemm.c
-@@ -76,9 +76,9 @@ float16to32 (bfloat16_bits f16)
- int
- main (int argc, char *argv[])
- {
-- int m, n, k;
-+ blasint m, n, k;
- int i, j, l;
-- int x;
-+ blasint x;
- int ret = 0;
- int loop = 100;
- char transA = 'N', transB = 'N';
---
-2.37.0.windows.1
-
diff --git a/recipe/patches/0001-remove-unqualified-ifdef-s-for-NO_LAPACK-E.patch b/recipe/patches/0001-remove-unqualified-ifdef-s-for-NO_LAPACK-E.patch
new file mode 100644
index 0000000..e1871ee
--- /dev/null
+++ b/recipe/patches/0001-remove-unqualified-ifdef-s-for-NO_LAPACK-E.patch
@@ -0,0 +1,89 @@
+From d1e70ff534b9335c7b1e3474e3dc89ab1dd0fa58 Mon Sep 17 00:00:00 2001
+From: "H. Vetinari"
+Date: Tue, 28 Mar 2023 18:51:30 +1100
+Subject: [PATCH 1/4] remove unqualified ifdef's for NO_LAPACK(E)
+
+---
+ Makefile.install | 4 ++--
+ driver/level2/Makefile | 2 +-
+ interface/Makefile | 8 ++++----
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.install b/Makefile.install
+index 87b5bc87..01899b97 100644
+--- a/Makefile.install
++++ b/Makefile.install
+@@ -77,7 +77,7 @@ endif
+ endif
+
+ ifneq ($(OSNAME), AIX)
+-ifndef NO_LAPACKE
++ifneq ($(NO_LAPACKE), 1)
+ @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
+ @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h"
+ @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h"
+@@ -127,7 +127,7 @@ endif
+
+ else
+ #install on AIX has different options syntax
+-ifndef NO_LAPACKE
++ifneq ($(NO_LAPACKE), 1)
+ @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
+ @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h"
+ @-installbsd -c -m 644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h"
+diff --git a/driver/level2/Makefile b/driver/level2/Makefile
+index 9bef6e2a..5f8c712a 100644
+--- a/driver/level2/Makefile
++++ b/driver/level2/Makefile
+@@ -92,7 +92,7 @@ CBLASOBJS += \
+ ctrsv_RUU.$(SUFFIX) ctrsv_RUN.$(SUFFIX) ctrsv_RLU.$(SUFFIX) ctrsv_RLN.$(SUFFIX) \
+ ctrsv_CUU.$(SUFFIX) ctrsv_CUN.$(SUFFIX) ctrsv_CLU.$(SUFFIX) ctrsv_CLN.$(SUFFIX)
+
+-ifndef NO_LAPACK
++ifneq ($(NO_LAPACK), 1)
+ CBLASOBJS += \
+ cspmv_U.$(SUFFIX) cspmv_L.$(SUFFIX) \
+ cspr_U.$(SUFFIX) cspr_L.$(SUFFIX) \
+diff --git a/interface/Makefile b/interface/Makefile
+index 3db4b2b6..b6c581a9 100644
+--- a/interface/Makefile
++++ b/interface/Makefile
+@@ -1021,7 +1021,7 @@ dsymv.$(SUFFIX) dsymv.$(PSUFFIX) : symv.c
+ qsymv.$(SUFFIX) qsymv.$(PSUFFIX) : symv.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+-ifndef NO_LAPACK
++ifneq ($(NO_LAPACK), 1)
+ csymv.$(SUFFIX) csymv.$(PSUFFIX) : zsymv.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+@@ -1041,7 +1041,7 @@ dsyr.$(SUFFIX) dsyr.$(PSUFFIX) : syr.c
+ qsyr.$(SUFFIX) qsyr.$(PSUFFIX) : syr.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+-ifndef NO_LAPACK
++ifneq ($(NO_LAPACK), 1)
+ csyr.$(SUFFIX) csyr.$(PSUFFIX) : zsyr.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+@@ -1115,7 +1115,7 @@ dspmv.$(SUFFIX) dspmv.$(PSUFFIX) : spmv.c
+ qspmv.$(SUFFIX) qspmv.$(PSUFFIX) : spmv.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+-ifndef NO_LAPACK
++ifneq ($(NO_LAPACK), 1)
+ cspmv.$(SUFFIX) cspmv.$(PSUFFIX) : zspmv.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+@@ -1135,7 +1135,7 @@ dspr.$(SUFFIX) dspr.$(PSUFFIX) : spr.c
+ qspr.$(SUFFIX) qspr.$(PSUFFIX) : spr.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+-ifndef NO_LAPACK
++ifneq ($(NO_LAPACK), 1)
+ cspr.$(SUFFIX) cspr.$(PSUFFIX) : zspr.c
+ $(CC) -c $(CFLAGS) $< -o $(@F)
+
+--
+2.38.1.windows.1
+
diff --git a/recipe/patches/0002-Fix-build-failures-seen-with-the-NO_LAPACK-option-cs.patch b/recipe/patches/0002-Fix-build-failures-seen-with-the-NO_LAPACK-option-cs.patch
new file mode 100644
index 0000000..a6e739d
--- /dev/null
+++ b/recipe/patches/0002-Fix-build-failures-seen-with-the-NO_LAPACK-option-cs.patch
@@ -0,0 +1,62 @@
+From 5f961c243d4697c424b4e8fd4bf9dd12f64137bb Mon Sep 17 00:00:00 2001
+From: Martin Kroeker
+Date: Tue, 28 Mar 2023 16:33:09 +0200
+Subject: [PATCH 2/4] Fix build failures seen with the NO_LAPACK option -
+ cspr/csymv/csyr belong on the LAPACK list
+
+---
+ interface/Makefile | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/interface/Makefile b/interface/Makefile
+index b6c581a9..2ac9663d 100644
+--- a/interface/Makefile
++++ b/interface/Makefile
+@@ -92,9 +92,8 @@ CBLAS2OBJS = \
+ cgemv.$(SUFFIX) cgeru.$(SUFFIX) cgerc.$(SUFFIX) \
+ ctrsv.$(SUFFIX) ctrmv.$(SUFFIX) \
+ csyr2.$(SUFFIX) cgbmv.$(SUFFIX) \
+- csbmv.$(SUFFIX) cspmv.$(SUFFIX) \
+- cspr.$(SUFFIX) cspr2.$(SUFFIX) \
+- csymv.$(SUFFIX) csyr.$(SUFFIX) \
++ csbmv.$(SUFFIX) \
++ cspr2.$(SUFFIX) \
+ ctbsv.$(SUFFIX) ctbmv.$(SUFFIX) \
+ ctpsv.$(SUFFIX) ctpmv.$(SUFFIX) \
+ chemv.$(SUFFIX) chbmv.$(SUFFIX) \
+@@ -122,9 +121,8 @@ ZBLAS2OBJS = \
+ zgemv.$(SUFFIX) zgeru.$(SUFFIX) zgerc.$(SUFFIX) \
+ ztrsv.$(SUFFIX) ztrmv.$(SUFFIX) \
+ zsyr2.$(SUFFIX) zgbmv.$(SUFFIX) \
+- zsbmv.$(SUFFIX) zspmv.$(SUFFIX) \
+- zspr.$(SUFFIX) zspr2.$(SUFFIX) \
+- zsymv.$(SUFFIX) zsyr.$(SUFFIX) \
++ zsbmv.$(SUFFIX) \
++ zspr2.$(SUFFIX) \
+ ztbsv.$(SUFFIX) ztbmv.$(SUFFIX) \
+ ztpsv.$(SUFFIX) ztpmv.$(SUFFIX) \
+ zhemv.$(SUFFIX) zhbmv.$(SUFFIX) \
+@@ -447,7 +445,8 @@ QLAPACKOBJS = \
+ CLAPACKOBJS = \
+ cgetrf.$(SUFFIX) cgetrs.$(SUFFIX) cpotrf.$(SUFFIX) cgetf2.$(SUFFIX) \
+ cpotf2.$(SUFFIX) claswp.$(SUFFIX) cgesv.$(SUFFIX) clauu2.$(SUFFIX) \
+- clauum.$(SUFFIX) ctrti2.$(SUFFIX) ctrtri.$(SUFFIX) ctrtrs.$(SUFFIX)
++ clauum.$(SUFFIX) ctrti2.$(SUFFIX) ctrtri.$(SUFFIX) ctrtrs.$(SUFFIX) \
++ cspr.$(SUFFIX) cspmv.$(SUFFIX) csymv.$(SUFFIX) csyr.$(SUFFIX)
+
+ #ZLAPACKOBJS = \
+ # zgetrf.$(SUFFIX) zgetrs.$(SUFFIX) zpotrf.$(SUFFIX) zgetf2.$(SUFFIX) \
+@@ -458,8 +457,8 @@ CLAPACKOBJS = \
+ ZLAPACKOBJS = \
+ zgetrf.$(SUFFIX) zgetrs.$(SUFFIX) zpotrf.$(SUFFIX) zgetf2.$(SUFFIX) \
+ zpotf2.$(SUFFIX) zlaswp.$(SUFFIX) zgesv.$(SUFFIX) zlauu2.$(SUFFIX) \
+- zlauum.$(SUFFIX) ztrti2.$(SUFFIX) ztrtri.$(SUFFIX) ztrtrs.$(SUFFIX)
+-
++ zlauum.$(SUFFIX) ztrti2.$(SUFFIX) ztrtri.$(SUFFIX) ztrtrs.$(SUFFIX) \
++ zspr.$(SUFFIX) zspmv.$(SUFFIX) zsymv.$(SUFFIX) zsyr.$(SUFFIX)
+
+ XLAPACKOBJS = \
+ xgetf2.$(SUFFIX) xgetrf.$(SUFFIX) xlauu2.$(SUFFIX) xlauum.$(SUFFIX) \
+--
+2.38.1.windows.1
+
diff --git a/recipe/patches/0002-remove-spurious-loops.patch b/recipe/patches/0002-remove-spurious-loops.patch
deleted file mode 100644
index 3fa29b4..0000000
--- a/recipe/patches/0002-remove-spurious-loops.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 92a06a5eac2bebbc6070c763d2f968d40c8eed13 Mon Sep 17 00:00:00 2001
-From: Martin Kroeker
-Date: Mon, 8 Aug 2022 17:09:45 +0200
-Subject: [PATCH 2/3] remove spurious loops
-
----
- test/compare_sgemm_sbgemm.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/test/compare_sgemm_sbgemm.c b/test/compare_sgemm_sbgemm.c
-index d4b59145..276fecae 100644
---- a/test/compare_sgemm_sbgemm.c
-+++ b/test/compare_sgemm_sbgemm.c
-@@ -112,7 +112,6 @@ main (int argc, char *argv[])
- &m, BB, &k, &beta, CC, &m);
- for (i = 0; i < n; i++)
- for (j = 0; j < m; j++)
-- for (l = 0; l < k; l++)
- if (fabs (CC[i * m + j] - C[i * m + j]) > 1.0)
- ret++;
- if (transA == 'N' && transB == 'N')
-@@ -126,7 +125,6 @@ main (int argc, char *argv[])
- }
- for (i = 0; i < n; i++)
- for (j = 0; j < m; j++)
-- for (l = 0; l < k; l++)
- if (CC[i * m + j] != DD[i * m + j])
- ret++;
- }
---
-2.37.0.windows.1
-
diff --git a/recipe/patches/0003-Fix-building-tests-when-NOFORTRAN-is-not-given-at-al.patch b/recipe/patches/0003-Fix-building-tests-when-NOFORTRAN-is-not-given-at-al.patch
deleted file mode 100644
index 10cf711..0000000
--- a/recipe/patches/0003-Fix-building-tests-when-NOFORTRAN-is-not-given-at-al.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6c7660abc83526b3496d11204cb5aa98d69621ad Mon Sep 17 00:00:00 2001
-From: Isuru Fernando
-Date: Mon, 8 Aug 2022 11:20:38 -0500
-Subject: [PATCH 3/3] Fix building tests when NOFORTRAN is not given at all
-
----
- ctest/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ctest/Makefile b/ctest/Makefile
-index 236913c3..0fb2450d 100644
---- a/ctest/Makefile
-+++ b/ctest/Makefile
-@@ -237,7 +237,7 @@ endif
-
- ifeq ($(BUILD_DOUBLE),1)
- # Double real
--ifeq ($(NOFORTRAN),0)
-+ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
- xdcblat1: $(dtestl1o) c_dblat1.o $(TOPDIR)/$(LIBNAME)
- $(FC) $(FLDFLAGS) -o xdcblat1 c_dblat1.o $(dtestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
- xdcblat2: $(dtestl2o) c_dblat2.o $(TOPDIR)/$(LIBNAME)
-@@ -256,7 +256,7 @@ endif
-
- ifeq ($(BUILD_COMPLEX),1)
- # Single complex
--ifeq ($(NOFORTRAN),0)
-+ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
- xccblat1: $(ctestl1o) c_cblat1.o $(TOPDIR)/$(LIBNAME)
- $(FC) $(FLDFLAGS) -o xccblat1 c_cblat1.o $(ctestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
- xccblat2: $(ctestl2o) c_cblat2.o $(TOPDIR)/$(LIBNAME)
-@@ -278,7 +278,7 @@ endif
-
- ifeq ($(BUILD_COMPLEX16),1)
- # Double complex
--ifeq ($(NOFORTRAN),0)
-+ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
- xzcblat1: $(ztestl1o) c_zblat1.o $(TOPDIR)/$(LIBNAME)
- $(FC) $(FLDFLAGS) -o xzcblat1 c_zblat1.o $(ztestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
- xzcblat2: $(ztestl2o) c_zblat2.o $(TOPDIR)/$(LIBNAME)
---
-2.37.0.windows.1
-
diff --git a/recipe/patches/0003-fix-conditional.patch b/recipe/patches/0003-fix-conditional.patch
new file mode 100644
index 0000000..b1e4c86
--- /dev/null
+++ b/recipe/patches/0003-fix-conditional.patch
@@ -0,0 +1,25 @@
+From 69f214edc4a9ea4d1c402021e59559be00ede1b7 Mon Sep 17 00:00:00 2001
+From: Martin Kroeker
+Date: Wed, 29 Mar 2023 09:44:33 +0200
+Subject: [PATCH 3/4] fix conditional
+
+---
+ lapack/getf2/zgetf2_k.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lapack/getf2/zgetf2_k.c b/lapack/getf2/zgetf2_k.c
+index f3412f52..dbc78abc 100644
+--- a/lapack/getf2/zgetf2_k.c
++++ b/lapack/getf2/zgetf2_k.c
+@@ -107,7 +107,7 @@ blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa,
+ temp2 = *(b + jp * 2 + 1);
+
+ // if ((temp1 != ZERO) || (temp2 != ZERO)) {
+- if ((fabs(temp1) >= DBL_MIN) && (fabs(temp2) >= DBL_MIN)) {
++ if ((fabs(temp1) >= DBL_MIN) || (fabs(temp2) >= DBL_MIN)) {
+
+ if (jp != j) {
+ SWAP_K(j + 1, 0, 0, ZERO, ZERO, a + j * 2, lda,
+--
+2.38.1.windows.1
+
diff --git a/recipe/patches/0004-Split-test-condition-in-LU-computation-non-denormal-.patch b/recipe/patches/0004-Split-test-condition-in-LU-computation-non-denormal-.patch
new file mode 100644
index 0000000..feb1caf
--- /dev/null
+++ b/recipe/patches/0004-Split-test-condition-in-LU-computation-non-denormal-.patch
@@ -0,0 +1,110 @@
+From 4f44a06b91c1f0ac2e2942f92e2898db364619cd Mon Sep 17 00:00:00 2001
+From: Martin Kroeker
+Date: Wed, 29 Mar 2023 22:14:21 +0200
+Subject: [PATCH 4/4] Split test condition in LU computation - non-denormal for
+ computation, exact zero for reporting singularity
+
+---
+ lapack/getf2/getf2_k.c | 23 ++++++++++++--------
+ lapack/getf2/zgetf2_k.c | 48 ++++++++++++++++++++++-------------------
+ 2 files changed, 40 insertions(+), 31 deletions(-)
+
+diff --git a/lapack/getf2/getf2_k.c b/lapack/getf2/getf2_k.c
+index d29ed588..80c66dd7 100644
+--- a/lapack/getf2/getf2_k.c
++++ b/lapack/getf2/getf2_k.c
+@@ -100,16 +100,21 @@ blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa,
+ jp--;
+ temp1 = *(b + jp);
+
+- //if (temp1 != ZERO) {
++ if (temp1 != ZERO) {
++#if defined(DOUBLE)
+ if (fabs(temp1) >= DBL_MIN ) {
+- temp1 = dp1 / temp1;
+-
+- if (jp != j) {
+- SWAP_K(j + 1, 0, 0, ZERO, a + j, lda, a + jp, lda, NULL, 0);
+- }
+- if (j + 1 < m) {
+- SCAL_K(m - j - 1, 0, 0, temp1, b + j + 1, 1, NULL, 0, NULL, 0);
+- }
++#else
++ if (fabs(temp1) >= FLT_MIN ) {
++#endif
++ temp1 = dp1 / temp1;
++
++ if (jp != j) {
++ SWAP_K(j + 1, 0, 0, ZERO, a + j, lda, a + jp, lda, NULL, 0);
++ }
++ if (j + 1 < m) {
++ SCAL_K(m - j - 1, 0, 0, temp1, b + j + 1, 1, NULL, 0, NULL, 0);
++ }
++ }
+ } else {
+ if (!info) info = j + 1;
+ }
+diff --git a/lapack/getf2/zgetf2_k.c b/lapack/getf2/zgetf2_k.c
+index dbc78abc..e3d53c96 100644
+--- a/lapack/getf2/zgetf2_k.c
++++ b/lapack/getf2/zgetf2_k.c
+@@ -106,30 +106,34 @@ blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa,
+ temp1 = *(b + jp * 2 + 0);
+ temp2 = *(b + jp * 2 + 1);
+
+- // if ((temp1 != ZERO) || (temp2 != ZERO)) {
++ if ((temp1 != ZERO) || (temp2 != ZERO)) {
++#if defined(DOUBLE)
+ if ((fabs(temp1) >= DBL_MIN) || (fabs(temp2) >= DBL_MIN)) {
+-
+- if (jp != j) {
+- SWAP_K(j + 1, 0, 0, ZERO, ZERO, a + j * 2, lda,
++#else
++ if ((fabs(temp1) >= FLT_MIN) || (fabs(temp2) >= FLT_MIN)) {
++#endif
++ if (jp != j) {
++ SWAP_K(j + 1, 0, 0, ZERO, ZERO, a + j * 2, lda,
+ a + jp * 2, lda, NULL, 0);
+- }
+-
+- if (fabs(temp1) >= fabs(temp2)){
+- ratio = temp2 / temp1;
+- den = dp1 /(temp1 * ( 1 + ratio * ratio));
+- temp3 = den;
+- temp4 = -ratio * den;
+- } else {
+- ratio = temp1 / temp2;
+- den = dp1 /(temp2 * ( 1 + ratio * ratio));
+- temp3 = ratio * den;
+- temp4 = -den;
+- }
+-
+- if (j + 1 < m) {
+- SCAL_K(m - j - 1, 0, 0, temp3, temp4,
+- b + (j + 1) * 2, 1, NULL, 0, NULL, 0);
+- }
++ }
++
++ if (fabs(temp1) >= fabs(temp2)){
++ ratio = temp2 / temp1;
++ den = dp1 /(temp1 * ( 1 + ratio * ratio));
++ temp3 = den;
++ temp4 = -ratio * den;
++ } else {
++ ratio = temp1 / temp2;
++ den = dp1 /(temp2 * ( 1 + ratio * ratio));
++ temp3 = ratio * den;
++ temp4 = -den;
++ }
++
++ if (j + 1 < m) {
++ SCAL_K(m - j - 1, 0, 0, temp3, temp4,
++ b + (j + 1) * 2, 1, NULL, 0, NULL, 0);
++ }
++ }
+ } else {
+ if (!info) info = j + 1;
+ }
+--
+2.38.1.windows.1
+