Compare commits
125 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0dc13c877e | ||
|
99cb63155f | ||
|
f3b68ef59a | ||
|
4d572b6aca | ||
|
7dd89ce67c | ||
|
3358058639 | ||
|
46e517974f | ||
|
ee852fd091 | ||
|
ed0e4ed4e5 | ||
|
5b3b53ac69 | ||
|
a94fde6be8 | ||
|
e16a28cf6f | ||
|
492f197de6 | ||
|
64c2df1d85 | ||
|
4e591d8725 | ||
|
ee6a88c55d | ||
|
03740aadce | ||
|
2a8a1574d7 | ||
|
2529d97e84 | ||
|
19946032f9 | ||
|
09825fb09a | ||
|
c2e6ea0c69 | ||
|
aa1356a8e5 | ||
|
53f8e436b9 | ||
|
5ba251ab16 | ||
|
2465d26793 | ||
|
ebcadc8f7a | ||
|
7838a94118 | ||
|
9fdb102afd | ||
|
1aae703b57 | ||
|
56e91ff6be | ||
|
b24abed397 | ||
|
b921c4b456 | ||
|
72915d5464 | ||
|
1cd0139cf2 | ||
|
bf5eb9904a | ||
|
38b97aef71 | ||
|
3ede871da1 | ||
|
0e4914d7aa | ||
|
a5bfa867a0 | ||
|
1f6eccf360 | ||
|
7647c49de0 | ||
|
7b9322f323 | ||
|
624dbc2790 | ||
|
b344534ab3 | ||
|
dab62fddac | ||
|
04dda99dcb | ||
|
42355d300f | ||
|
37b74659ce | ||
|
df383771d4 | ||
|
0b4debe861 | ||
|
27489e02d2 | ||
|
6b477963d3 | ||
|
71f94f1cf8 | ||
|
81bfc49af3 | ||
|
e725c20b03 | ||
|
7bd44c7285 | ||
|
91b0b52364 | ||
|
91f17b88d6 | ||
|
5f1847d517 | ||
|
356e5c2fee | ||
|
209efbaefa | ||
|
5f810a91d1 | ||
|
2a39523bc3 | ||
|
df7f8a1a6b | ||
|
bdce7d2e6b | ||
|
c98c022805 | ||
|
4cc1aa669a | ||
|
fe8187055b | ||
|
33992f7d55 | ||
|
a294c57f97 | ||
|
f97f559b11 | ||
|
1090eb6240 | ||
|
3659146952 | ||
|
eef2f9c73c | ||
|
4ca7446f53 | ||
|
9306dbb8ac | ||
|
5f45f6cbd9 | ||
|
c08fcb4a6c | ||
|
618c894cf5 | ||
|
06906789de | ||
|
725a716f41 | ||
|
cc204e71a5 | ||
|
478b08a1be | ||
|
a98a66b135 | ||
|
a4cbd50608 | ||
|
eab45150c6 | ||
|
d8d473e3b9 | ||
|
3384e09b85 | ||
|
db7127b511 | ||
|
8c7e668b11 | ||
|
ddd7c05e07 | ||
|
2691fb2ce9 | ||
|
25483414d9 | ||
|
cadceb1ac5 | ||
|
9cbcb452aa | ||
|
ad29f98b6d | ||
|
2ef5f34624 | ||
|
8d9c22fb97 | ||
|
1b0177b465 | ||
|
67bd963bb8 | ||
|
39aa839398 | ||
|
bd39a7baf4 | ||
|
02ddbf251b | ||
|
83523aa38e | ||
|
d8da1eb2ce | ||
|
f2466da443 | ||
|
0d5c1dbfb3 | ||
|
7a510bbf4b | ||
|
88af20abaa | ||
|
f0085969ff | ||
|
1ff7c75dd0 | ||
|
be824ee9ca | ||
|
aa0abff996 | ||
|
98a2f0ee3d | ||
|
91708372d9 | ||
|
1a59cb36f4 | ||
|
c68c6ebb13 | ||
|
6026e309fe | ||
|
3f17b8bb57 | ||
|
c6c3ecbe40 | ||
|
ff7102ebb3 | ||
|
b8078ed7a0 | ||
|
edce2a926b | ||
|
585569faed |
11
.gitignore
vendored
11
.gitignore
vendored
@ -8,3 +8,14 @@
|
||||
/v0.2.13.tar.gz
|
||||
/v0.2.14.tar.gz
|
||||
/v0.2.15.tar.gz
|
||||
/v0.2.16.tar.gz
|
||||
/openblas-0.2.17.tar.gz
|
||||
/v0.2.18.tar.gz
|
||||
/v0.2.19.tar.gz
|
||||
/v0.3.0.tar.gz
|
||||
/v0.3.1.tar.gz
|
||||
/openblas-0.3.2.tar.gz
|
||||
/openblas-0.3.6.tar.gz
|
||||
/openblas-0.3.7.tar.gz
|
||||
/openblas-0.3.8.tar.gz
|
||||
/openblas-0.3.9.tar.gz
|
||||
|
73
ee2e758278b5d82b7242f505ea694f082ef65879.patch
Normal file
73
ee2e758278b5d82b7242f505ea694f082ef65879.patch
Normal file
@ -0,0 +1,73 @@
|
||||
From ee2e758278b5d82b7242f505ea694f082ef65879 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
|
||||
Date: Fri, 13 Mar 2020 20:34:13 +0100
|
||||
Subject: [PATCH] Move declarations of lapack_complex_custom types outside the
|
||||
extern C
|
||||
|
||||
fixes #2510
|
||||
---
|
||||
lapack-netlib/LAPACKE/include/lapack.h | 44 ++++++++++++++------------
|
||||
1 file changed, 23 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/lapack-netlib/LAPACKE/include/lapack.h b/lapack-netlib/LAPACKE/include/lapack.h
|
||||
index 0a6226fe4..36e53ec24 100644
|
||||
--- a/lapack-netlib/LAPACKE/include/lapack.h
|
||||
+++ b/lapack-netlib/LAPACKE/include/lapack.h
|
||||
@@ -12,27 +12,6 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
-#ifdef __cplusplus
|
||||
-extern "C" {
|
||||
-#endif
|
||||
-
|
||||
-/*----------------------------------------------------------------------------*/
|
||||
-#ifndef lapack_int
|
||||
-#define lapack_int int
|
||||
-#endif
|
||||
-
|
||||
-#ifndef lapack_logical
|
||||
-#define lapack_logical lapack_int
|
||||
-#endif
|
||||
-
|
||||
-/* f2c, hence clapack and MacOS Accelerate, returns double instead of float
|
||||
- * for sdot, slange, clange, etc. */
|
||||
-#if defined(LAPACK_F2C)
|
||||
- typedef double lapack_float_return;
|
||||
-#else
|
||||
- typedef float lapack_float_return;
|
||||
-#endif
|
||||
-
|
||||
/* Complex types are structures equivalent to the
|
||||
* Fortran complex types COMPLEX(4) and COMPLEX(8).
|
||||
*
|
||||
@@ -88,6 +67,29 @@ extern "C" {
|
||||
|
||||
#endif /* LAPACK_COMPLEX_CUSTOM */
|
||||
|
||||
+
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
+
|
||||
+/*----------------------------------------------------------------------------*/
|
||||
+#ifndef lapack_int
|
||||
+#define lapack_int int
|
||||
+#endif
|
||||
+
|
||||
+#ifndef lapack_logical
|
||||
+#define lapack_logical lapack_int
|
||||
+#endif
|
||||
+
|
||||
+/* f2c, hence clapack and MacOS Accelerate, returns double instead of float
|
||||
+ * for sdot, slange, clange, etc. */
|
||||
+#if defined(LAPACK_F2C)
|
||||
+ typedef double lapack_float_return;
|
||||
+#else
|
||||
+ typedef float lapack_float_return;
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* Callback logical functions of one, two, or three arguments are used
|
||||
* to select eigenvalues to sort to the top left of the Schur form.
|
||||
* The value is selected if function returns TRUE (non-zero). */
|
19
openblas-0.2.15-constructor.patch
Normal file
19
openblas-0.2.15-constructor.patch
Normal file
@ -0,0 +1,19 @@
|
||||
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
|
18
openblas-0.2.19-tests.patch
Normal file
18
openblas-0.2.19-tests.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff -up OpenBLAS-0.2.19/Makefile.tests OpenBLAS-0.2.19/Makefile
|
||||
--- OpenBLAS-0.2.19/Makefile.tests 2016-09-01 05:58:42.000000000 +0200
|
||||
+++ OpenBLAS-0.2.19/Makefile 2016-09-01 22:52:27.092706000 +0200
|
||||
@@ -110,11 +110,11 @@ tests :
|
||||
ifndef 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
|
||||
|
42
openblas-0.3.7-tests.patch
Normal file
42
openblas-0.3.7-tests.patch
Normal 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 ::
|
666
openblas.spec
666
openblas.spec
@ -1,64 +1,95 @@
|
||||
%bcond_with system_lapack
|
||||
# Version of bundled lapack
|
||||
%global lapackver 3.9.0
|
||||
|
||||
# DO NOT "CLEAN UP" OR MODIFY THIS SPEC FILE WITHOUT ASKING THE
|
||||
# MAINTAINER FIRST!
|
||||
#
|
||||
# OpenBLAS is hand written assembler code and it has a limited number
|
||||
# of supported architectures. Don't enable any new architectures /
|
||||
# processors a) without checking that it is actually supported and b)
|
||||
# without modifying the target flags.
|
||||
#
|
||||
# The same spec is also used on the EPEL branches, meaninng that some
|
||||
# "obsoleted" features are still kept in the spec.
|
||||
|
||||
Name: openblas
|
||||
Version: 0.2.15
|
||||
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
|
||||
Patch1: openblas-0.2.5-libname.patch
|
||||
# Don't test link against functions in lapacke 3.5.0 if only 3.4.0 is available
|
||||
Patch2: openblas-0.2.10-lapacke.patch
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
# 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.3.7-tests.patch
|
||||
|
||||
# Fix C++ compatibility (BZ #1820131)
|
||||
Patch4: https://github.com/xianyi/OpenBLAS/commit/ee2e758278b5d82b7242f505ea694f082ef65879.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-gfortran
|
||||
# For execstack
|
||||
BuildRequires: /usr/bin/execstack
|
||||
# LAPACK
|
||||
%if 0%{?rhel} == 5 || 0%{?rhel} == 6
|
||||
BuildRequires: lapack-devel%{?_isa}
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: multilib-rpm-config
|
||||
|
||||
# Do we have execstack?
|
||||
%if 0%{?rhel} == 7
|
||||
%ifarch ppc64le aarch64
|
||||
%global execstack 0
|
||||
%else
|
||||
BuildRequires: lapack-static%{?_isa}
|
||||
%global execstack 1
|
||||
%endif
|
||||
%else
|
||||
%global execstack 1
|
||||
%endif
|
||||
%if %{execstack}
|
||||
BuildRequires: /usr/bin/execstack
|
||||
%endif
|
||||
|
||||
# Compability for old versions of GCC
|
||||
%if 0%{?rhel} == 5
|
||||
%global avxflag NO_AVX=1
|
||||
%global avx2flag NO_AVX2=1
|
||||
# LAPACK
|
||||
%if %{with system_lapack}
|
||||
%if 0%{?rhel} == 5 || 0%{?rhel} == 6
|
||||
BuildRequires: lapack-devel
|
||||
%else
|
||||
BuildRequires: lapack-static
|
||||
%endif
|
||||
%if 0%{?rhel} == 6
|
||||
%global avx2flag NO_AVX2=1
|
||||
%endif
|
||||
|
||||
# Do we have LAPACKE? (Needs at least lapack 3.4.0)
|
||||
%if 0%{?fedora} > 16
|
||||
%if 0%{?fedora}
|
||||
%global lapacke 1
|
||||
%else
|
||||
%global lapacke 0
|
||||
%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
|
||||
%else
|
||||
%global build64 0
|
||||
%endif
|
||||
# Use bundled LAPACK
|
||||
%global lapacke 1
|
||||
Provides: bundled(lapack) = %{lapackver}
|
||||
%endif
|
||||
|
||||
# Build 64-bit interface binaries?
|
||||
%if 0%{?__isa_bits} == 64
|
||||
%global build64 1
|
||||
%bcond_without cpp_thread_check
|
||||
%else
|
||||
%global build64 0
|
||||
%bcond_with cpp_thread_check
|
||||
%endif
|
||||
|
||||
%if %{with system_lapack}
|
||||
%if %build64
|
||||
BuildRequires: lapack64-static
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Upstream supports the package only on these architectures.
|
||||
# Runtime processor detection is not available on other archs.
|
||||
ExclusiveArch: x86_64 %{ix86}
|
||||
ExclusiveArch: %{openblas_arches}
|
||||
|
||||
%global base_description \
|
||||
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD \
|
||||
@ -69,68 +100,120 @@ Computational Science, ISCAS. http://www.rdcps.ac.cn
|
||||
%description
|
||||
%{base_description}
|
||||
|
||||
%package Rblas
|
||||
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
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description serial64_
|
||||
%{base_description}
|
||||
|
||||
This package contains the sequential library compiled with a 64-bit
|
||||
integer interface and a symbol name suffix.
|
||||
|
||||
%package openmp64_
|
||||
Summary: An optimized BLAS library based on GotoBLAS2, OpenMP version
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description openmp64_
|
||||
%{base_description}
|
||||
|
||||
This package contains the library compiled with OpenMP support and
|
||||
64-bit integer interface and a symbol name suffix.
|
||||
|
||||
%package threads64_
|
||||
Summary: An optimized BLAS library based on GotoBLAS2, pthreads version
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description threads64_
|
||||
%{base_description}
|
||||
|
||||
This package contains the library compiled with threading support and
|
||||
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
|
||||
Requires: %{name}-openmp64%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-threads64%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-serial64%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-openmp64_%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-threads64_%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-serial64_%{?_isa} = %{version}-%{release}
|
||||
%endif
|
||||
Requires: %{name}-srpm-macros
|
||||
|
||||
%description devel
|
||||
%{base_description}
|
||||
@ -139,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
|
||||
@ -147,32 +229,50 @@ Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
||||
|
||||
This package contains the static libraries.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
|
||||
# Untar source
|
||||
tar zxf %{SOURCE0}
|
||||
cd OpenBLAS-%{version}
|
||||
%if %{with system_lapack}
|
||||
%patch0 -p1 -b .system_lapack
|
||||
%patch1 -p1 -b .libname
|
||||
%if 0%{?fedora} > 0 && 0%{?fedora} < 21
|
||||
%patch2 -p1 -b .lapacke
|
||||
%endif
|
||||
%patch1 -p1 -b .libname
|
||||
%if 0%{?rhel} == 5
|
||||
%patch2 -p1 -b .constructor
|
||||
%endif
|
||||
%patch3 -p1 -b .tests
|
||||
%patch4 -p1 -b .cplusplus
|
||||
|
||||
# Fix source permissions
|
||||
find -name \*.f -exec chmod 644 {} \;
|
||||
|
||||
%if %{with system_lapack}
|
||||
# Get rid of bundled LAPACK sources
|
||||
rm -rf lapack-netlib
|
||||
%endif
|
||||
|
||||
# Make serial, threaded and OpenMP versions; as well as 64-bit versions
|
||||
# Also make an libRblas.so
|
||||
cd ..
|
||||
cp -ar OpenBLAS-%{version} openmp
|
||||
cp -ar OpenBLAS-%{version} threaded
|
||||
%if %build64
|
||||
cp -ar OpenBLAS-%{version} openmp64
|
||||
cp -ar OpenBLAS-%{version} threaded64
|
||||
cp -ar OpenBLAS-%{version} serial64
|
||||
for d in {serial,threaded,openmp}64{,_}; do
|
||||
cp -ar OpenBLAS-%{version} $d
|
||||
done
|
||||
%endif
|
||||
cp -ar OpenBLAS-%{version} Rblas
|
||||
mv OpenBLAS-%{version} serial
|
||||
|
||||
# Hackup Rblas Makefiles
|
||||
sed -i 's|.so.$(MAJOR_VERSION)|.so|g' Rblas/Makefile
|
||||
sed -i 's|.so.$(MAJOR_VERSION)|.so|g' Rblas/exports/Makefile
|
||||
sed -i 's|@ln -fs $(LIBSONAME) $(LIBPREFIX).so|#@ln -fs $(LIBSONAME) $(LIBPREFIX).so|g' Rblas/Makefile
|
||||
|
||||
%if %{with system_lapack}
|
||||
# Setup 32-bit interface LAPACK
|
||||
mkdir netliblapack
|
||||
cd netliblapack
|
||||
@ -240,165 +340,304 @@ cp -a %{_includedir}/lapacke .
|
||||
cd ..
|
||||
|
||||
# Copy in place
|
||||
for d in serial64 threaded64 openmp64; do
|
||||
for d in {serial,threaded,openmp}64{,_}; do
|
||||
cp -pr netliblapack64 $d/netliblapack
|
||||
done
|
||||
rm -rf netliblapack64
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%build
|
||||
%if %{lapacke}
|
||||
LAPACKE="NO_LAPACKE=0"
|
||||
%else
|
||||
%if !%{lapacke}
|
||||
LAPACKE="NO_LAPACKE=1"
|
||||
%endif
|
||||
|
||||
# Maximum possible amount of processors
|
||||
NMAX="NUM_THREADS=128"
|
||||
|
||||
make -C serial TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblas" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=0
|
||||
make -C threaded TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblasp" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=0
|
||||
%ifarch %{ix86} x86_64
|
||||
TARGET="TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
|
||||
# Compability for old versions of GCC
|
||||
%if 0%{?rhel} == 5
|
||||
export AVX="NO_AVX=1 NO_AVX2=1"
|
||||
%endif
|
||||
%if 0%{?rhel} == 6
|
||||
export AVX="NO_AVX2=1"
|
||||
%endif
|
||||
|
||||
%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=1 DYNAMIC_OLDER=1"
|
||||
%endif
|
||||
%ifarch ppc64p7
|
||||
TARGET="TARGET=POWER7 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
TARGET="TARGET=POWER8 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
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
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="%{optflags} -fPIC"
|
||||
%else
|
||||
COMMON="%{optflags} -fPIC"
|
||||
FCOMMON="%{optflags} -fPIC -frecursive"
|
||||
%endif
|
||||
# Use Fedora linker flags
|
||||
export LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
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
|
||||
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=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblaso" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=0
|
||||
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=CORE2 DYNAMIC_ARCH=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblas64" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=1
|
||||
make -C threaded64 TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblasp64" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=1
|
||||
make -C openmp64 TARGET=CORE2 DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=1 FC=gfortran CC=gcc COMMON_OPT="%{optflags}" $NMAX LIBPREFIX="libopenblaso64" %{?avxflag} %{?avx2flag} $LAPACKE INTERFACE64=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
|
||||
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 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
|
||||
rm -rf %{buildroot}
|
||||
# Install serial library and headers
|
||||
make -C serial USE_THREAD=0 OPENBLAS_LIBRARY_DIR=%{buildroot}%{_libdir} OPENBLAS_INCLUDE_DIR=%{buildroot}%{_includedir}/%name OPENBLAS_BINARY_DIR=%{buildroot}%{_bindir} OPENBLAS_CMAKE_DIR=%{buildroot}%{_libdir}/cmake install
|
||||
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
|
||||
|
||||
# Copy lapacke include files
|
||||
%if %{lapacke}
|
||||
%if %{with system_lapack} && %{lapacke}
|
||||
cp -a %{_includedir}/lapacke %{buildroot}%{_includedir}/%{name}
|
||||
%endif
|
||||
|
||||
# Fix name of static library
|
||||
slibname=`basename %{buildroot}%{_libdir}/libopenblas-*.so .so`
|
||||
# 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
|
||||
slibname=`basename %{buildroot}%{_libdir}/libopenblas${suffix}-*.so .so`
|
||||
mv %{buildroot}%{_libdir}/${slibname}.a %{buildroot}%{_libdir}/lib%{name}.a
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
sname=$(echo $slibname | sed "s|$suffix||g")
|
||||
mv %{buildroot}%{_libdir}/${slibname}.so %{buildroot}%{_libdir}/${sname}.so
|
||||
else
|
||||
sname=${slibname}
|
||||
fi
|
||||
|
||||
# Install the Rblas library
|
||||
mkdir -p %{buildroot}%{_libdir}/R/lib/
|
||||
install -p -m 755 Rblas/libRblas.so %{buildroot}%{_libdir}/R/lib/
|
||||
|
||||
# Install the OpenMP library
|
||||
olibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o|g"`
|
||||
install -D -p -m 755 openmp/${olibname}.so %{buildroot}%{_libdir}/${olibname}.so
|
||||
install -D -p -m 644 openmp/${olibname}.a %{buildroot}%{_libdir}/lib%{name}o.a
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
oname=$(echo $olibname | sed "s|$suffix||g")
|
||||
else
|
||||
oname=${olibname}
|
||||
fi
|
||||
install -D -p -m 755 openmp/${olibname}.so %{buildroot}%{_libdir}/${oname}.so
|
||||
|
||||
# Install the threaded library
|
||||
plibname=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p|g"`
|
||||
install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${plibname}.so
|
||||
install -D -p -m 644 threaded/${plibname}.a %{buildroot}%{_libdir}/lib%{name}p.a
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
pname=$(echo $plibname | sed "s|$suffix||g")
|
||||
else
|
||||
pname=${plibname}
|
||||
fi
|
||||
install -D -p -m 755 threaded/${plibname}.so %{buildroot}%{_libdir}/${pname}.so
|
||||
|
||||
# Install the 64-bit interface libraries
|
||||
%if %build64
|
||||
slibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64|g"`
|
||||
install -D -p -m 755 serial64/${slibname64}.so %{buildroot}%{_libdir}/${slibname64}.so
|
||||
install -D -p -m 644 serial64/${slibname64}.a %{buildroot}%{_libdir}/lib%{name}64.a
|
||||
slibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}64_|g"`
|
||||
install -D -p -m 644 serial64_/${slibname64_}.a %{buildroot}%{_libdir}/lib%{name}64_.a
|
||||
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
sname64=$(echo ${slibname64} | sed "s|$suffix||g")
|
||||
sname64_=$(echo ${slibname64_} | sed "s|$suffix||g")
|
||||
else
|
||||
sname64=${slibname64}
|
||||
sname64_=${slibname64_}
|
||||
fi
|
||||
install -D -p -m 755 serial64/${slibname64}.so %{buildroot}%{_libdir}/${sname64}.so
|
||||
install -D -p -m 755 serial64_/${slibname64_}.so %{buildroot}%{_libdir}/${sname64_}.so
|
||||
|
||||
olibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64|g"`
|
||||
install -D -p -m 755 openmp64/${olibname64}.so %{buildroot}%{_libdir}/${olibname64}.so
|
||||
install -D -p -m 644 openmp64/${olibname64}.a %{buildroot}%{_libdir}/lib%{name}o64.a
|
||||
olibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}o64_|g"`
|
||||
install -D -p -m 644 openmp64_/${olibname64_}.a %{buildroot}%{_libdir}/lib%{name}o64_.a
|
||||
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
oname64=$(echo ${olibname64} | sed "s|$suffix||g")
|
||||
oname64_=$(echo ${olibname64_} | sed "s|$suffix||g")
|
||||
else
|
||||
oname64=${olibname64}
|
||||
oname64_=${olibname64_}
|
||||
fi
|
||||
install -D -p -m 755 openmp64/${olibname64}.so %{buildroot}%{_libdir}/${oname64}.so
|
||||
install -D -p -m 755 openmp64_/${olibname64_}.so %{buildroot}%{_libdir}/${oname64_}.so
|
||||
|
||||
plibname64=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64|g"`
|
||||
install -D -p -m 755 threaded64/${plibname64}.so %{buildroot}%{_libdir}/${plibname64}.so
|
||||
install -D -p -m 644 threaded64/${plibname64}.a %{buildroot}%{_libdir}/lib%{name}p64.a
|
||||
%endif
|
||||
plibname64_=`echo ${slibname} | sed "s|lib%{name}|lib%{name}p64_|g"`
|
||||
install -D -p -m 644 threaded64_/${plibname64_}.a %{buildroot}%{_libdir}/lib%{name}p64_.a
|
||||
|
||||
# Fix source permissions (also applies to LAPACK)
|
||||
find -name \*.f -exec chmod 644 {} \;
|
||||
if [[ "$suffix" != "" ]]; then
|
||||
pname64=$(echo $plibname64 | sed "s|$suffix||g")
|
||||
pname64_=$(echo $plibname64_ | sed "s|$suffix||g")
|
||||
else
|
||||
pname64=${plibname64}
|
||||
pname64_=${plibname64_}
|
||||
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
|
||||
pushd %{buildroot}%{_libdir}
|
||||
# Serial libraries
|
||||
ln -sf ${slibname}.so lib%{name}.so
|
||||
ln -sf ${slibname}.so lib%{name}.so.0
|
||||
ln -sf ${sname}.so lib%{name}.so
|
||||
ln -sf ${sname}.so lib%{name}.so.0
|
||||
# OpenMP libraries
|
||||
ln -sf ${olibname}.so lib%{name}o.so
|
||||
ln -sf ${olibname}.so lib%{name}o.so.0
|
||||
ln -sf ${oname}.so lib%{name}o.so
|
||||
ln -sf ${oname}.so lib%{name}o.so.0
|
||||
# Threaded libraries
|
||||
ln -sf ${plibname}.so lib%{name}p.so
|
||||
ln -sf ${plibname}.so lib%{name}p.so.0
|
||||
ln -sf ${pname}.so lib%{name}p.so
|
||||
ln -sf ${pname}.so lib%{name}p.so.0
|
||||
|
||||
%if %build64
|
||||
# Serial libraries
|
||||
ln -sf ${slibname64}.so lib%{name}64.so
|
||||
ln -sf ${slibname64}.so lib%{name}64.so.0
|
||||
ln -sf ${sname64}.so lib%{name}64.so
|
||||
ln -sf ${sname64}.so lib%{name}64.so.0
|
||||
ln -sf ${sname64_}.so lib%{name}64_.so
|
||||
ln -sf ${sname64_}.so lib%{name}64_.so.0
|
||||
# OpenMP libraries
|
||||
ln -sf ${olibname64}.so lib%{name}o64.so
|
||||
ln -sf ${olibname64}.so lib%{name}o64.so.0
|
||||
ln -sf ${oname64}.so lib%{name}o64.so
|
||||
ln -sf ${oname64}.so lib%{name}o64.so.0
|
||||
ln -sf ${oname64_}.so lib%{name}o64_.so
|
||||
ln -sf ${oname64_}.so lib%{name}o64_.so.0
|
||||
# Threaded libraries
|
||||
ln -sf ${plibname64}.so lib%{name}p64.so
|
||||
ln -sf ${plibname64}.so lib%{name}p64.so.0
|
||||
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
|
||||
|
||||
%if %{execstack}
|
||||
# Get rid of executable stacks
|
||||
for lib in %{buildroot}%{_libdir}/libopenblas{,o,p}-*.so; do
|
||||
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
|
||||
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 threads -p /sbin/ldconfig
|
||||
%postun threads -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets Rblas
|
||||
|
||||
%ldconfig_scriptlets threads
|
||||
|
||||
%if %build64
|
||||
%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
|
||||
%ldconfig_scriptlets serial64
|
||||
%ldconfig_scriptlets serial64_
|
||||
|
||||
%post threads64 -p /sbin/ldconfig
|
||||
%postun threads64 -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets threads64
|
||||
%ldconfig_scriptlets threads64_
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%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.*
|
||||
|
||||
%files openmp
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}o-*.so
|
||||
%{_libdir}/lib%{name}o.so.*
|
||||
|
||||
%files threads
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}p-*.so
|
||||
%{_libdir}/lib%{name}p.so.*
|
||||
|
||||
%if %build64
|
||||
%files serial64
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}64-*.so
|
||||
%{_libdir}/lib%{name}64.so.*
|
||||
|
||||
%files openmp64
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}o64-*.so
|
||||
%{_libdir}/lib%{name}o64.so.*
|
||||
|
||||
%files threads64
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}p64-*.so
|
||||
%{_libdir}/lib%{name}p64.so.*
|
||||
|
||||
%files serial64_
|
||||
%{_libdir}/lib%{name}64_-*.so
|
||||
%{_libdir}/lib%{name}64_.so.*
|
||||
|
||||
%files openmp64_
|
||||
%{_libdir}/lib%{name}o64_-*.so
|
||||
%{_libdir}/lib%{name}o64_.so.*
|
||||
|
||||
%files threads64_
|
||||
%{_libdir}/lib%{name}p64_-*.so
|
||||
%{_libdir}/lib%{name}p64_.so.*
|
||||
%endif
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%{_includedir}/%{name}/
|
||||
%{_libdir}/lib%{name}.so
|
||||
%{_libdir}/lib%{name}o.so
|
||||
@ -407,10 +646,15 @@ rm -rf %{buildroot}
|
||||
%{_libdir}/lib%{name}64.so
|
||||
%{_libdir}/lib%{name}o64.so
|
||||
%{_libdir}/lib%{name}p64.so
|
||||
%{_libdir}/lib%{name}64_.so
|
||||
%{_libdir}/lib%{name}o64_.so
|
||||
%{_libdir}/lib%{name}p64_.so
|
||||
%endif
|
||||
|
||||
%files Rblas
|
||||
%{_libdir}/R/lib/libRblas.so
|
||||
|
||||
%files static
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/lib%{name}.a
|
||||
%{_libdir}/lib%{name}o.a
|
||||
%{_libdir}/lib%{name}p.a
|
||||
@ -418,9 +662,213 @@ rm -rf %{buildroot}
|
||||
%{_libdir}/lib%{name}64.a
|
||||
%{_libdir}/lib%{name}o64.a
|
||||
%{_libdir}/lib%{name}p64.a
|
||||
%{_libdir}/lib%{name}64_.a
|
||||
%{_libdir}/lib%{name}o64_.a
|
||||
%{_libdir}/lib%{name}p64_.a
|
||||
%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.
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.19-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Mon May 29 2017 Dan Horák <dan[at]danny.cz> - 0.2.19-11
|
||||
- add generic s390x support (#1442048)
|
||||
|
||||
* Mon Mar 20 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-10
|
||||
- Drop openblas-srpm-macros version requirement
|
||||
|
||||
* Mon Mar 20 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-9
|
||||
- Move openblas-srpm-macros to separate package
|
||||
|
||||
* Wed Mar 15 2017 Orion Poplawski <orion@cora.nwra.com> - 0.2.19-8
|
||||
- Define %%openblas_arches for dependent packages to use
|
||||
|
||||
* Mon Feb 13 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-7
|
||||
- Upgrade Patch4 to hopefully fully fix the issues on PPC64LE
|
||||
|
||||
* Fri Feb 03 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-6
|
||||
- Add Patch4 to fix register clobbers (BZ #1417385)
|
||||
|
||||
* Sat Jan 28 2017 Björn Esser <besser82@fedoraproject.org> - 0.2.19-5
|
||||
- Rebuilt for GCC-7
|
||||
|
||||
* Wed Dec 14 2016 Tom Callaway <spot@fedoraproject.org> - 0.2.19-4
|
||||
- build a copy of openblas that thinks it is Rblas
|
||||
There are no code changes, except for libname and soname, it is identical to libopenblas.so.0
|
||||
Unfortunately, while R itself is fine using a symlink from libopenblas.so.0 to libRblas.so
|
||||
the larger R ecosystem becomes unhappy in this scenario.
|
||||
|
||||
* Thu Nov 03 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-3
|
||||
- Fix linkage of OpenMP libraries (BZ #1391491).
|
||||
|
||||
* Thu Oct 20 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-2
|
||||
- Actually use 8-bit integers in 64-bit interfaces (BZ #1382916).
|
||||
|
||||
* Tue Oct 18 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.19-1
|
||||
- Update to 0.2.19.
|
||||
|
||||
* Wed Aug 17 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-5
|
||||
- Revert "minor spec cleanups" by Peter Robinson.
|
||||
|
||||
* Wed Jul 13 2016 Peter Robinson <pbrobinson@fedoraproject.org> 0.2.18-4
|
||||
- aarch64 has execstack in Fedora
|
||||
- Minor spec cleanups
|
||||
|
||||
* Wed Jul 13 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-3
|
||||
- Enable ppc64 and ppc64p7 architectures
|
||||
based on Dan Horák's patch (BZ #1356189).
|
||||
- Supply proper make flags to the tests.
|
||||
|
||||
* Tue Jul 12 2016 Jeff Bastian <jbastian@redhat.com> - 0.2.18-2
|
||||
- update for aarch64
|
||||
|
||||
* Tue Apr 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.18-1
|
||||
- Update to 0.2.18.
|
||||
|
||||
* Wed Apr 6 2016 Orion Poplawski <orion@cora.nwra.com> - 0.2.17-1
|
||||
- Update to 0.2.17
|
||||
|
||||
* Fri Mar 18 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-3
|
||||
- Include deprecated LAPACK functions.
|
||||
|
||||
* Wed Mar 16 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-2
|
||||
- Fix library suffix on ppc64le.
|
||||
|
||||
* Tue Mar 15 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.16-1
|
||||
- Update to 0.2.16.
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.15-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Tue Jan 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-5
|
||||
- Need to use -frecursive to make LAPACK thread safe.
|
||||
|
||||
* Tue Jan 12 2016 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-4
|
||||
- Add version to bundled lapack provide.
|
||||
|
||||
* Mon Jan 11 2016 Orion Poplawski <orion@cora.nwra.com> - 0.2.15-3
|
||||
- Allow conditional build with or without system lapack, default to without
|
||||
|
||||
* Tue Dec 01 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-2
|
||||
- Enable armv7hl and ppc64le architectures.
|
||||
- Build versions of the 64-bit libraries with an additional suffix
|
||||
(BZ #1287541).
|
||||
|
||||
* Wed Oct 28 2015 Susi Lehtola <jussilehtola@fedoraproject.org> - 0.2.15-1
|
||||
- Update to 0.2.15.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user