Bug#978633: openblas: Please enabled support for riscv64

Aurelien Jarno aurel32 at debian.org
Tue Dec 29 12:44:44 GMT 2020


Source: openblas
Version: 0.3.13+ds-1
Severity: normal
Tags: patch
User: debian-riscv at 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
-------------- next part --------------
--- 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))


More information about the debian-science-maintainers mailing list