Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
8f96d0f529
!75 [sync] PR-73: Add sw_64 support
From: @openeuler-sync-bot 
Reviewed-by: @lyn1001 
Signed-off-by: @lyn1001
2025-04-01 01:04:19 +00:00
zhangshaoning
1133ab14ce Add sw_64 support
(cherry picked from commit 3e0d495d6d5232193788424e303be21d499e7248)
2025-03-05 13:59:44 +08:00
openeuler-ci-bot
cdf3187874
!64 Don't run make tasks in background sub-shell
From: @kailiu42 
Reviewed-by: @Charlie_li 
Signed-off-by: @Charlie_li
2024-11-11 09:31:03 +00:00
Kai Liu
e13aed2d92 Don't run make tasks in background sub-shell
See below issue for detail:
  https://gitee.com/src-openeuler/openblas/issues/IB3EV0

Signed-off-by: Kai Liu <kai.liu@windriver.com>
2024-11-11 14:05:46 +08:00
openeuler-ci-bot
dc20e01b06
!61 [sync] PR-60: delete the dependency on the devel package
From: @openeuler-sync-bot 
Reviewed-by: @lyn1001 
Signed-off-by: @lyn1001
2024-09-07 09:21:46 +00:00
SuperSix173
fb69a18a52 delete the dependency on the devel package
Signed-off-by: SuperSix173 <liuchao173@huawei.com>
(cherry picked from commit 0e76cbe8ec8e11b8a261537f3343a975c68a59d4)
2024-09-07 11:38:22 +08:00
openeuler-ci-bot
767ba7b9d8
!56 Include pkgconf file
From: @SuperSix173 
Reviewed-by: @lyn1001 
Signed-off-by: @lyn1001
2024-02-22 11:10:10 +00:00
SuperSix173
53b43b07f5
Include pkgconf file
Signed-off-by: SuperSix173 <liuchao173@huawei.com>
2024-02-21 09:13:52 +00:00
openeuler-ci-bot
c674661db4
!54 Init support for ppc64le
From: @jiahua-yu 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2024-01-18 08:31:22 +00:00
jiahua.yu
8104e5fcf1 init support for arch ppc64le 2024-01-16 17:31:21 +08:00
2 changed files with 100316 additions and 16 deletions

100268
OpenBLAS-0.3.25-sw.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
Name: openblas
Version: 0.3.25
Release: 1
Release: 6
Summary: An optimized BLAS library based on GotoBLAS2 1.13 BSD version
License: BSD-3-Clause
URL: https://github.com/xianyi/OpenBLAS/
@ -10,7 +10,8 @@ Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}/openblas-
Patch0000: openblas-0.2.15-system_lapack.patch
Patch0001: openblas-0.2.5-libname.patch
Patch0002: openblas-0.3.11-tests.patch
Requires: %{name}-devel = %{version}-%{release}
Patch0003: OpenBLAS-0.3.25-sw.patch
BuildRequires: gcc gcc-gfortran perl-devel gcc-c++
%if %{with system_lapack}
@ -34,7 +35,7 @@ Obsoletes: openblas-serial64_ < %{version}-%{release} openblas-openmp64_ <
Obsoletes: openblas-threads64_ < %{version}-%{release} openblas-Rblas < %{version}-%{release}
Obsoletes: openblas-static < %{version}-%{release}
ExclusiveArch: x86_64 aarch64 loongarch64 riscv64
ExclusiveArch: x86_64 aarch64 loongarch64 riscv64 ppc64le sw_64
%description
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \
@ -57,6 +58,9 @@ cd OpenBLAS-%{version}
%endif
%patch0001 -p1 -b .libname
%patch0002 -p1 -b .tests
%ifarch sw_64
%patch0003 -p1
%endif
# Set source permissions
find -name \*.f -exec chmod 644 {} \;
@ -168,41 +172,44 @@ TARGET="TARGET=ARMV8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
%ifarch riscv64
TARGET="TARGET=RISCV64_GENERIC DYNAMIC_ARCH=0"
%endif
%ifarch ppc64le
TARGET="TARGET=POWER8 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 %{_smp_mflags} -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 %{_smp_mflags} -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 %{_smp_mflags} -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=0})&
make %{_smp_mflags} -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_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 %{_smp_mflags} -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 %{_smp_mflags} -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 CPP_THREAD_SAFETY_TEST=0)&
make %{_smp_mflags} -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_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_)&
make %{_smp_mflags} -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 %{_smp_mflags} -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_ CPP_THREAD_SAFETY_TEST=0)&
make %{_smp_mflags} -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
wait
%install
@ -213,7 +220,7 @@ TARGET="TARGET=RISCV64_GENERIC DYNAMIC_ARCH=0"
%else
TARGET=
%endif
make -C serial $TARGET 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 %{_smp_mflags} -C serial $TARGET 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
# Copy lapacke include files
%if %{with system_lapack} && %{lapacke}
@ -227,6 +234,12 @@ suffix="_loongson3r5"
%ifarch riscv64
suffix="_riscv64_generic"
%endif
%ifarch ppc64le
suffix="_power8"
%endif
%ifarch sw_64
suffix="_sw6"
%endif
slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a
if [[ "$suffix" != "" ]]; then
@ -339,8 +352,9 @@ ln -sf ${pname64_}.so lib%{name}p64_.so.0
# Get rid of generated CMake config
rm -rf %{buildroot}%{_libdir}/cmake
# Get rid of generated pkgconfig
rm -rf %{buildroot}%{_libdir}/pkgconfig
# Variables overrided above lead to include buildroot path,
# which we need to get rid of in the resulting pkgconf file
sed -i -e 's|%{buildroot}||' "%{buildroot}%{_libdir}/pkgconfig/%{name}.pc"
%post
/sbin/ldconfig
@ -355,6 +369,7 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
%{_libdir}/lib%{name}*.so.*
%{_libdir}/R/lib/libRblas.so
%{_libdir}/lib%{name}*.a
%{_libdir}/pkgconfig/%{name}.pc
%files devel
%{_includedir}/%{name}/
@ -365,6 +380,23 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
%{_libdir}/lib%{name}*64_.so
%changelog
* Tue Feb 25 2025 zhangshaoning <zhangshaoning@uniontech.com> - 0.3.25-6
- Add sw_64 support
* Mon Nov 11 2024 Kai Liu <kai.liu@windriver.com> - 0.3.25-5
- Don't run make tasks in background sub-shell, as this causes
severe issue. Use the _smp_mflags macro instead. See issue
IB3EV0 for more detail.
* Sat Sep 7 2024 Liu Chao <liuchao173@huawei.com> - 0.3.25-4
- delete the dependency on the devel package
* Wed Feb 21 2024 Liu Chao <liuchao173@huawei.com> - 0.3.25-3
- Include pkgconf file
* Tue Jan 16 2024 jiahua.yu <jiahua.yu@shingroup.cn> - 0.3.25-2
- init support for arch ppc64le
* Mon Jan 08 2024 xu_ping <707078654@qq.com> - 0.3.25-1
- Update to 0.3.25