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