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 - variant + variant linux_64_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 - variant + variant linux_64_SYMBOLSUFFIXUSE_OPENMP0name_suffix - variant + variant linux_64_SYMBOLSUFFIXUSE_OPENMP1name_suffix - variant + variant linux_aarch64_USE_OPENMP0 - variant + variant linux_aarch64_USE_OPENMP1 - variant + variant linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP0name_suffix-ilp64 - variant + variant linux_ppc64le_SYMBOLSUFFIX64_USE_OPENMP1name_suffix-ilp64 - variant + variant linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP0name_suffix - variant + variant linux_ppc64le_SYMBOLSUFFIXUSE_OPENMP1name_suffix - variant + variant osx_64_SYMBOLSUFFIX64_name_suffix-ilp64 - variant + variant osx_64_SYMBOLSUFFIXname_suffix - variant + variant osx_arm64_SYMBOLSUFFIX64_name_suffix-ilp64 - variant + variant osx_arm64_SYMBOLSUFFIXname_suffix - variant + variant win_64 - variant + variant 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 +