|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
%bcond_with system_lapack
|
|
|
|
|
# Version of bundled lapack
|
|
|
|
|
%global lapackver 3.7.0
|
|
|
|
|
%global lapackver 3.9.0
|
|
|
|
|
|
|
|
|
|
# DO NOT "CLEAN UP" OR MODIFY THIS SPEC FILE WITHOUT ASKING THE
|
|
|
|
|
# MAINTAINER FIRST!
|
|
|
|
@ -14,13 +14,12 @@
|
|
|
|
|
# "obsoleted" features are still kept in the spec.
|
|
|
|
|
|
|
|
|
|
Name: openblas
|
|
|
|
|
Version: 0.2.20
|
|
|
|
|
Release: 1%{?dist}
|
|
|
|
|
Version: 0.3.9
|
|
|
|
|
Release: 2%{?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
|
|
|
|
|
Source0: https://github.com/xianyi/OpenBLAS/archive/v%{version}/openblas-%{version}.tar.gz
|
|
|
|
|
# Use system lapack
|
|
|
|
|
Patch0: openblas-0.2.15-system_lapack.patch
|
|
|
|
|
# Drop extra p from threaded library name
|
|
|
|
@ -28,12 +27,16 @@ Patch1: openblas-0.2.5-libname.patch
|
|
|
|
|
# Don't use constructor priorities on too old architectures
|
|
|
|
|
Patch2: openblas-0.2.15-constructor.patch
|
|
|
|
|
# Supply the proper flags to the test makefile
|
|
|
|
|
Patch3: openblas-0.2.19-tests.patch
|
|
|
|
|
Patch3: openblas-0.3.7-tests.patch
|
|
|
|
|
|
|
|
|
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
|
|
|
|
# Fix C++ compatibility (BZ #1820131)
|
|
|
|
|
Patch4: https://github.com/xianyi/OpenBLAS/commit/ee2e758278b5d82b7242f505ea694f082ef65879.patch
|
|
|
|
|
|
|
|
|
|
BuildRequires: gcc
|
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
BuildRequires: gcc-gfortran
|
|
|
|
|
BuildRequires: perl-devel
|
|
|
|
|
BuildRequires: multilib-rpm-config
|
|
|
|
|
|
|
|
|
|
# Do we have execstack?
|
|
|
|
|
%if 0%{?rhel} == 7
|
|
|
|
@ -52,9 +55,9 @@ BuildRequires: /usr/bin/execstack
|
|
|
|
|
# LAPACK
|
|
|
|
|
%if %{with system_lapack}
|
|
|
|
|
%if 0%{?rhel} == 5 || 0%{?rhel} == 6
|
|
|
|
|
BuildRequires: lapack-devel%{?_isa}
|
|
|
|
|
BuildRequires: lapack-devel
|
|
|
|
|
%else
|
|
|
|
|
BuildRequires: lapack-static%{?_isa}
|
|
|
|
|
BuildRequires: lapack-static
|
|
|
|
|
%endif
|
|
|
|
|
# Do we have LAPACKE? (Needs at least lapack 3.4.0)
|
|
|
|
|
%if 0%{?fedora}
|
|
|
|
@ -70,15 +73,12 @@ Provides: bundled(lapack) = %{lapackver}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Build 64-bit interface binaries?
|
|
|
|
|
%if 0%{?rhel} == 5 || 0%{?rhel} == 6
|
|
|
|
|
# RPM too old to know __isa_bits in RHEL 5, and lapack64 doesn't exist in RHEL 6
|
|
|
|
|
%global build64 0
|
|
|
|
|
%else
|
|
|
|
|
%if 0%{?__isa_bits} == 64
|
|
|
|
|
%global build64 1
|
|
|
|
|
%bcond_without cpp_thread_check
|
|
|
|
|
%else
|
|
|
|
|
%global build64 0
|
|
|
|
|
%endif
|
|
|
|
|
%bcond_with cpp_thread_check
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if %{with system_lapack}
|
|
|
|
@ -101,97 +101,108 @@ Computational Science, ISCAS. http://www.rdcps.ac.cn
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
%package Rblas
|
|
|
|
|
Summary: A version of OpenBLAS for R to use as libRblas
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Summary: A version of OpenBLAS for R to use as libRblas
|
|
|
|
|
|
|
|
|
|
%description Rblas
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
%package serial
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description serial
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the sequential library compiled with a 32-bit
|
|
|
|
|
integer interface.
|
|
|
|
|
|
|
|
|
|
%package openmp
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description openmp
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with OpenMP support.
|
|
|
|
|
This package contains the library compiled with OpenMP support with
|
|
|
|
|
32-bit integer interface.
|
|
|
|
|
|
|
|
|
|
%package threads
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description threads
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with threading support.
|
|
|
|
|
This package contains the library compiled with threading support and
|
|
|
|
|
a 32-bit integer interface.
|
|
|
|
|
|
|
|
|
|
%if %build64
|
|
|
|
|
%package serial64
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description serial64
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the sequential library compiled with a 64-bit
|
|
|
|
|
interface.
|
|
|
|
|
integer interface.
|
|
|
|
|
|
|
|
|
|
%package openmp64
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description openmp64
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with OpenMP support and
|
|
|
|
|
64-bit interface.
|
|
|
|
|
64-bit integer interface.
|
|
|
|
|
|
|
|
|
|
%package threads64
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description threads64
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with threading support and
|
|
|
|
|
64-bit interface.
|
|
|
|
|
64-bit integer interface.
|
|
|
|
|
|
|
|
|
|
%package serial64_
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, serial version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description serial64_
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the sequential library compiled with a 64-bit
|
|
|
|
|
interface and a symbol name suffix.
|
|
|
|
|
integer interface and a symbol name suffix.
|
|
|
|
|
|
|
|
|
|
%package openmp64_
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description openmp64_
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with OpenMP support and
|
|
|
|
|
64-bit interface and a symbol name suffix.
|
|
|
|
|
64-bit integer interface and a symbol name suffix.
|
|
|
|
|
|
|
|
|
|
%package threads64_
|
|
|
|
|
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description threads64_
|
|
|
|
|
%{base_description}
|
|
|
|
|
|
|
|
|
|
This package contains the library compiled with threading support and
|
|
|
|
|
64-bit interface and a symbol name suffix.
|
|
|
|
|
64-bit integer interface and a symbol name suffix.
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%package devel
|
|
|
|
|
Summary: Development headers and libraries for OpenBLAS
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
Requires: %{name}-serial%{?_isa} = %{version}-%{release}
|
|
|
|
|
Requires: %{name}-openmp%{?_isa} = %{version}-%{release}
|
|
|
|
|
Requires: %{name}-threads%{?_isa} = %{version}-%{release}
|
|
|
|
|
%if %build64
|
|
|
|
@ -211,7 +222,6 @@ This package contains the development headers and libraries.
|
|
|
|
|
|
|
|
|
|
%package static
|
|
|
|
|
Summary: Static version of OpenBLAS
|
|
|
|
|
Group: Development/Libraries
|
|
|
|
|
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description static
|
|
|
|
@ -234,6 +244,7 @@ cd OpenBLAS-%{version}
|
|
|
|
|
%patch2 -p1 -b .constructor
|
|
|
|
|
%endif
|
|
|
|
|
%patch3 -p1 -b .tests
|
|
|
|
|
%patch4 -p1 -b .cplusplus
|
|
|
|
|
|
|
|
|
|
# Fix source permissions
|
|
|
|
|
find -name \*.f -exec chmod 644 {} \;
|
|
|
|
@ -345,7 +356,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
|
|
|
|
@ -357,44 +368,67 @@ 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 DYNAMIC_OLDER=1"
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if 0%{?rhel} == 5
|
|
|
|
|
# Gfortran too old to recognize -frecursive
|
|
|
|
|
FCOMMON="%{optflags}"
|
|
|
|
|
COMMON="%{optflags} -fPIC"
|
|
|
|
|
FCOMMON="%{optflags} -fPIC"
|
|
|
|
|
%else
|
|
|
|
|
FCOMMON="%{optflags} -frecursive"
|
|
|
|
|
COMMON="%{optflags} -fPIC"
|
|
|
|
|
FCOMMON="%{optflags} -fPIC -frecursive"
|
|
|
|
|
%endif
|
|
|
|
|
# Use Fedora linker flags
|
|
|
|
|
export LDFLAGS="%{__global_ldflags}"
|
|
|
|
|
|
|
|
|
|
make -C Rblas $TARGET USE_THREAD=0 USEOPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fPIC" $NMAX LIBPREFIX="libRblas" LIBSONAME="libRblas.so" $AVX $LAPACKE INTERFACE64=0
|
|
|
|
|
make -C Rblas $TARGET USE_THREAD=0 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
|
|
|
|
|
make -C serial $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fPIC" $NMAX LIBPREFIX="libopenblas" $AVX $LAPACKE INTERFACE64=0
|
|
|
|
|
make -C threaded $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fPIC" $NMAX LIBPREFIX="libopenblasp" $AVX $LAPACKE INTERFACE64=0
|
|
|
|
|
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 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
|
|
|
|
|
make -C openmp $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC -fopenmp" FCOMMON_OPT="$FCOMMON -fPIC" $NMAX LIBPREFIX="libopenblaso" $AVX $LAPACKE INTERFACE64=0 EXTRALIB="-fopenmp -lgfortran -lm"
|
|
|
|
|
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}
|
|
|
|
|
|
|
|
|
|
%if %build64
|
|
|
|
|
make -C serial64 $TARGET USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $NMAX LIBPREFIX="libopenblas64" $AVX $LAPACKE INTERFACE64=1
|
|
|
|
|
make -C threaded64 $TARGET USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $NMAX LIBPREFIX="libopenblasp64" $AVX $LAPACKE INTERFACE64=1
|
|
|
|
|
make -C openmp64 $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC -fopenmp" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $NMAX LIBPREFIX="libopenblaso64" $AVX $LAPACKE INTERFACE64=1 EXTRALIB="-fopenmp -lgfortran -lm"
|
|
|
|
|
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 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_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $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="%{optflags} -fPIC" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $NMAX LIBPREFIX="libopenblasp64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_
|
|
|
|
|
make -C openmp64_ $TARGET USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags} -fPIC -fopenmp" FCOMMON_OPT="$FCOMMON -fdefault-integer-8 -fPIC" $NMAX LIBPREFIX="libopenblaso64_" $AVX $LAPACKE INTERFACE64=1 SYMBOLSUFFIX=64_ EXTRALIB="-fopenmp -lgfortran -lm"
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
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 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=1
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
@ -407,25 +441,15 @@ make -C serial USE_THREAD=0 PREFIX=%{buildroot} OPENBLAS_LIBRARY_DIR=%{buildroot
|
|
|
|
|
cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Fix name of libraries
|
|
|
|
|
# Fix i686-x86_64 multilib difference
|
|
|
|
|
%multilib_fix_c_header --file %{_includedir}/openblas/openblas_config.h
|
|
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
%ifarch s390x
|
|
|
|
|
suffix="_zarch_generic"
|
|
|
|
|
%endif
|
|
|
|
|
slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
|
|
|
|
|
mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a
|
|
|
|
|
if [[ "$suffix" != "" ]]; then
|
|
|
|
@ -542,6 +566,9 @@ ln -sf ${pname64_}.so lib%{name}p64_.so.0
|
|
|
|
|
for lib in %{buildroot}%{_libdir}/libopenblas*.so; do
|
|
|
|
|
execstack -c $lib
|
|
|
|
|
done
|
|
|
|
|
for lib in %{buildroot}%{_libdir}/R/lib/libRblas*.so; do
|
|
|
|
|
execstack -c $lib
|
|
|
|
|
done
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Get rid of generated CMake config
|
|
|
|
@ -549,40 +576,30 @@ rm -rf %{buildroot}%{_libdir}/cmake
|
|
|
|
|
# Get rid of generated pkgconfig
|
|
|
|
|
rm -rf %{buildroot}%{_libdir}/pkgconfig
|
|
|
|
|
|
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets
|
|
|
|
|
|
|
|
|
|
%post openmp -p /sbin/ldconfig
|
|
|
|
|
%postun openmp -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets openmp
|
|
|
|
|
|
|
|
|
|
%post Rblas -p /sbin/ldconfig
|
|
|
|
|
%postun Rblas -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets Rblas
|
|
|
|
|
|
|
|
|
|
%post threads -p /sbin/ldconfig
|
|
|
|
|
%postun threads -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets threads
|
|
|
|
|
|
|
|
|
|
%if %build64
|
|
|
|
|
%post openmp64 -p /sbin/ldconfig
|
|
|
|
|
%postun openmp64 -p /sbin/ldconfig
|
|
|
|
|
%post openmp64_ -p /sbin/ldconfig
|
|
|
|
|
%postun openmp64_ -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets openmp64
|
|
|
|
|
%ldconfig_scriptlets openmp64_
|
|
|
|
|
|
|
|
|
|
%post serial64 -p /sbin/ldconfig
|
|
|
|
|
%postun serial64 -p /sbin/ldconfig
|
|
|
|
|
%post serial64_ -p /sbin/ldconfig
|
|
|
|
|
%postun serial64_ -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets serial64
|
|
|
|
|
%ldconfig_scriptlets serial64_
|
|
|
|
|
|
|
|
|
|
%post threads64 -p /sbin/ldconfig
|
|
|
|
|
%postun threads64 -p /sbin/ldconfig
|
|
|
|
|
%post threads64_ -p /sbin/ldconfig
|
|
|
|
|
%postun threads64_ -p /sbin/ldconfig
|
|
|
|
|
%ldconfig_scriptlets threads64
|
|
|
|
|
%ldconfig_scriptlets threads64_
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%clean
|
|
|
|
|
rm -rf %{buildroot}
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
%doc serial/Changelog.txt serial/GotoBLAS* serial/LICENSE
|
|
|
|
|
%license serial/LICENSE
|
|
|
|
|
%doc serial/Changelog.txt serial/GotoBLAS*
|
|
|
|
|
|
|
|
|
|
%files serial
|
|
|
|
|
%{_libdir}/lib%{name}-*.so
|
|
|
|
|
%{_libdir}/lib%{name}.so.*
|
|
|
|
|
|
|
|
|
@ -651,6 +668,118 @@ rm -rf %{buildroot}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
* Thu Apr 02 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.9-2
|
|
|
|
|
- Patch for BZ #1820131.
|
|
|
|
|
|
|
|
|
|
* Mon Mar 02 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.9-1
|
|
|
|
|
- Update to 0.3.9.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 11 2020 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.8-1
|
|
|
|
|
- Update to 0.3.8; dynamic runtime cpu detection on all architectures.
|
|
|
|
|
- Also updates bundled LAPACK to 3.9.0.
|
|
|
|
|
|
|
|
|
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.7-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Wed Dec 11 2019 Dominik Mierzejewski <rpm@greysector.net> - 0.3.7-2
|
|
|
|
|
- enable C++ thread safety test where possible
|
|
|
|
|
|
|
|
|
|
* Mon Aug 12 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.7-1
|
|
|
|
|
- Update to 0.3.7.
|
|
|
|
|
|
|
|
|
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.6-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Tue Jul 02 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.6-2
|
|
|
|
|
- Rebuild since older build doesn't show up in updates system.
|
|
|
|
|
|
|
|
|
|
* Tue Apr 30 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.6-1
|
|
|
|
|
- Update to 0.3.6.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 26 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-5
|
|
|
|
|
- Even more assembly kernel patches.
|
|
|
|
|
|
|
|
|
|
* Mon Feb 25 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-4
|
|
|
|
|
- Another assembly kernel patch.
|
|
|
|
|
|
|
|
|
|
* Sun Feb 17 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-3
|
|
|
|
|
- Patch assembly kernels to satisfy gcc 9 demands.
|
|
|
|
|
|
|
|
|
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.5-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Mon Jan 07 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.5-1
|
|
|
|
|
- Update to 0.3.5, with dynamic CPU detection on aarch64.
|
|
|
|
|
|
|
|
|
|
* Fri Nov 09 2018 Nikola Forró <nforro@redhat.com> - 0.3.3-3
|
|
|
|
|
- Fix i686-x86_64 multilib difference.
|
|
|
|
|
- Get rid of executable stack in libRblas.so.
|
|
|
|
|
|
|
|
|
|
* Sat Sep 29 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.3-2
|
|
|
|
|
- Fix segfault (BZ #1634060).
|
|
|
|
|
|
|
|
|
|
* Sun Sep 09 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.3-1
|
|
|
|
|
- Update to 0.3.3.
|
|
|
|
|
|
|
|
|
|
* Wed Aug 29 2018 Dan Horák <dan[at]danny.cz> - 0.3.2-5
|
|
|
|
|
- Fix precision in generic target on s390x
|
|
|
|
|
|
|
|
|
|
* Fri Aug 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-4
|
|
|
|
|
- Patch to avoid threading issues.
|
|
|
|
|
|
|
|
|
|
* Fri Aug 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-3
|
|
|
|
|
- Add missing %%{optflags} to COMMON (see discussion in #1619074).
|
|
|
|
|
|
|
|
|
|
* Wed Aug 15 2018 Dan Horák <dan[at]danny.cz> - 0.3.2-2
|
|
|
|
|
- Explicitly set the target to generic on s390x to avoid surprises (#1615760)
|
|
|
|
|
|
|
|
|
|
* Thu Aug 02 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.2-1
|
|
|
|
|
- Update to 0.3.2.
|
|
|
|
|
|
|
|
|
|
* Sun Jul 22 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.1-3
|
|
|
|
|
- Fix crash with multiple instances (BZ #1605231).
|
|
|
|
|
|
|
|
|
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.1-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Jul 01 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.1-1
|
|
|
|
|
- Update to 0.3.1.
|
|
|
|
|
|
|
|
|
|
* Mon Jun 11 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.0-2
|
|
|
|
|
- Split sequential libraries from core package to openblas-serial.
|
|
|
|
|
|
|
|
|
|
* Thu May 24 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.3.0-1
|
|
|
|
|
- Update to 0.3.0.
|
|
|
|
|
|
|
|
|
|
* Thu Mar 22 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-10
|
|
|
|
|
- Disable CPU affinity unintentionally enabled upstream (BZ #1558091).
|
|
|
|
|
|
|
|
|
|
* Sun Mar 04 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-9
|
|
|
|
|
- Clean up obsolete conditionals for 64 bit builds in spec file.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 27 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-8
|
|
|
|
|
- Use %%__global_ldflags instead of %%build_ldflags that doesn't work on
|
|
|
|
|
all distributions.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 27 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-7
|
|
|
|
|
- Honor Fedora linker flags (BZ #1548750).
|
|
|
|
|
|
|
|
|
|
* Wed Feb 14 2018 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-6
|
|
|
|
|
- Drop arch-dependent buildrequires (BZ #1545201); no changes to package
|
|
|
|
|
(only affects packages custom built with --with system_lapack).
|
|
|
|
|
|
|
|
|
|
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.20-5
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Tue Jan 30 2018 Florian Weimer <fweimer@redhat.com> - 0.2.20-4
|
|
|
|
|
- Rebuild for GCC 8
|
|
|
|
|
|
|
|
|
|
* Thu Sep 14 2017 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-3
|
|
|
|
|
- Simplify spec, dropping extra lib arguments.
|
|
|
|
|
|
|
|
|
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.20-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Fri Jul 28 2017 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.20-1
|
|
|
|
|
- Update to 0.2.20.
|
|
|
|
|
|
|
|
|
|