[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#861962: unblock: openblas/0.2.19-3



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


Reply to: