Compare commits

...

125 Commits
f21 ... master

Author SHA1 Message Date
Susi Lehtola
0dc13c877e Patch for C++ compatibility. 2020-04-02 14:00:31 +02:00
Susi Lehtola
99cb63155f Update to 0.3.9. 2020-03-02 06:00:45 +01:00
Susi Lehtola
f3b68ef59a ARMv7 still doesn't have runtime cpu detection. 2020-02-11 21:35:50 +01:00
Susi Lehtola
4d572b6aca No Z15 kernel appears to exist for now. 2020-02-11 03:09:46 +01:00
Susi Lehtola
7dd89ce67c Fix typo in s390x code. 2020-02-11 02:48:35 +01:00
Susi Lehtola
3358058639 Update to 0.3.8, featuring dynamic cpu detection on all architectures. 2020-02-11 02:38:00 +01:00
Fedora Release Engineering
46e517974f - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 20:12:03 +00:00
Dominik 'Rathann' Mierzejewski
ee852fd091 enable C++ thread safety test where applicable
See: https://github.com/xianyi/OpenBLAS/blob/develop/Makefile#L131
2019-12-13 14:33:25 +01:00
Dominik 'Rathann' Mierzejewski
ed0e4ed4e5 fix USEOPENMP/USE_OPENMP typo in Rblas make call 2019-12-11 14:19:08 +01:00
Susi Lehtola
5b3b53ac69 Update tests patch. 2019-08-12 11:33:02 +02:00
Susi Lehtola
a94fde6be8 Update to 0.3.7. 2019-08-12 11:13:10 +02:00
Fedora Release Engineering
e16a28cf6f - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 23:22:12 +00:00
Susi Lehtola
492f197de6 Bump spec 2019-07-02 14:33:39 +02:00
Susi Lehtola
64c2df1d85 Update to 0.3.6. 2019-04-30 12:00:26 +02:00
Susi Lehtola
4e591d8725 More patches 2019-02-26 01:11:21 +01:00
Susi Lehtola
ee6a88c55d Add another assembly kernel patch. 2019-02-25 10:18:57 +01:00
Susi Lehtola
03740aadce Fix patch level 2019-02-17 21:49:09 +01:00
Susi Lehtola
2a8a1574d7 Import patches from upstream to fix gcc 9 compatibility. 2019-02-17 21:36:32 +01:00
Fedora Release Engineering
2529d97e84 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 17:18:57 +00:00
Igor Gnatenko
19946032f9 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:23 +01:00
Igor Gnatenko
09825fb09a
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:40:34 +01:00
Susi Lehtola
c2e6ea0c69 No more suffix on aarch64 2019-01-07 16:41:20 +01:00
Susi Lehtola
aa1356a8e5 Fix typo 2019-01-07 16:10:20 +01:00
Susi Lehtola
53f8e436b9 Update to 0.3.5, enabling dynamic CPU detection on aarch64. 2019-01-07 16:09:51 +01:00
Nikola Forró
5ba251ab16 Fix i686-x86_64 multilib difference.
Get rid of executable stack in libRblas.so.
2018-11-09 13:02:51 +01:00
Susi Lehtola
2465d26793 Fix segfault. 2018-09-29 19:05:45 +02:00
Susi Lehtola
ebcadc8f7a Fix segfault. 2018-09-29 19:04:59 +02:00
Susi Lehtola
7838a94118 Update to 0.3.3. 2018-09-09 10:33:57 +02:00
Susi Lehtola
9fdb102afd Update to 0.3.3. 2018-09-09 10:26:33 +02:00
Dan Horák
1aae703b57 - Fix precision in generic target on s390x 2018-08-29 20:02:08 +02:00
Susi Lehtola
56e91ff6be Add patch to avoid threading issues. 2018-08-24 18:48:32 +02:00
Susi Lehtola
b24abed397 Fix second date typo... 2018-08-24 18:41:43 +02:00
Susi Lehtola
b921c4b456 Fix date typo. 2018-08-24 18:41:12 +02:00
Susi Lehtola
72915d5464 Add missing %{optflags}. 2018-08-24 18:40:04 +02:00
Dan Horák
1cd0139cf2 - Explicitly set the target to generic on s390x to avoid surprises (#1615760) 2018-08-15 09:21:30 +02:00
Susi Lehtola
bf5eb9904a Update patch. 2018-08-02 14:15:24 +02:00
Susi Lehtola
38b97aef71 Update to 0.3.2. 2018-08-02 14:07:57 +02:00
Susi Lehtola
3ede871da1 Only one underscore necessary. 2018-07-23 10:47:32 +02:00
Susi Lehtola
0e4914d7aa Fix build on s390x. 2018-07-23 09:21:48 +02:00
Susi Lehtola
a5bfa867a0 Fix crash with multiple instances. 2018-07-22 17:05:31 +02:00
Fedora Release Engineering
1f6eccf360 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 15:02:45 +00:00
Susi Lehtola
7647c49de0 Drop obsoleted patch. 2018-07-01 19:25:36 +02:00
Susi Lehtola
7b9322f323 Update to 0.3.1. 2018-07-01 19:14:18 +02:00
Susi Lehtola
624dbc2790 Split sequential libraries from base package to openblas-serial. 2018-06-11 17:37:06 +02:00
Susi Lehtola
b344534ab3 Fix build on ppc64le. 2018-06-02 00:35:38 +02:00
Susi Lehtola
dab62fddac Update to 0.3.0 2018-05-24 04:01:58 +02:00
Susi Lehtola
04dda99dcb Fix bogus date 2018-03-22 17:13:25 +01:00
Susi Lehtola
42355d300f Disable CPU affinity. 2018-03-22 16:29:34 +01:00
Susi Lehtola
37b74659ce Clean up obsolete 64 bit conditionals. 2018-03-04 22:28:09 +01:00
Susi Lehtola
df383771d4 build_ldflags doesn't work on anything older than F28. 2018-02-27 12:51:59 +01:00
Susi Lehtola
0b4debe861 Use Fedora LDFLAGS. 2018-02-27 12:10:18 +01:00
Susi Lehtola
27489e02d2 Drop arch-dependent buildrequires (doesn't affect binary packages). 2018-02-14 17:19:04 +01:00
Susi Lehtola
6b477963d3 Drop arch-dependent buildrequires (doesn't affect binary packages). 2018-02-14 17:18:02 +01:00
Igor Gnatenko
71f94f1cf8
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 07:23:42 +01:00
Igor Gnatenko
81bfc49af3 Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-13 23:57:33 +01:00
Fedora Release Engineering
e725c20b03 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-08 09:22:25 +00:00
Florian Weimer
7bd44c7285 Rebuild for GCC 8 2018-01-30 09:42:57 +01:00
Susi Lehtola
91b0b52364 Simplify spec. 2017-09-14 14:01:02 +02:00
Fedora Release Engineering
91f17b88d6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 04:29:20 +00:00
Susi Lehtola
5f1847d517 New try. 2017-07-30 21:09:03 +02:00
Susi Lehtola
356e5c2fee Remove installed pkgconfig file. 2017-07-30 07:32:33 +02:00
Susi Lehtola
209efbaefa Update to 0.2.20. 2017-07-29 03:53:39 +02:00
Fedora Release Engineering
5f810a91d1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 01:44:08 +00:00
Dan Horák
2a39523bc3 - add generic s390x support (#1442048) 2017-05-29 16:04:28 +02:00
Orion Poplawski
df7f8a1a6b Drop openblas-srpm-macros version requirement 2017-03-20 21:02:56 -06:00
Orion Poplawski
bdce7d2e6b Move openblas-srpm-macros to separate package 2017-03-20 16:12:59 -06:00
Orion Poplawski
c98c022805 Define %penblas_arches for dependent packages to use 2017-03-15 12:01:22 -06:00
Orion Poplawski
4cc1aa669a Drop %defattr() 2017-03-15 11:58:50 -06:00
Björn Esser
fe8187055b Fix-up patch 2017-02-13 22:49:31 +01:00
Björn Esser
33992f7d55 Upgrade Patch4 to hopefully fully fix the issues on PPC64LE 2017-02-13 22:42:17 +01:00
Björn Esser
a294c57f97 Add reference to RHBZ #1417385 2017-02-04 00:20:54 +01:00
Björn Esser
f97f559b11 Add Patch4 to fix register clobbers 2017-02-04 00:15:25 +01:00
Björn Esser
1090eb6240 Rebuilt for GCC-7 2017-01-28 10:35:21 +01:00
Tom Callaway
3659146952 fix path 2016-12-14 12:39:25 -05:00
Tom Callaway
eef2f9c73c new subpackage: Rblas, contains a copy of openblas that thinks it is Rblas 2016-12-14 11:57:17 -05:00
Susi Lehtola
4ca7446f53 Fix linkage of OpenMP libraries. 2016-11-03 17:42:35 +01:00
Susi Lehtola
9306dbb8ac Looks like I missed one necessary change. 2016-10-20 23:08:32 +02:00
Susi Lehtola
5f45f6cbd9 Address bug 1382916. 2016-10-19 04:46:26 +02:00
Susi Lehtola
c08fcb4a6c Try to fix build failure 2016-09-14 08:44:23 +02:00
Susi Lehtola
618c894cf5 Update patch. 2016-09-01 22:53:31 +02:00
Susi Lehtola
06906789de Update to 0.2.19. 2016-09-01 22:37:49 +02:00
Susi Lehtola
725a716f41 Looks like perl is needed to build openblas. 2016-08-18 05:26:32 +02:00
Susi Lehtola
cc204e71a5 Fix typo 2016-08-18 05:14:39 +02:00
Susi Lehtola
478b08a1be Fix the specfile. 2016-08-18 05:13:18 +02:00
Susi Lehtola
a98a66b135 Revert "aarch64 has execstack in Fedora, Minor spec cleanups"
This reverts commit a4cbd506081a600c2e0b3d7fc53712ad0c2f9a79.
2016-08-18 05:06:39 +02:00
Peter Robinson
a4cbd50608 aarch64 has execstack in Fedora, Minor spec cleanups 2016-07-14 04:01:48 +01:00
Susi Lehtola
eab45150c6 Forgot to bump release. 2016-07-13 21:37:57 +02:00
Susi Lehtola
d8d473e3b9 Add ppc64 and ppc64p7 archs. 2016-07-13 21:36:59 +02:00
Susi Lehtola
3384e09b85 Jeff Bastian's patch to build on aarch64. 2016-07-13 05:15:28 +02:00
Susi Lehtola
db7127b511 Fix garbled source URL. 2016-04-13 02:49:47 +02:00
Susi Lehtola
8c7e668b11 Update to 0.2.18. 2016-04-13 02:45:04 +02:00
Orion Poplawski
ddd7c05e07 Update to 0.2.17 2016-04-06 11:34:27 -06:00
Susi Lehtola
2691fb2ce9 Build deprecated LAPACK functions. 2016-03-18 19:27:41 +01:00
Susi Lehtola
25483414d9 Forgot to bump release. 2016-03-16 22:06:36 +01:00
Susi Lehtola
cadceb1ac5 Fix library suffix on ppc64le. 2016-03-16 21:59:21 +01:00
Susi Lehtola
9cbcb452aa Let's try if it works with fPIC. 2016-03-16 03:36:20 +01:00
Susi Lehtola
ad29f98b6d Let's try if it works with fPIC. 2016-03-16 03:29:41 +01:00
Susi Lehtola
2ef5f34624 Update to 0.2.16. 2016-03-16 02:49:41 +01:00
Fedora Release Engineering
8d9c22fb97 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 11:24:24 +00:00
Susi Lehtola
1b0177b465 Typo 2016-01-13 21:25:34 +01:00
Susi Lehtola
67bd963bb8 No -frecursive on el5. 2016-01-13 21:24:14 +01:00
Susi Lehtola
39aa839398 Update constructor priority patch 2016-01-13 21:15:11 +01:00
Susi Lehtola
bd39a7baf4 Need -fPIC too. 2016-01-13 05:46:17 +01:00
Susi Lehtola
02ddbf251b I guess I do need to expand this 2016-01-13 05:33:13 +01:00
Susi Lehtola
83523aa38e Need the -frecursive flag. 2016-01-13 05:14:11 +01:00
Susi Lehtola
d8da1eb2ce Need the -frecursive flag. 2016-01-13 04:58:05 +01:00
Susi Lehtola
f2466da443 Versionize lapack provide. Pull in patches to build in EPEL5 and EPEL7. 2016-01-12 20:30:18 +01:00
Orion Poplawski
0d5c1dbfb3 Drop %defattr() 2016-01-11 13:42:32 -07:00
Orion Poplawski
7a510bbf4b Allow conditional build with or without system lapack, default to without 2016-01-11 13:41:57 -07:00
Susi Lehtola
88af20abaa Here we go again 2015-12-23 23:57:57 +01:00
Susi Lehtola
f0085969ff Here we go again 2015-12-23 23:42:13 +01:00
Susi Lehtola
1ff7c75dd0 Here we go again 2015-12-23 23:24:00 +01:00
Susi Lehtola
be824ee9ca Here we go again 2015-12-23 23:00:34 +01:00
Susi Lehtola
aa0abff996 Suffix to library names, too. 2015-12-23 22:39:56 +01:00
Susi Lehtola
98a2f0ee3d Suffix on ppc. 2015-12-23 22:15:28 +01:00
Susi Lehtola
91708372d9 Yet another try. 2015-12-23 21:34:08 +01:00
Susi Lehtola
1a59cb36f4 Yet another try. 2015-12-23 21:09:06 +01:00
Susi Lehtola
c68c6ebb13 Would this help? 2015-12-23 20:21:37 +01:00
Susi Lehtola
6026e309fe Why doesn't the arm build succeed? 2015-12-15 03:51:26 +01:00
Susi Lehtola
3f17b8bb57 Why doesn't the arm build succeed? 2015-12-14 22:51:41 +01:00
Susi Lehtola
c6c3ecbe40 Add PREFIX. 2015-12-14 22:10:59 +01:00
Susi Lehtola
ff7102ebb3 Disable dynamic arch detection on arm and ppc archs. 2015-12-04 21:43:55 +01:00
Susi Lehtola
b8078ed7a0 Enable ppc64le, too. Build suffixed 64-bit libraries. 2015-12-04 20:08:59 +01:00
Susi Lehtola
edce2a926b Forgot to update TARGET directive. 2015-12-01 18:50:42 +01:00
Susi Lehtola
585569faed Add armv7hl support. 2015-12-01 18:36:14 +01:00
7 changed files with 721 additions and 110 deletions

11
.gitignore vendored
View File

@ -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

View 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). */

View 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

View 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

View 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 ::

View File

@ -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.

View File

@ -1 +1 @@
b1190f3d3471685f17cfd1ec1d252ac9 v0.2.15.tar.gz
SHA512 (openblas-0.3.9.tar.gz) = e34da25b3aaf959ec12826ac68c81e739e453d44f2dba28b15e57d7a827edc4d5f42988e9b6d98ac07999940be7b5876246cb3a980e590ae87f77f4c2f12f40a