Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> writes: > 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")))
It would be marginally preferable to use '() and '("DYNAMIC_ARCH=1") here. Anyway, okay to push! Thanks, Mark