diff --git a/.gitignore b/.gitignore index 2dc2657..053dcbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/openblas-0.3.15.tar.gz +SOURCES/openblas-0.3.21.tar.gz diff --git a/.openblas.metadata b/.openblas.metadata index ae33cd3..c675ec3 100644 --- a/.openblas.metadata +++ b/.openblas.metadata @@ -1 +1 @@ -d7d1f67c1ef0c14c93761bdf44f0da8d0dd4bc0f SOURCES/openblas-0.3.15.tar.gz +b052d196ad694b29302e074b3eb8cc66745f6e2f SOURCES/openblas-0.3.21.tar.gz diff --git a/SOURCES/openblas-0.2.5-libname.patch b/SOURCES/openblas-0.2.5-libname.patch index f59d61e..e30ab8b 100644 --- a/SOURCES/openblas-0.2.5-libname.patch +++ b/SOURCES/openblas-0.2.5-libname.patch @@ -1,8 +1,7 @@ -diff --git a/Makefile.system b/Makefile.system -index ae703e4d..80739dc4 100644 ---- a/Makefile.system -+++ b/Makefile.system -@@ -1515,16 +1515,16 @@ ifndef SMP +diff -up OpenBLAS-0.2.5/Makefile.system.orig OpenBLAS-0.2.5/Makefile.system +--- OpenBLAS-0.2.5/Makefile.system.orig 2012-11-27 01:24:53.000000000 +0200 ++++ OpenBLAS-0.2.5/Makefile.system 2012-12-24 16:13:57.316689688 +0200 +@@ -758,16 +758,16 @@ ifndef SMP LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX) LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX) else diff --git a/SOURCES/openblas-0.3.11-tests.patch b/SOURCES/openblas-0.3.11-tests.patch index 2c49d09..abbdf45 100644 --- a/SOURCES/openblas-0.3.11-tests.patch +++ b/SOURCES/openblas-0.3.11-tests.patch @@ -1,44 +1,26 @@ -diff --git a/Makefile b/Makefile -index 555d1c46..7dc74273 100644 ---- a/Makefile -+++ b/Makefile -@@ -144,13 +144,13 @@ tests : +diff -up OpenBLAS-0.3.21/Makefile.fixtests OpenBLAS-0.3.21/Makefile +--- OpenBLAS-0.3.21/Makefile.fixtests 2022-08-26 07:37:06.257272957 +0200 ++++ OpenBLAS-0.3.21/Makefile 2022-08-26 07:37:53.168414307 +0200 +@@ -147,18 +147,18 @@ tests : ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN))) touch $(LIBNAME) ifndef NO_FBLAS - $(MAKE) -C test all + $(MAKE) -C test FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all endif + endif + ifneq ($(ONLY_CBLAS), 1) - $(MAKE) -C utest all + $(MAKE) -C utest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all + endif ifneq ($(NO_CBLAS), 1) + ifneq ($(ONLY_CBLAS), 1) - $(MAKE) -C ctest all + $(MAKE) -C ctest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all + endif ifeq ($(CPP_THREAD_SAFETY_TEST), 1) - $(MAKE) -C cpp_thread_test all + $(MAKE) -C cpp_thread_test FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all endif endif - endif -diff --git a/cpp_thread_test/Makefile b/cpp_thread_test/Makefile -index 81e3470e..d541b70d 100644 ---- a/cpp_thread_test/Makefile -+++ b/cpp_thread_test/Makefile -@@ -1,13 +1,14 @@ --include ../Makefile.rule -+TOPDIR = .. -+include $(TOPDIR)/Makefile.system - - all :: dgemv_tester dgemm_tester - - dgemv_tester : -- $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemv_thread_safety.cpp ../libopenblas.a -lpthread -o dgemv_tester -+ $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemv_thread_safety.cpp ../$(LIBNAME) -lpthread -o dgemv_tester - ./dgemv_tester - - dgemm_tester : dgemv_tester -- $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../libopenblas.a -lpthread -o dgemm_tester -+ $(CXX) $(COMMON_OPT) -Wall -Wextra -Wshadow -fopenmp -std=c++11 dgemm_thread_safety.cpp ../$(LIBNAME) -lpthread -o dgemm_tester - ./dgemm_tester - clean :: diff --git a/SOURCES/openblas-0.3.15-out-of-bounds-read.patch b/SOURCES/openblas-0.3.15-out-of-bounds-read.patch deleted file mode 100644 index 3e7fc7a..0000000 --- a/SOURCES/openblas-0.3.15-out-of-bounds-read.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 337b65133df174796794871b3988cd03426e6d41 Mon Sep 17 00:00:00 2001 -From: Martin Kroeker -Date: Fri, 1 Oct 2021 11:19:53 +0200 -Subject: [PATCH] Fix out of bounds read in ?llarv (Reference-LAPACK PR 625) - -Resolves: CVE-2021-4048 - ---- - lapack-netlib/SRC/zlarrv.f | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lapack-netlib/SRC/zlarrv.f b/lapack-netlib/SRC/zlarrv.f -index 23976dbe..8d10e3c2 100644 ---- a/lapack-netlib/SRC/zlarrv.f -+++ b/lapack-netlib/SRC/zlarrv.f -@@ -351,7 +351,7 @@ - * - * Quick return if possible - * -- IF( N.LE.0 ) THEN -+ IF( (N.LE.0).OR.(M.LE.0) ) THEN - RETURN - END IF - * --- -2.33.1 - diff --git a/SOURCES/openblas-0.3.21-sbgemm-test.patch b/SOURCES/openblas-0.3.21-sbgemm-test.patch new file mode 100644 index 0000000..3a21470 --- /dev/null +++ b/SOURCES/openblas-0.3.21-sbgemm-test.patch @@ -0,0 +1,55 @@ +Fixing FTBFS on power: +https://bugzilla.redhat.com/show_bug.cgi?id=2120974 + +Upstream issue: https://github.com/xianyi/OpenBLAS/issues/3738 +Upstream fix: https://github.com/xianyi/OpenBLAS/pull/3718 + +commit d9dc015cfc78fc32f555995a89d6957ef0184ea2 +Author: Martin Kroeker +Date: Mon Aug 8 14:52:10 2022 +0200 + + Use blasint for INTERFACE64 compatibility + +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'; + +commit 3d338b57de1837f1e2264a1262a9ee9203f31c6c +Author: Martin Kroeker +Date: Mon Aug 8 17:09:45 2022 +0200 + + remove spurious loops + +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++; + } diff --git a/SPECS/openblas.spec b/SPECS/openblas.spec index 200fb84..681aa93 100644 --- a/SPECS/openblas.spec +++ b/SPECS/openblas.spec @@ -14,8 +14,8 @@ # "obsoleted" features are still kept in the spec. Name: openblas -Version: 0.3.15 -Release: 3%{?dist} +Version: 0.3.21 +Release: 2%{?dist} Summary: An optimized BLAS library based on GotoBLAS2 License: BSD URL: https://github.com/xianyi/OpenBLAS/ @@ -28,8 +28,8 @@ Patch1: openblas-0.2.5-libname.patch Patch2: openblas-0.2.15-constructor.patch # Supply the proper flags to the test makefile Patch3: openblas-0.3.11-tests.patch -# Fix out of bounds read in ?llarv (Reference-LAPACK PR 625) -Patch4: openblas-0.3.15-out-of-bounds-read.patch +# Fix SBGEMM test to work with INTERFACE64 +Patch4: openblas-0.3.21-sbgemm-test.patch BuildRequires: make BuildRequires: gcc @@ -243,7 +243,7 @@ cd OpenBLAS-%{version} %patch2 -p1 -b .constructor %endif %patch3 -p1 -b .tests -%patch4 -p1 -b .out-of-bound-read +%patch4 -p1 -b .sbgemm # Fix source permissions find -name \*.f -exec chmod 644 {} \; @@ -427,7 +427,7 @@ make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_ %install rm -rf %{buildroot} # Install serial library and headers -make -C serial USE_THREAD=0 PREFIX=%{buildroot} OPENBLAS_LIBRARY_DIR=%{buildroot}%{_libdir} OPENBLAS_INCLUDE_DIR=%{buildroot}%{_includedir}/%name OPENBLAS_BINARY_DIR=%{buildroot}%{_bindir} OPENBLAS_CMAKE_DIR=%{buildroot}%{_libdir}/cmake install +make -C serial USE_THREAD=0 DESTDIR=%{buildroot} OPENBLAS_LIBRARY_DIR=%{_libdir} OPENBLAS_INCLUDE_DIR=%{_includedir}/%name OPENBLAS_BINARY_DIR=%{_bindir} OPENBLAS_CMAKE_DIR=%{_libdir}/cmake install # Copy lapacke include files %if %{with system_lapack} && %{lapacke} @@ -559,8 +559,6 @@ done # Get rid of generated CMake config rm -rf %{buildroot}%{_libdir}/cmake -# Get rid of generated pkgconfig -rm -rf %{buildroot}%{_libdir}/pkgconfig %ldconfig_scriptlets @@ -623,6 +621,8 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig %files devel %{_includedir}/%{name}/ +%{_libdir}/pkgconfig/ +%{_libdir}/pkgconfig/%{name}.pc %{_libdir}/lib%{name}.so %{_libdir}/lib%{name}o.so %{_libdir}/lib%{name}p.so @@ -649,6 +649,15 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig %endif %changelog +* Tue Jan 31 2023 Matej Mužila - 0.3.21-2 +- Include openblas.pc + Resolves: #2115737 + +* Wed Aug 24 2022 Honza Horak - 0.3.21-1 +- Update to 0.3.21 + Resolves: #2112099 +- Fix SBGEMM test to work with INTERFACE64 (rhbz#2120974) + * Tue Jan 11 2022 Honza Horak - 0.3.15-3 - Fix out of bounds read in ?llarv (Reference-LAPACK PR 625) (CVE-2021-4048)