Package: release.debian.org Severity: normal User: release.debian....@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 <t...@beamnet.de> (Closes: #986996) + + -- Sébastien Villemot <sebast...@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