Hi Guix, it was suggested here[1] that DYNAMIC_ARCH does not work on MIPS, so the package has be built specifically for the CPU of the build host. Obviously, we lose substitutability in this case.
The attached patch is an attempt to disable DYNAMIC_ARCH when building on MIPS. (I'm not sure when %current-system is available, so I'm not sure if the unquoting is correct.) [1]: https://github.com/xianyi/OpenBLAS/issues/570
>From 0b1779915e4f75511281c01f2f346aa808b90c6d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> Date: Tue, 19 May 2015 16:10:25 +0200 Subject: [PATCH] gnu: openblas: Disable DYNAMIC_ARCH on MIPS. * gnu/packages/maths.scm (openblas)[arguments]: Do not pass DYNAMIC_ARCH when building for MIPS. Also make non-substitutable for MIPS. --- gnu/packages/maths.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index f27903c..8d21a82 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1037,7 +1037,11 @@ constant parts of it.") "0av3pd96j8rx5i65f652xv9wqfkaqn0w4ma1gvbyz73i6j2hi9db")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ;no "check" target + `(#:tests? #f ;no "check" target + ;; DYNAMIC_ARCH is not supported on MIPS. When it is disabled, + ;; OpenBLAS will tune itself to the build host, so we need to disable + ;; substitutions. + #:substitutable? ,(not (string-prefix? "mips" (%current-system))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "SHELL=bash" @@ -1045,7 +1049,10 @@ constant parts of it.") ;; Build the library for all supported CPUs. This allows ;; switching CPU targets at runtime with the environment variable ;; OPENBLAS_CORETYPE=<type>, where "type" is a supported CPU type. - "DYNAMIC_ARCH=1") + ;; Unfortunately, this is not supported on MIPS. + ,@(if (string-prefix? "mips" (%current-system)) + (list) + (list "DYNAMIC_ARCH=1"))) ;; no configure script #:phases (alist-delete 'configure %standard-phases))) (inputs -- 2.1.0