Compare commits
10 Commits
1f44679b7d
...
6c7672f049
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c7672f049 | ||
|
|
f7ea940b40 | ||
|
|
f37a694e7a | ||
|
|
f026faa168 | ||
|
|
a05effd63c | ||
|
|
bd79995091 | ||
|
|
7d07a897a0 | ||
|
|
3f29560fdd | ||
|
|
114ce0492d | ||
|
|
7f84810220 |
22
CVE-2021-4048-1.patch
Normal file
22
CVE-2021-4048-1.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From 2be5ee3cca97a597f2ee2118808a2d5eacea050c Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||
Date: Fri, 1 Oct 2021 11:17:21 +0200
|
||||
Subject: [PATCH] Fix out of bounds read in ?llarv (Reference-LAPACK PR 625)
|
||||
|
||||
---
|
||||
lapack-netlib/SRC/clarrv.f | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lapack-netlib/SRC/clarrv.f b/lapack-netlib/SRC/clarrv.f
|
||||
index a45f55ac3..26a9febc8 100644
|
||||
--- a/lapack-netlib/SRC/clarrv.f
|
||||
+++ b/lapack-netlib/SRC/clarrv.f
|
||||
@@ -351,7 +351,7 @@ SUBROUTINE CLARRV( N, VL, VU, D, L, PIVMIN,
|
||||
*
|
||||
* Quick return if possible
|
||||
*
|
||||
- IF( N.LE.0 ) THEN
|
||||
+ IF( (N.LE.0) .OR. (M.LE.0) ) THEN
|
||||
RETURN
|
||||
END IF
|
||||
*
|
||||
22
CVE-2021-4048-2.patch
Normal file
22
CVE-2021-4048-2.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From 337b65133df174796794871b3988cd03426e6d41 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||
Date: Fri, 1 Oct 2021 11:19:53 +0200
|
||||
Subject: [PATCH] Fix out of bounds read in ?llarv (Reference-LAPACK PR 625)
|
||||
|
||||
---
|
||||
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 23976dbef..8d10e3c2e 100644
|
||||
--- a/lapack-netlib/SRC/zlarrv.f
|
||||
+++ b/lapack-netlib/SRC/zlarrv.f
|
||||
@@ -351,7 +351,7 @@ SUBROUTINE ZLARRV( N, VL, VU, D, L, PIVMIN,
|
||||
*
|
||||
* Quick return if possible
|
||||
*
|
||||
- IF( N.LE.0 ) THEN
|
||||
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||
RETURN
|
||||
END IF
|
||||
*
|
||||
22
CVE-2021-4048-3.patch
Normal file
22
CVE-2021-4048-3.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From ddb0ff5353637bb5f5ad060c9620e334c143e3d7 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||
Date: Fri, 1 Oct 2021 11:19:07 +0200
|
||||
Subject: [PATCH] Fix out of bounds read in ?llarv (Reference-LAPACK PR 625)
|
||||
|
||||
---
|
||||
lapack-netlib/SRC/slarrv.f | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lapack-netlib/SRC/slarrv.f b/lapack-netlib/SRC/slarrv.f
|
||||
index 04519fde8..9448b2fd9 100644
|
||||
--- a/lapack-netlib/SRC/slarrv.f
|
||||
+++ b/lapack-netlib/SRC/slarrv.f
|
||||
@@ -353,7 +353,7 @@ SUBROUTINE SLARRV( N, VL, VU, D, L, PIVMIN,
|
||||
*
|
||||
* Quick return if possible
|
||||
*
|
||||
- IF( N.LE.0 ) THEN
|
||||
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||
RETURN
|
||||
END IF
|
||||
*
|
||||
22
CVE-2021-4048-4.patch
Normal file
22
CVE-2021-4048-4.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From fe497efa0510466fd93578aaf9da1ad8ed4edbe7 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||
Date: Fri, 1 Oct 2021 11:18:20 +0200
|
||||
Subject: [PATCH] Fix out of bounds read in ?llarv (Reference-LAPACK PR 625)
|
||||
|
||||
---
|
||||
lapack-netlib/SRC/dlarrv.f | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lapack-netlib/SRC/dlarrv.f b/lapack-netlib/SRC/dlarrv.f
|
||||
index 4a59a2bbf..a1c6e9c9d 100644
|
||||
--- a/lapack-netlib/SRC/dlarrv.f
|
||||
+++ b/lapack-netlib/SRC/dlarrv.f
|
||||
@@ -353,7 +353,7 @@ SUBROUTINE DLARRV( N, VL, VU, D, L, PIVMIN,
|
||||
*
|
||||
* Quick return if possible
|
||||
*
|
||||
- IF( N.LE.0 ) THEN
|
||||
+ IF( (N.LE.0).OR.(M.LE.0) ) THEN
|
||||
RETURN
|
||||
END IF
|
||||
*
|
||||
@ -1,19 +0,0 @@
|
||||
diff -up OpenBLAS-0.2.15/driver/others/memory.c.priority OpenBLAS-0.2.15/driver/others/memory.c
|
||||
--- OpenBLAS-0.2.15/driver/others/memory.c.priority 2015-10-27 21:44:50.000000000 +0100
|
||||
+++ OpenBLAS-0.2.15/driver/others/memory.c 2016-01-13 21:12:01.862225898 +0100
|
||||
@@ -146,8 +146,15 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
#define CONSTRUCTOR __attribute__ ((constructor))
|
||||
#define DESTRUCTOR __attribute__ ((destructor))
|
||||
#else
|
||||
+#if __GNUC__ && INIT_PRIORITY && ((GCC_VERSION >= 40300) || (CLANG_VERSION >= 20900))
|
||||
#define CONSTRUCTOR __attribute__ ((constructor(101)))
|
||||
#define DESTRUCTOR __attribute__ ((destructor(101)))
|
||||
+#elif __GNUC__ && INIT_PRIORITY
|
||||
+#define CONSTRUCTOR __attribute__ ((constructor))
|
||||
+#define DESTRUCTOR __attribute__ ((destructor))
|
||||
+#else
|
||||
+#define CONSTRUCTOR
|
||||
+#define DESTRUCTOR
|
||||
#endif
|
||||
|
||||
#ifdef DYNAMIC_ARCH
|
||||
Binary file not shown.
@ -1,18 +0,0 @@
|
||||
diff -up OpenBLAS-0.3.2/Makefile.tests OpenBLAS-0.3.2/Makefile
|
||||
--- OpenBLAS-0.3.2/Makefile.tests 2018-08-02 14:12:01.615117002 +0200
|
||||
+++ OpenBLAS-0.3.2/Makefile 2018-08-02 14:13:29.582918971 +0200
|
||||
@@ -122,11 +122,11 @@ tests :
|
||||
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
||||
touch $(LIBNAME)
|
||||
ifndef NO_FBLAS
|
||||
- $(MAKE) -C test all
|
||||
- $(MAKE) -C utest all
|
||||
+ $(MAKE) -C test FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||
+ $(MAKE) -C utest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||
endif
|
||||
ifndef NO_CBLAS
|
||||
- $(MAKE) -C ctest all
|
||||
+ $(MAKE) -C ctest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
diff -up OpenBLAS-0.3.3/Makefile.rule.tls OpenBLAS-0.3.3/Makefile.rule
|
||||
--- OpenBLAS-0.3.3/Makefile.rule.tls 2018-08-31 00:07:48.000000000 +0200
|
||||
+++ OpenBLAS-0.3.3/Makefile.rule 2018-09-29 19:00:47.804678736 +0200
|
||||
@@ -113,7 +113,7 @@ USE_SIMPLE_THREADED_LEVEL3 = 1
|
||||
# thread-local storage instead of a central memory buffer in memory.c
|
||||
# Note that if your system uses GLIBC, it needs to have at least glibc 2.21
|
||||
# for this to work.
|
||||
-USE_TLS = 1
|
||||
+#USE_TLS = 1
|
||||
|
||||
# If you want to drive whole 64bit region by BLAS. Not all Fortran
|
||||
# compiler supports this. It's safe to keep comment it out if you
|
||||
42
openblas-0.3.7-tests.patch
Normal file
42
openblas-0.3.7-tests.patch
Normal file
@ -0,0 +1,42 @@
|
||||
diff -up OpenBLAS-0.3.7/Makefile.tests OpenBLAS-0.3.7/Makefile
|
||||
--- OpenBLAS-0.3.7/Makefile.tests 2019-08-11 23:23:27.000000000 +0200
|
||||
+++ OpenBLAS-0.3.7/Makefile 2019-08-12 11:32:09.937281485 +0200
|
||||
@@ -123,13 +123,13 @@ 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
|
||||
- $(MAKE) -C utest all
|
||||
+ $(MAKE) -C utest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||
ifndef NO_CBLAS
|
||||
- $(MAKE) -C ctest all
|
||||
+ $(MAKE) -C ctest FC="$(FC)" CC="$(CC)" COMMON_OPT="$(COMMON_OPT)" FCOMMON_OPT="$(FCOMMON_OPT)" all
|
||||
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 -up OpenBLAS-0.3.7/cpp_thread_test/Makefile.tests OpenBLAS-0.3.7/cpp_thread_test/Makefile
|
||||
--- OpenBLAS-0.3.7/cpp_thread_test/Makefile.tests 2019-08-11 19:23:00.000000000 +0000
|
||||
+++ OpenBLAS-0.3.7/cpp_thread_test/Makefile 2019-12-12 11:05:51.426334062 +0000
|
||||
@@ -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 ::
|
||||
@ -1,7 +1,7 @@
|
||||
%bcond_with system_lapack
|
||||
|
||||
Name: openblas
|
||||
Version: 0.3.3
|
||||
Version: 0.3.10
|
||||
Release: 3
|
||||
Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version
|
||||
License: BSD
|
||||
@ -9,9 +9,11 @@ URL: https://github.com/xianyi/OpenBLAS/
|
||||
Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}/openblas-%{version}.tar.gz
|
||||
Patch0000: openblas-0.2.15-system_lapack.patch
|
||||
Patch0001: openblas-0.2.5-libname.patch
|
||||
Patch0002: openblas-0.2.15-constructor.patch
|
||||
Patch0003: openblas-0.3.2-tests.patch
|
||||
Patch0004: openblas-0.3.3-tls.patch
|
||||
Patch0002: openblas-0.3.7-tests.patch
|
||||
Patch0003: CVE-2021-4048-1.patch
|
||||
Patch0004: CVE-2021-4048-2.patch
|
||||
Patch0005: CVE-2021-4048-3.patch
|
||||
Patch0006: CVE-2021-4048-4.patch
|
||||
Requires: %{name}-devel = %{version}-%{release}
|
||||
BuildRequires: gcc gcc-gfortran perl-devel
|
||||
|
||||
@ -58,8 +60,11 @@ cd OpenBLAS-%{version}
|
||||
%patch0000 -p1 -b .system_lapack
|
||||
%endif
|
||||
%patch0001 -p1 -b .libname
|
||||
%patch0003 -p1 -b .tests
|
||||
%patch0004 -p1 -b .tls
|
||||
%patch0002 -p1 -b .tests
|
||||
%patch0003 -p1
|
||||
%patch0004 -p1
|
||||
%patch0005 -p1
|
||||
%patch0006 -p1
|
||||
|
||||
# Set source permissions
|
||||
find -name \*.f -exec chmod 644 {} \;
|
||||
@ -154,6 +159,7 @@ rm -rf netliblapack64
|
||||
%endif
|
||||
|
||||
%build
|
||||
%define _lto_cflags %{nil}
|
||||
%if !%{lapacke}
|
||||
LAPACKE="NO_LAPACKE=1"
|
||||
%endif
|
||||
@ -172,36 +178,37 @@ COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="%{optflags} -fPIC -frecursive"
|
||||
export LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
make -C Rblas $TARGET USE_THREAD=0 USEOPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libRblas" LIBSONAME="libRblas.so" $AVX $LAPACKE INTERFACE64=0
|
||||
make -C Rblas $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libRblas" LIBSONAME="libRblas.so" $AVX $LAPACKE INTERFACE64=0
|
||||
|
||||
# Declare some necessary build flags
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive"
|
||||
make -C serial $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas" $AVX $LAPACKE INTERFACE64=0
|
||||
make -C serial $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas" $AVX $LAPACKE INTERFACE64=0
|
||||
make -C threaded $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp" $AVX $LAPACKE INTERFACE64=0
|
||||
|
||||
# USE_THREAD determines use of SMP, not of pthreads
|
||||
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||
FCOMMON="$COMMON -frecursive"
|
||||
make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso" $AVX $LAPACKE INTERFACE64=0
|
||||
make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso" $AVX $LAPACKE INTERFACE64=0 %{with cpp_thread_check:CPP_THREAD_SAFETY_TEST=0}
|
||||
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
make -C serial64 $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64" $AVX $LAPACKE INTERFACE64=1
|
||||
make -C serial64 $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64" $AVX $LAPACKE INTERFACE64=1
|
||||
make -C threaded64 $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64" $AVX $LAPACKE INTERFACE64=1
|
||||
|
||||
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64" $AVX $LAPACKE INTERFACE64=1
|
||||
make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64" $AVX $LAPACKE INTERFACE64=1 CPP_THREAD_SAFETY_TEST=0
|
||||
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
make -C serial64_ $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||
make -C serial64_ $TARGET USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblas64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||
make -C threaded64_ $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||
|
||||
COMMON="%{optflags} -fPIC -fopenmp -pthread"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
||||
make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_ CPP_THREAD_SAFETY_TEST=0
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
@ -355,5 +362,17 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
|
||||
%{_libdir}/lib%{name}*64_.so
|
||||
|
||||
%changelog
|
||||
* Wed Dec 29 2021 zhouwenpei <zhouwenpei1@hauwei.com> - 0.3.10-3
|
||||
- disable CPP_THREAD_SAFETY_TEST
|
||||
|
||||
* Mon Dec 20 2021 houyingchao <houyingchao@hauwei.com> - 0.3.10-2
|
||||
- Fix CVE-2021-4048
|
||||
|
||||
* Tue Aug 18 2020 xinghe <xinghe1@huawei.com> - 0.3.10-1
|
||||
- Upgrade to 0.3.10
|
||||
|
||||
* Fri Apr 17 2020 yuxiangyang<yuxiangyang4@huawei.com> - 0.3.9-1
|
||||
- Upgrade to 0.3.9
|
||||
|
||||
* Wed Nov 13 2019 Alex Chao <zhaolei746@huawei.com> - 0.3.3-3
|
||||
- Package init
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user