!41 [sync] PR-40: 修改22.03-LTS-SP1的release 保持和22.03-LTS分支一致
From: @openeuler-sync-bot Reviewed-by: @caodongxia Signed-off-by: @caodongxia
This commit is contained in:
commit
087461bebb
112
openblas.spec
112
openblas.spec
@ -2,18 +2,25 @@
|
||||
|
||||
Name: openblas
|
||||
Version: 0.3.18
|
||||
Release: 1
|
||||
Release: 4
|
||||
Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version
|
||||
License: BSD
|
||||
License: BSD-3-Clause
|
||||
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.3.7-tests.patch
|
||||
Patch0003: rm-make-test-from-Makefile-and-add-this-to-spec-in-f.patch
|
||||
|
||||
Requires: %{name}-devel = %{version}-%{release}
|
||||
BuildRequires: gcc gcc-gfortran perl-devel gcc-c++
|
||||
|
||||
%if 0%{?openEuler}
|
||||
%define build64 1
|
||||
%else
|
||||
%define build64 0
|
||||
%endif
|
||||
|
||||
%if %{with system_lapack}
|
||||
BuildRequires: lapack-static lapack64-static
|
||||
%global lapacke 0
|
||||
@ -23,17 +30,23 @@ Provides: bundled(lapack) = 3.9.0
|
||||
%endif
|
||||
|
||||
Provides: openblas-serial = %{version}-%{release} openblas-openmp = %{version}-%{release}
|
||||
Provides: openblas-threads = %{version}-%{release}
|
||||
%if %{build64}
|
||||
Provides: openblas-threads = %{version}-%{release} openblas-serial64 = %{version}-%{release}
|
||||
Provides: openblas-openmp64 = %{version}-%{release} openblas-threads64 = %{version}-%{release}
|
||||
Provides: openblas-serial64_ = %{version}-%{release} openblas-openmp64_ = %{version}-%{release}
|
||||
Provides: openblas-threads64_ = %{version}-%{release} openblas-Rblas = %{version}-%{release}
|
||||
%endif
|
||||
Provides: openblas-Rblas = %{version}-%{release}
|
||||
Provides: openblas-static = %{version}-%{release}
|
||||
Obsoletes: openblas-serial < %{version}-%{release} openblas-openmp < %{version}-%{release}
|
||||
Obsoletes: openblas-threads < %{version}-%{release}
|
||||
%if %{build64}
|
||||
Obsoletes: openblas-threads < %{version}-%{release} openblas-serial64 < %{version}-%{release}
|
||||
Obsoletes: openblas-openmp64 < %{version}-%{release} openblas-threads64 < %{version}-%{release}
|
||||
Obsoletes: openblas-serial64_ < %{version}-%{release} openblas-openmp64_ < %{version}-%{release}
|
||||
Obsoletes: openblas-threads64_ < %{version}-%{release} openblas-Rblas < %{version}-%{release}
|
||||
Obsoletes: openblas-static < %{version}-%{release}
|
||||
%endif
|
||||
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
|
||||
@ -58,6 +71,7 @@ cd OpenBLAS-%{version}
|
||||
%endif
|
||||
%patch0001 -p1 -b .libname
|
||||
%patch0002 -p1 -b .tests
|
||||
%patch0003 -p1
|
||||
|
||||
# Set source permissions
|
||||
find -name \*.f -exec chmod 644 {} \;
|
||||
@ -71,9 +85,11 @@ rm -rf lapack-netlib
|
||||
cd ..
|
||||
cp -ar OpenBLAS-%{version} openmp
|
||||
cp -ar OpenBLAS-%{version} threaded
|
||||
%if %{build64}
|
||||
for d in {serial,threaded,openmp}64{,_}; do
|
||||
cp -ar OpenBLAS-%{version} $d
|
||||
done
|
||||
%endif
|
||||
cp -ar OpenBLAS-%{version} Rblas
|
||||
mv OpenBLAS-%{version} serial
|
||||
|
||||
@ -161,46 +177,91 @@ LAPACKE="NO_LAPACKE=1"
|
||||
NMAX="NUM_THREADS=128"
|
||||
|
||||
%ifarch x86_64
|
||||
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=0"
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=0"
|
||||
%endif
|
||||
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="%{optflags} -fPIC -frecursive"
|
||||
export LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
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
|
||||
(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_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
|
||||
(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 %{with cpp_thread_check:CPP_THREAD_SAFETY_TEST=1}
|
||||
(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=1})&
|
||||
|
||||
|
||||
%if %{build64}
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
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
|
||||
(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)&
|
||||
(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 CPP_THREAD_SAFETY_TEST=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=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 SYMBOLSUFFIX=64_ CPP_THREAD_SAFETY_TEST=1)&
|
||||
%endif
|
||||
wait
|
||||
|
||||
%check
|
||||
%define _lto_cflags %{nil}
|
||||
%if !%{lapacke}
|
||||
LAPACKE="NO_LAPACKE=1"
|
||||
%endif
|
||||
|
||||
# Maximum possible amount of processors
|
||||
NMAX="NUM_THREADS=128"
|
||||
|
||||
%ifarch x86_64
|
||||
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=0"
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
TARGET="TARGET=ARMV8 DYNAMIC_ARCH=0"
|
||||
%endif
|
||||
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
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_
|
||||
FCOMMON="%{optflags} -fPIC -frecursive"
|
||||
export LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
make -C Rblas tests $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 tests $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 tests $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 tests $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=1}
|
||||
|
||||
%if %{build64}
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="$COMMON -frecursive -fdefault-integer-8"
|
||||
make -C serial64 tests $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 tests $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="$COMMON" FCOMMON_OPT="$FCOMMON" $NMAX LIBPREFIX="libopenblasp64" $AVX $LAPACKE INTERFACE64=1
|
||||
make -C serial64_ tests $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_ tests $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_ CPP_THREAD_SAFETY_TEST=1
|
||||
make -C openmp64 tests $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=1
|
||||
make -C openmp64_ tests $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=1
|
||||
%endif
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
@ -213,6 +274,9 @@ cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name}
|
||||
%endif
|
||||
|
||||
# Fix name of libraries
|
||||
%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
|
||||
@ -246,6 +310,7 @@ else
|
||||
fi
|
||||
install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${pname}.so
|
||||
|
||||
%if %{build64}
|
||||
# Install the 64-bit interface libraries
|
||||
|
||||
slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"`
|
||||
@ -292,6 +357,7 @@ else
|
||||
fi
|
||||
install -D -p -m 755 threaded64/${plibname64}.so %{buildroot}%{_libdir}/${pname64}.so
|
||||
install -D -p -m 755 threaded64_/${plibname64_}.so %{buildroot}%{_libdir}/${pname64_}.so
|
||||
%endif
|
||||
|
||||
# Fix symlinks
|
||||
cd %{buildroot}%{_libdir}
|
||||
@ -306,6 +372,7 @@ ln -sf ${oname}.so lib%{name}o.so.0
|
||||
ln -sf ${pname}.so lib%{name}p.so
|
||||
ln -sf ${pname}.so lib%{name}p.so.0
|
||||
|
||||
%if %{build64}
|
||||
# 64bit Serial libraries
|
||||
ln -sf ${sname64}.so lib%{name}64.so
|
||||
ln -sf ${sname64}.so lib%{name}64.so.0
|
||||
@ -321,7 +388,7 @@ ln -sf ${pname64}.so lib%{name}p64.so
|
||||
ln -sf ${pname64}.so lib%{name}p64.so.0
|
||||
ln -sf ${pname64_}.so lib%{name}p64_.so
|
||||
ln -sf ${pname64_}.so lib%{name}p64_.so.0
|
||||
|
||||
%endif
|
||||
|
||||
# Get rid of generated CMake config
|
||||
rm -rf %{buildroot}%{_libdir}/cmake
|
||||
@ -347,10 +414,21 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
|
||||
%{_libdir}/lib%{name}.so
|
||||
%{_libdir}/lib%{name}o.so
|
||||
%{_libdir}/lib%{name}p.so
|
||||
%if %{build64}
|
||||
%{_libdir}/lib%{name}*64.so
|
||||
%{_libdir}/lib%{name}*64_.so
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Apr 18 2022 zhouwenpei <zhouwenpei1@h-partners.com>- 0.3.18-4
|
||||
- sync master build speed optimization
|
||||
|
||||
* Thu Mar 17 2022 zhouwenpei <zhouwenpei1@h-partners.com>- 0.3.18-3
|
||||
- rolling back commit to tune up build speed
|
||||
|
||||
* Tue Mar 15 2022 zhouwenpei <zhouwenpei1@h-partners.com>- 0.3.18-2
|
||||
- restore tune up build speed
|
||||
|
||||
* Mon Dec 27 2021 zhouwenpei <zhouwenpei1@huawei.com>- 0.3.18-1
|
||||
- Upgrade to 0.3.18
|
||||
|
||||
|
||||
27
rm-make-test-from-Makefile-and-add-this-to-spec-in-f.patch
Normal file
27
rm-make-test-from-Makefile-and-add-this-to-spec-in-f.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From bc1d1850adf69e08debd5ff1ac50d6d497b625b0 Mon Sep 17 00:00:00 2001
|
||||
From: qinyu <qinyu16@huawei.com>
|
||||
Date: Tue, 6 Apr 2021 18:19:27 +0800
|
||||
Subject: [PATCH] rm "make test" from Makefile and add this to spec in
|
||||
following ci
|
||||
|
||||
Signed-off-by: qinyu <qinyu16@huawei.com>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a22e16b..2103691 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -39,7 +39,7 @@ SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench cp
|
||||
.PHONY : all libs netlib $(RELA) test ctest shared install
|
||||
.NOTPARALLEL : all libs $(RELA) prof lapack-test install blas-test
|
||||
|
||||
-all :: libs netlib $(RELA) tests shared
|
||||
+all :: libs netlib $(RELA) shared
|
||||
@echo
|
||||
@echo " OpenBLAS build complete. ($(LIB_COMPONENTS))"
|
||||
@echo
|
||||
--
|
||||
2.23.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user