import openblas-0.3.15-3.el8

This commit is contained in:
CentOS Sources 2022-05-10 03:02:01 -04:00 committed by Stepan Oksanichenko
parent b857912f60
commit 8dad01a53c
9 changed files with 76 additions and 59 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/v0.3.12.tar.gz
SOURCES/v0.3.15.tar.gz

View File

@ -1 +1 @@
ae647fed597ae891a7f122b9ddc6b15d4b7e0656 SOURCES/v0.3.12.tar.gz
d7d1f67c1ef0c14c93761bdf44f0da8d0dd4bc0f SOURCES/v0.3.15.tar.gz

View File

@ -1,8 +1,8 @@
diff --git a/kernel/Makefile b/kernel/Makefile
index e52781c6..c925837a 100644
index 1a6c9413..afd54abc 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -151,25 +151,32 @@ endif
@@ -132,25 +132,32 @@ endif
all : libs
scabs1.$(SUFFIX): $(KERNELDIR)/$(SCABS_KERNEL)
@ -42,7 +42,7 @@ index e52781c6..c925837a 100644
endif
setparam$(TSUFFIX).c : setparam-ref.c
@@ -180,25 +187,32 @@ kernel$(TSUFFIX).h : $(KERNEL_INTERFACE)
@@ -161,25 +168,32 @@ kernel$(TSUFFIX).h : $(KERNEL_INTERFACE)
cpuid.$(SUFFIX): $(KERNELDIR)/cpuid.S
@ -83,10 +83,10 @@ index e52781c6..c925837a 100644
#ifdef DYNAMIC_ARCH
clean ::
diff --git a/kernel/Makefile.L1 b/kernel/Makefile.L1
index 7ad94118..3487a9e3 100644
index 09337363..a368277e 100644
--- a/kernel/Makefile.L1
+++ b/kernel/Makefile.L1
@@ -545,217 +545,282 @@ endif
@@ -553,217 +553,282 @@ endif
$(KDIR)samax_k$(TSUFFIX).$(SUFFIX) $(KDIR)samax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAMAXKERNEL)
@ -434,7 +434,7 @@ index 7ad94118..3487a9e3 100644
ifeq ($(BUILD_BFLOAT16),1)
$(KDIR)sbdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sbdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SBDOTKERNEL)
@@ -771,126 +836,165 @@ $(KDIR)dbf16tod_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(BF16TOKERNEL)
@@ -779,126 +844,165 @@ $(KDIR)dbf16tod_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(BF16TOKERNEL)
endif
$(KDIR)sdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
@ -529,14 +529,14 @@ index 7ad94118..3487a9e3 100644
+ $(CC) $$CFLAGS -DCOMPLEX -c -DXDOUBLE $< -o $@
$(KDIR)srot_k$(TSUFFIX).$(SUFFIX) $(KDIR)srot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SROTKERNEL)
- $(CC) -c $(CFLAGS) -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
- $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
+ [[ "$<" == *.S ]] && CFLAGS="$(CFLAGS) $(ASMFLAGS)" || CFLAGS="$(CFLAGS)"; \
+ $(CC) -c $$CFLAGS -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
+ $(CC) -c $$CFLAGS $(FMAFLAG) -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
$(KDIR)drot_k$(TSUFFIX).$(SUFFIX) $(KDIR)drot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DROTKERNEL)
- $(CC) -c $(CFLAGS) -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
- $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
+ [[ "$<" == *.S ]] && CFLAGS="$(CFLAGS) $(ASMFLAGS)" || CFLAGS="$(CFLAGS)"; \
+ $(CC) -c $$CFLAGS -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
+ $(CC) -c $$CFLAGS $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
$(KDIR)qrot_k$(TSUFFIX).$(SUFFIX) $(KDIR)qrot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QROTKERNEL)
- $(CC) -c $(CFLAGS) -UCOMPLEX -UCOMPLEX -DXDOUBLE $< -o $@
@ -640,10 +640,10 @@ index 7ad94118..3487a9e3 100644
diff --git a/kernel/Makefile.L2 b/kernel/Makefile.L2
index 79399c34..6d605f82 100644
index 888a9b95..16e94c6a 100644
--- a/kernel/Makefile.L2
+++ b/kernel/Makefile.L2
@@ -236,251 +236,320 @@ XBLASOBJS += \
@@ -252,252 +252,321 @@ endif
ifneq "$(or $(BUILD_SINGLE), $(BUILD_DOUBLE), $(BUILD_COMPLEX))" ""
$(KDIR)sgemv_n$(TSUFFIX).$(SUFFIX) $(KDIR)sgemv_n$(TSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SGEMVNKERNEL) $(TOPDIR)/common.h $(GEMVDEP)
@ -1032,9 +1032,10 @@ index 79399c34..6d605f82 100644
+ [[ "$<" == *.S ]] && CFLAGS="$(CFLAGS) $(ASMFLAGS)" || CFLAGS="$(CFLAGS)"; \
+ $(CC) -c $$CFLAGS -DCOMPLEX -DXDOUBLE -DLOWER -DHEMV -DHEMVREV $< -o $@
ifeq ($(BUILD_BFLOAT16),1)
$(KDIR)sbgemv_n$(TSUFFIX).$(SUFFIX) $(KDIR)sbgemv_n$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SBGEMVNKERNEL)
diff --git a/kernel/Makefile.L3 b/kernel/Makefile.L3
index 2ba593c2..110674b2 100644
index d8d73996..60ca4c86 100644
--- a/kernel/Makefile.L3
+++ b/kernel/Makefile.L3
@@ -526,119 +526,150 @@ XGEMMOTCOPYOBJ_P = $(XGEMMOTCOPYOBJ:.$(SUFFIX)=.$(PSUFFIX))

View File

@ -1,8 +1,8 @@
diff --git a/Makefile.system b/Makefile.system
index 30d8f4cc..803219a8 100644
index ae703e4d..80739dc4 100644
--- a/Makefile.system
+++ b/Makefile.system
@@ -1425,16 +1425,16 @@ ifndef SMP
@@ -1515,16 +1515,16 @@ ifndef SMP
LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
else

View File

@ -1,5 +1,5 @@
diff --git a/kernel/power/drot.c b/kernel/power/drot.c
index 951c2f9c..98788c0f 100644
index 3229878e..a25ccceb 100644
--- a/kernel/power/drot.c
+++ b/kernel/power/drot.c
@@ -37,8 +37,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@ -8,11 +8,11 @@ index 951c2f9c..98788c0f 100644
-#pragma GCC optimize "O1"
-
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
#if defined(__VEC__) || defined(__ALTIVEC__)
#if defined(POWER8) || defined(POWER9)
#include "drot_microk_power8.c"
diff --git a/kernel/power/srot.c b/kernel/power/srot.c
index a53342f6..73b477d9 100644
index 5a0d4b12..d73fafc9 100644
--- a/kernel/power/srot.c
+++ b/kernel/power/srot.c
@@ -37,8 +37,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@ -21,11 +21,11 @@ index a53342f6..73b477d9 100644
-#pragma GCC optimize "O1"
-
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
#if defined(__VEC__) || defined(__ALTIVEC__)
#if defined(POWER8) || defined(POWER9)
#include "srot_microk_power8.c"
diff --git a/kernel/power/zscal.c b/kernel/power/zscal.c
index 5526f4d6..3c2efbfa 100644
index 59ddc149..a5e35001 100644
--- a/kernel/power/zscal.c
+++ b/kernel/power/zscal.c
@@ -36,8 +36,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@ -34,6 +34,6 @@ index 5526f4d6..3c2efbfa 100644
-#pragma GCC optimize "O1"
-
#if defined(POWER8) || defined(POWER9) || defined(POWER10)
#if defined(__VEC__) || defined(__ALTIVEC__)
#if defined(POWER8) || defined(POWER9)
#if defined(DOUBLE)

View File

@ -1,8 +1,8 @@
diff --git a/Makefile b/Makefile
index a9af62a2..2f0f11c0 100644
index 555d1c46..7dc74273 100644
--- a/Makefile
+++ b/Makefile
@@ -138,13 +138,13 @@ tests :
@@ -144,13 +144,13 @@ tests :
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
touch $(LIBNAME)
ifndef NO_FBLAS

View File

@ -1,6 +1,9 @@
%bcond_with system_lapack
# Version of bundled lapack
%global lapackver 3.9.0
%global lapackver 3.9.1
# Use strip from gcc-toolset-11
%global __strip "scl enable gcc-toolset-11 -- strip"
# DO NOT "CLEAN UP" OR MODIFY THIS SPEC FILE WITHOUT ASKING THE
# MAINTAINER FIRST!
@ -14,28 +17,30 @@
# "obsoleted" features are still kept in the spec.
Name: openblas
Version: 0.3.12
Release: 1%{?dist}
Version: 0.3.15
Release: 3%{?dist}
Summary: An optimized BLAS library based on GotoBLAS2
Group: Development/Libraries
License: BSD
URL: https://github.com/xianyi/OpenBLAS/
Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}.tar.gz
# Use system lapack
Patch0: openblas-0.3.12-system-lapack.patch
Patch0: openblas-0.3.15-system-lapack.patch
# Drop extra p from threaded library name
Patch1: openblas-0.3.12-libname.patch
Patch1: openblas-0.3.15-libname.patch
# Supply the proper flags to the test makefile
Patch2: openblas-0.3.12-tests.patch
Patch2: openblas-0.3.15-tests.patch
# Enable optimizations for all LAPACK sources
Patch3: openblas-0.3.12-noopt.patch
Patch3: openblas-0.3.15-noopt.patch
# Pass ASMFLAGS to assembler compiler
Patch4: openblas-0.3.12-asmflags.patch
Patch4: openblas-0.3.15-asmflags.patch
# Remove optimization pragmas on ppc64le
Patch5: openblas-0.3.12-power-optimize.patch
Patch5: openblas-0.3.15-power-optimize.patch
BuildRequires: gcc
BuildRequires: gcc-gfortran
BuildRequires: scl-utils
BuildRequires: gcc-toolset-11-gcc
BuildRequires: gcc-toolset-11-gcc-gfortran
BuildRequires: gcc-toolset-11-annobin-plugin-gcc
BuildRequires: perl-devel
BuildRequires: multilib-rpm-config
@ -336,6 +341,9 @@ rm -rf netliblapack64
%endif
%build
# Enable gcc-toolset-11
source scl_source enable gcc-toolset-11
%if !%{lapacke}
LAPACKE="NO_LAPACKE=1"
%endif
@ -344,7 +352,7 @@ LAPACKE="NO_LAPACKE=1"
NMAX="NUM_THREADS=128"
%ifarch %{ix86} x86_64
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1"
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
# Compability for old versions of GCC
%if 0%{?rhel} == 5
@ -356,22 +364,23 @@ export AVX="NO_AVX2=1"
%endif
%ifarch armv7hl
# ARM v7 still doesn't have runtime cpu detection...
TARGET="TARGET=ARMV7 DYNAMIC_ARCH=0"
%endif
%ifarch ppc64
TARGET="TARGET=POWER6 DYNAMIC_ARCH=0"
TARGET="TARGET=POWER6 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%endif
%ifarch ppc64p7
TARGET="TARGET=POWER7 DYNAMIC_ARCH=0"
TARGET="TARGET=POWER7 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%endif
%ifarch ppc64le
TARGET="TARGET=POWER8 DYNAMIC_ARCH=0"
TARGET="TARGET=POWER8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%endif
%ifarch aarch64
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=0"
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%endif
%ifarch s390x
TARGET="TARGET=ZARCH_GENERIC DYNAMIC_ARCH=1"
TARGET="TARGET=ZARCH_GENERIC DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%endif
%if 0%{?rhel} == 5
@ -393,7 +402,7 @@ make -C Rblas $TARGET USE_THREAD=0 USEOPENMP=0 FC=gfortran CC=gcc COMMON_OP
# Declare some necessary build flags
COMMON="%{optflags} -fPIC"
FCOMMON="$COMMON -frecursive -cpp"
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
@ -404,7 +413,7 @@ make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_O
%if %build64
COMMON="%{optflags} -fPIC"
FCOMMON="$COMMON -frecursive -fdefault-integer-8 -cpp"
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"
@ -413,7 +422,7 @@ make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_O
COMMON="%{optflags} -fPIC"
FCOMMON="$COMMON -frecursive -fdefault-integer-8 -cpp"
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"
@ -422,6 +431,9 @@ make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_
%endif
%install
# Enable gcc-toolset-11
source scl_source enable gcc-toolset-11
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
@ -434,22 +446,12 @@ cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name}
# Fix i686-x86_64 multilib difference
%multilib_fix_c_header --file %{_includedir}/openblas/openblas_config.h
# Fix name of libraries
# Fix name of libraries: runtime CPU detection has none
suffix=""
# but archs that don't have it do have one
%ifarch armv7hl
suffix="_armv7"
%endif
%ifarch ppc64
suffix="_power6"
%endif
%ifarch ppc64p7
suffix="_power7"
%endif
%ifarch ppc64le
suffix="_power8"
%endif
%ifarch aarch64
suffix="_armv8"
%endif
slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a
if [[ "$suffix" != "" ]]; then
@ -675,6 +677,20 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
%endif
%changelog
* Fri Nov 12 2021 Nikola Forró <nforro@redhat.com> - 0.3.15-3
- Fix missing header files in openblas-devel subpackage by enabling
gcc-toolset-11 in %%install as well
related: #1983218
* Thu Oct 21 2021 Nikola Forró <nforro@redhat.com> - 0.3.15-2
- Enable dynamic cpu detection on all supported architectures
related: #1983218
* Wed Sep 15 2021 Nikola Forró <nforro@redhat.com> - 0.3.15-1
- Rebase to version 0.3.15
- Use gcc-toolset-11 to benefit from POWER 10 optimizations
resolves: #1983218
* Wed Oct 28 2020 Nikola Forró <nforro@redhat.com> - 0.3.12-1
- Rebase to version 0.3.12
related: #1847435