Source: openblas Version: 0.3.13+ds-1 Severity: normal Tags: patch User: debian-ri...@lists.debian.org Usertags: riscv64
Hi, openblas got support for riscv64 a few month ago. To enable support on riscv64, small changes are needed to the debian/rules and debian/control files, as well as a small fix for getarch.c that I have submitted upstream: https://github.com/xianyi/OpenBLAS/pull/3050 I have attached the whole patch needed to add support for riscv64 to this bug report. Would it be possible to include it in the next upload? Thanks, Aurelien
--- openblas-0.3.13+ds/debian/control 2020-12-17 12:51:33.000000000 +0000 +++ openblas-0.3.13+ds/debian/control 2020-12-28 11:08:31.000000000 +0000 @@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (= 13), gfortran, liblapack-dev (>= 3.9.0-3~), - liblapack64-dev (>= 3.9.0-3~) [amd64 arm64 ppc64el ppc64 kfreebsd-amd64 mips64el sparc64 s390x], + liblapack64-dev (>= 3.9.0-3~) [amd64 arm64 ppc64el ppc64 kfreebsd-amd64 mips64el riscv64 sparc64 s390x], Standards-Version: 4.5.1 Vcs-Browser: https://salsa.debian.org/science-team/openblas Vcs-Git: https://salsa.debian.org/science-team/openblas.git @@ -17,7 +17,7 @@ # 32-bit indexing version Package: libopenblas0 -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: metapackages Depends: ${misc:Depends}, @@ -38,7 +38,7 @@ "Building Optimized OpenBLAS Packages on your ARCH" in README.Debian Package: libopenblas0-pthread -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -63,7 +63,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=0 INTERFACE64=0 Package: libopenblas0-openmp -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -88,7 +88,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=1 INTERFACE64=0 Package: libopenblas0-serial -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -113,7 +113,7 @@ Configuration: USE_THREAD=0 USE_OPENMP=0 INTERFACE64=0 Package: libopenblas-base -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: oldlibs Depends: ${misc:Depends}, @@ -136,7 +136,7 @@ This is a transitional dummy package, which can be safely removed. Package: libopenblas-dev -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: metapackages Depends: libopenblas0 (= ${binary:Version}), @@ -157,7 +157,7 @@ needed for program development. Package: libopenblas-pthread-dev -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas0-pthread (= ${binary:Version}), @@ -181,7 +181,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=0 INTERFACE64=0 Package: libopenblas-openmp-dev -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas0-openmp (= ${binary:Version}), @@ -205,7 +205,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=1 INTERFACE64=0 Package: libopenblas-serial-dev -Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el sparc64 s390x +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas0-serial (= ${binary:Version}), @@ -231,7 +231,7 @@ # 64-bit indexing version Package: libopenblas64-0 -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: metapackages Depends: ${misc:Depends}, @@ -250,7 +250,7 @@ This metapackage provides a 64-bit indexing version. Package: libopenblas64-0-pthread -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -271,7 +271,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=0 INTERFACE64=1 Package: libopenblas64-0-openmp -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -292,7 +292,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=1 INTERFACE64=1 Package: libopenblas64-0-serial -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, @@ -313,7 +313,7 @@ Configuration: USE_THREAD=0 USE_OPENMP=0 INTERFACE64=1 Package: libopenblas64-dev -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: metapackages Depends: libopenblas64-0 (= ${binary:Version}), @@ -333,7 +333,7 @@ This metapackage provides a 64-bit indexing version. Package: libopenblas64-pthread-dev -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas64-0-pthread (= ${binary:Version}), @@ -354,7 +354,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=0 INTERFACE64=1 Package: libopenblas64-openmp-dev -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas64-0-openmp (= ${binary:Version}), @@ -375,7 +375,7 @@ Configuration: USE_THREAD=1 USE_OPENMP=1 INTERFACE64=1 Package: libopenblas64-serial-dev -Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el sparc64 s390x +Architecture: amd64 arm64 kfreebsd-amd64 ppc64 ppc64el mips64el riscv64 sparc64 s390x Multi-Arch: same Section: libdevel Depends: libopenblas64-0-serial (= ${binary:Version}), --- openblas-0.3.13+ds/debian/patches/riscv64-supported.patch 1970-01-01 00:00:00.000000000 +0000 +++ openblas-0.3.13+ds/debian/patches/riscv64-supported.patch 2020-12-28 11:08:44.000000000 +0000 @@ -0,0 +1,10 @@ +--- openblas-0.3.13+ds.orig/getarch.c ++++ openblas-0.3.13+ds/getarch.c +@@ -1375,6 +1375,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + + #ifdef __riscv + #include "cpuid_riscv64.c" ++#define OPENBLAS_SUPPORTED + #endif + + #ifdef __arm__ --- openblas-0.3.13+ds/debian/patches/series 2020-12-17 12:48:33.000000000 +0000 +++ openblas-0.3.13+ds/debian/patches/series 2020-12-28 11:08:44.000000000 +0000 @@ -5,3 +5,4 @@ shared-blas-lapack.patch matgen-symbols-not-included.patch gensymbols-fix-detect-netlib.patch +riscv64-supported.patch --- openblas-0.3.13+ds/debian/rules 2020-12-17 12:50:11.000000000 +0000 +++ openblas-0.3.13+ds/debian/rules 2020-12-28 11:08:44.000000000 +0000 @@ -43,6 +43,7 @@ # See https://buildd.debian.org/status/fetch.php?pkg=openblas&arch=ppc64&ver=0.3.6%2Bds-1&stamp=1562602383&raw=0 # POWER6 is the most generic arch that compiles on ppc64 TARGET_OPTION_ppc64 = TARGET=POWER6 +TARGET_OPTION_riscv64 = TARGET=RISCV64_GENERIC TARGET_OPTION_sparc64 = TARGET=SPARC TARGET_OPTION_s390x = TARGET=ZARCH_GENERIC GENERIC_OPTIONS += $(TARGET_OPTION_$(DEB_HOST_ARCH))