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

Bug#987132: unblock: openblas/0.3.13+ds-3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear Release Team,

Please unblock package openblas.

The version currently in unstable fixes serious bug #986996.

This bug causes crashes (with SIGILL) on some arm64 processors, in particular
when running numpy.

The fix is a backport of an upstream commit (as documented in the DEP-3 headers
of the patch), and it consists only in adding a “volatile” qualifier, so the
risk of regression should be limited. The debdiff is attached.

Note that openblas is a key package.

unblock openblas/0.3.13+ds-3

Thanks,

--
⢀⣴⠾⠻⢶⣦⠀  Sébastien Villemot
⣾⠁⢠⠒⠀⣿⡁  Debian Developer
⢿⡄⠘⠷⠚⠋⠀  https://sebastien.villemot.name
⠈⠳⣄⠀⠀⠀⠀  https://www.debian.org
diff -Nru openblas-0.3.13+ds/debian/changelog openblas-0.3.13+ds/debian/changelog
--- openblas-0.3.13+ds/debian/changelog	2021-01-27 06:56:54.000000000 +0100
+++ openblas-0.3.13+ds/debian/changelog	2021-04-18 10:36:29.000000000 +0200
@@ -1,3 +1,10 @@
+openblas (0.3.13+ds-3) unstable; urgency=medium
+
+  * fix-arm64-sigill.patch: new patch, fixes SIGILL on arm64 with numpy.
+    Thanks to Thomas Viehmann <tv@beamnet.de> (Closes: #986996)
+
+ -- Sébastien Villemot <sebastien@debian.org>  Sun, 18 Apr 2021 10:36:29 +0200
+
 openblas (0.3.13+ds-2) unstable; urgency=medium
 
   [ Gianfranco Costamagna ]
diff -Nru openblas-0.3.13+ds/debian/patches/fix-arm64-sigill.patch openblas-0.3.13+ds/debian/patches/fix-arm64-sigill.patch
--- openblas-0.3.13+ds/debian/patches/fix-arm64-sigill.patch	1970-01-01 01:00:00.000000000 +0100
+++ openblas-0.3.13+ds/debian/patches/fix-arm64-sigill.patch	2021-04-18 10:34:32.000000000 +0200
@@ -0,0 +1,26 @@
+Description: Fix SIGILL on arm64 when HWCAP_CPUID is not set
+ This is a crashing bug (SIGILL) that also affects numpy on arm64. One 
+ line of processors affected are NVIDIA Tegra (Jetson devices).
+ .
+ On ARM64, openblas uses feature registers to detect the detailed 
+ processor arch. It queries HWCAP_CPUID to check if the feature registers 
+ are used. But due to a missing volatile declaration, gcc seems to break 
+ this guarding in optimization.
+Origin: upstream, https://github.com/xianyi/OpenBLAS/commit/6fe0f1fab9d6a7f46d71d37ebb210fbf56924fbc
+Bug-Debian: https://bugs.debian.org/986996
+Last-Update: 2021-04-18
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/driver/others/dynamic_arm64.c b/driver/others/dynamic_arm64.c
+index 4f1b12f2..37c0694b 100644
+--- a/driver/others/dynamic_arm64.c
++++ b/driver/others/dynamic_arm64.c
+@@ -68,7 +68,7 @@ extern void openblas_warning(int verbose, const char * msg);
+ #endif
+ 
+ #define get_cpu_ftr(id, var) ({					\
+-		__asm__("mrs %0, "#id : "=r" (var));		\
++		__asm__ __volatile__("mrs %0, "#id : "=r" (var));		\
+ 	})
+ 
+ static char *corename[] = {
diff -Nru openblas-0.3.13+ds/debian/patches/series openblas-0.3.13+ds/debian/patches/series
--- openblas-0.3.13+ds/debian/patches/series	2021-01-27 06:56:54.000000000 +0100
+++ openblas-0.3.13+ds/debian/patches/series	2021-04-18 10:29:14.000000000 +0200
@@ -6,3 +6,4 @@
 matgen-symbols-not-included.patch
 gensymbols-fix-detect-netlib.patch
 riscv64-supported.patch
+fix-arm64-sigill.patch

Reply to: