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

Dear Release Team,

Please unblock package openblas. The version in unstable fixes #923607 (FTBFS
when build host CPU is not detected).

Some bits of context:

OpenBLAS is an efficient implementation of BLAS (an API for numerical linear
algebra routines), that provides specialized kernels (with some assembly) for
different CPU micro-architectures.

On amd64, arm64 and i386, the selection of the kernel is done at runtime, after
detecting the CPU version (on other arches, the package is compiled with a
single kernel, compatible with the arch baseline).

It turns out that CPU detection is also done at build time, if the TARGET build
variable is not set, for initializing a few variables. This triggers an FTBFS
if the CPU is unknown to the build system.

The fix consist in building with TARGET=GENERIC (a dummy generic CPU
micro-archictecture). This also requires a small patch to make this works.

The debdiff is attached.

unblock openblas/0.3.5+ds-3

Thanks,

--
⢀⣴⠾⠻⢶⣦⠀  Sébastien Villemot
⣾⠁⢠⠒⠀⣿⡁  Debian Developer
⢿⡄⠘⠷⠚⠋⠀  http://sebastien.villemot.name
⠈⠳⣄⠀⠀⠀⠀  http://www.debian.org
diff -Nru openblas-0.3.5+ds/debian/changelog openblas-0.3.5+ds/debian/changelog
--- openblas-0.3.5+ds/debian/changelog  2019-02-09 10:38:22.000000000 +0100
+++ openblas-0.3.5+ds/debian/changelog  2019-03-11 10:18:39.000000000 +0100
@@ -1,3 +1,13 @@
+openblas (0.3.5+ds-3) unstable; urgency=medium
+
+  * Fix FTBFS when CPU of the build machine is not detected (amd64, arm64, 
i386)
+    - pass TARGET=GENERIC when building with DYNAMIC_ARCH=1
+    - target-generic.patch: new patch taken from upstream, makes the above
+      possible
+    (Closes: #923607)
+
+ -- Sébastien Villemot <sebast...@debian.org>  Mon, 11 Mar 2019 10:18:39 +0100
+
 openblas (0.3.5+ds-2) unstable; urgency=medium
 
   * skylakex-dgemm.patch: new patch, fixes DGEMM regression on SkylakeX.
diff -Nru openblas-0.3.5+ds/debian/patches/series 
openblas-0.3.5+ds/debian/patches/series
--- openblas-0.3.5+ds/debian/patches/series     2019-02-09 10:35:46.000000000 
+0100
+++ openblas-0.3.5+ds/debian/patches/series     2019-03-11 10:07:18.000000000 
+0100
@@ -6,3 +6,4 @@
 matgen-symbols-not-included.patch
 order-files.patch
 skylakex-dgemm.patch
+target-generic.patch
diff -Nru openblas-0.3.5+ds/debian/patches/target-generic.patch 
openblas-0.3.5+ds/debian/patches/target-generic.patch
--- openblas-0.3.5+ds/debian/patches/target-generic.patch       1970-01-01 
01:00:00.000000000 +0100
+++ openblas-0.3.5+ds/debian/patches/target-generic.patch       2019-03-11 
10:09:06.000000000 +0100
@@ -0,0 +1,20 @@
+Description: Make TARGET=GENERIC compatible with DYNAMIC_ARCH=1
+Origin: backport, 
https://github.com/xianyi/OpenBLAS/commit/5b95534afcc80d54f51bd766b617fd3f494ec65a
+Bug: https://github.com/xianyi/OpenBLAS/issues/2048
+Bug-Debian: https://bugs.debian.org/923607
+Last-Update: 2019-03-11
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/kernel/Makefile.L3 b/kernel/Makefile.L3
+index eafcfb1b..bf5fffe8 100644
+--- a/kernel/Makefile.L3
++++ b/kernel/Makefile.L3
+@@ -24,7 +24,7 @@ ifeq ($(TARGET), LOONGSON3B)
+ USE_TRMM = 1
+ endif
+ 
+-ifeq ($(TARGET), GENERIC)
++ifeq ($(CORE), GENERIC)
+ USE_TRMM = 1
+ endif
+ 
diff -Nru openblas-0.3.5+ds/debian/rules openblas-0.3.5+ds/debian/rules
--- openblas-0.3.5+ds/debian/rules      2018-12-07 15:31:18.000000000 +0100
+++ openblas-0.3.5+ds/debian/rules      2019-03-04 15:11:28.000000000 +0100
@@ -11,10 +11,11 @@
 # Build generic package with hardcoded max number of threads of 64
 GENERIC_OPTIONS := NUM_THREADS=64
 
-# On x86 archs, enable dynamic arch selection
+# On x86 and arm64 archs, enable dynamic arch selection
+# TARGET=GENERIC is needed to avoid FTBFS when CPU detectin fails (see #923607)
 ENABLE_DYNAMIC_ARCHS := amd64 arm64 i386 kfreebsd-amd64 kfreebsd-i386
 ifneq (,$(findstring $(DEB_HOST_ARCH),$(ENABLE_DYNAMIC_ARCHS)))
-       GENERIC_OPTIONS += DYNAMIC_ARCH=1 DYNAMIC_OLDER=1
+       GENERIC_OPTIONS += DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 TARGET=GENERIC
 endif
 
 # For other archs, there is no dynamic arch selection. To avoid selecting a

Reply via email to