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