Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Please unblock openblas 0.2.19-3. This version fixes an issue with threading on mips64el, that makes julia FTBFS randomly (#861486). The debdiff is attached. Thanks, unblock openblas/0.2.19-3 -- .''`. Sébastien Villemot : :' : Debian Developer `. `' http://sebastien.villemot.name `- GPG Key: 4096R/381A7594
diff -Nru openblas-0.2.19/debian/changelog openblas-0.2.19/debian/changelog
--- openblas-0.2.19/debian/changelog 2017-01-23 15:06:15.000000000 +0100
+++ openblas-0.2.19/debian/changelog 2017-05-06 15:22:06.000000000 +0200
@@ -1,3 +1,12 @@
+openblas (0.2.19-3) unstable; urgency=medium
+
+ * New patches that fix threading issue on mips64el.
+ + d/p/mips-implement-mb-and-wmb.patch
+ + d/p/mips-remove-incorrect-blas_lock-implementation.patch
+ Thanks to James Cowgill (Closes: #861486)
+
+ -- Sébastien Villemot <sebastien@debian.org> Sat, 06 May 2017 15:22:06 +0200
+
openblas (0.2.19-2) unstable; urgency=medium
* Also build libopenblas-dev on mips64el. (Closes: #852283)
diff -Nru openblas-0.2.19/debian/patches/mips-implement-mb-and-wmb.patch openblas-0.2.19/debian/patches/mips-implement-mb-and-wmb.patch
--- openblas-0.2.19/debian/patches/mips-implement-mb-and-wmb.patch 1970-01-01 01:00:00.000000000 +0100
+++ openblas-0.2.19/debian/patches/mips-implement-mb-and-wmb.patch 2017-05-06 14:45:23.000000000 +0200
@@ -0,0 +1,39 @@
+Description: mips: implement MB and WMB
+ The MIPS architecture has weak memory ordering and therefore requires
+ sutible memory barriers when doing lock free programming with multiple
+ threads (just like ARM does). This commit implements those barriers for
+ MIPS and MIPS64 using GCC bultins which is probably easiest way.
+Author: James Cowgill <james410@cowgill.org.uk>
+Origin: https://github.com/jcowgill/OpenBLAS/commit/67836c2ab48a5d6a8cd227358fa67e2a260eba34
+Forwarded: https://github.com/xianyi/OpenBLAS/pull/1178
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861486
+Reviewed-By: Sébastien Villemot <sebastien@debian.org>
+Last-Update: 2017-05-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/common_mips.h
++++ b/common_mips.h
+@@ -33,8 +33,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ #ifndef COMMON_MIPS
+ #define COMMON_MIPS
+
+-#define MB
+-#define WMB
++#define MB __sync_synchronize()
++#define WMB __sync_synchronize()
+
+ #define INLINE inline
+
+--- a/common_mips64.h
++++ b/common_mips64.h
+@@ -71,8 +71,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ #ifndef COMMON_MIPS64
+ #define COMMON_MIPS64
+
+-#define MB
+-#define WMB
++#define MB __sync_synchronize()
++#define WMB __sync_synchronize()
+
+ #define INLINE inline
+
diff -Nru openblas-0.2.19/debian/patches/mips-remove-incorrect-blas_lock-implementation.patch openblas-0.2.19/debian/patches/mips-remove-incorrect-blas_lock-implementation.patch
--- openblas-0.2.19/debian/patches/mips-remove-incorrect-blas_lock-implementation.patch 1970-01-01 01:00:00.000000000 +0100
+++ openblas-0.2.19/debian/patches/mips-remove-incorrect-blas_lock-implementation.patch 2017-05-06 14:45:19.000000000 +0200
@@ -0,0 +1,58 @@
+Description: mips: remove incorrect blas_lock implementations
+ MIPS 32-bit currently has an empty blas_lock implementation which is
+ worse than nothing at all. MIPS 64-bit does has a blas_lock
+ implementation but is broken. Remove them and fallback to the generic
+ version in common.h which should do the right thing on MIPS.
+Author: James Cowgill <james410@cowgill.org.uk>
+Origin: https://github.com/jcowgill/OpenBLAS/commit/de7875ca5df77306c5f7216959d3c15d82a0a259
+Forwarded: https://github.com/xianyi/OpenBLAS/pull/1178
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861486
+Reviewed-By: Sébastien Villemot <sebastien@debian.org>
+Last-Update: 2017-05-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/common_mips.h
++++ b/common_mips.h
+@@ -42,11 +42,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
+ #ifndef ASSEMBLER
+
+-static void INLINE blas_lock(volatile unsigned long *address){
+-
+-}
+-#define BLAS_LOCK_DEFINED
+-
+ static inline unsigned int rpcc(void){
+ unsigned long ret;
+
+--- a/common_mips64.h
++++ b/common_mips64.h
+@@ -78,28 +78,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+
+ #ifndef ASSEMBLER
+
+-static void INLINE blas_lock(volatile unsigned long *address){
+-
+- long int ret, val = 1;
+-
+- do {
+- while (*address) {YIELDING;};
+-
+- __asm__ __volatile__(
+- "1: ll %0, %3\n"
+- " ori %2, %0, 1\n"
+- " sc %2, %1\n"
+- " beqz %2, 1b\n"
+- " andi %2, %0, 1\n"
+- " sync\n"
+- : "=&r" (val), "=m" (address), "=&r" (ret)
+- : "m" (address)
+- : "memory");
+-
+- } while (ret);
+-}
+-#define BLAS_LOCK_DEFINED
+-
+ static inline unsigned int rpcc(void){
+ unsigned long ret;
+
diff -Nru openblas-0.2.19/debian/patches/series openblas-0.2.19/debian/patches/series
--- openblas-0.2.19/debian/patches/series 2016-09-06 12:08:30.000000000 +0200
+++ openblas-0.2.19/debian/patches/series 2017-05-06 14:38:45.000000000 +0200
@@ -5,3 +5,5 @@
shared-blas-lapack.patch
matgen-symbols-not-included.patch
order-files.patch
+mips-implement-mb-and-wmb.patch
+mips-remove-incorrect-blas_lock-implementation.patch
Attachment:
signature.asc
Description: PGP signature