Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
6c7672f049
!32 [sync] PR-25: disable CPP_THREAD_SAFETY_TEST
From: @openeuler-sync-bot 
Reviewed-by: @licihua, @small_leek 
Signed-off-by: @small_leek
2022-03-24 03:09:11 +00:00
zhouwenpei
f7ea940b40 disable CPP_THREAD_SAFETY_TEST
(cherry picked from commit 37dd9e2f1718ec906b0f292f2427c20cdda97304)
2022-03-22 11:32:23 +08:00
openeuler-ci-bot
f37a694e7a !20 [sync] PR-14: Fix CVE-2021-4048
Merge pull request !20 from openeuler-sync-bot/sync-pr14-openEuler-20.03-LTS-to-openEuler-20.03-LTS-SP3
2021-12-21 13:56:46 +00:00
houyingchao
f026faa168 Fix CVE-2021-4048
(cherry picked from commit 36249a74664de26c0b672db4a8f3636365be0428)
2021-12-21 14:07:11 +08:00
openeuler-ci-bot
a05effd63c !5 【LTS升级】openblas升级到最新版本
Merge pull request !5 from xinghe/openEuler-20.03-LTS
2020-08-27 16:21:17 +08:00
jinzhimin369
bd79995091 update version 2020-08-18 11:14:53 +08:00
openeuler-ci-bot
7d07a897a0 !3 update to 0.3.9
Merge pull request !3 from HukunaMatata/master
2020-05-12 19:43:13 +08:00
HukunaMatata
3f29560fdd update to 0.3.9 2020-05-12 09:42:01 +08:00
openeuler-ci-bot
114ce0492d !2 Add yaml file
Merge pull request !2 from 李振华/master
2020-05-07 10:37:07 +08:00
lizhenhua
7f84810220 Add yaml file 2020-05-06 18:45:10 +08:00
10 changed files with 162 additions and 62 deletions

22
CVE-2021-4048-1.patch Normal file
View 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
View 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
View 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
View 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
*

View File

@ -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

View File

@ -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

View File

@ -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

View 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 ::

View File

@ -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