gnu: sbcl: Disable SB-SIMD module.

SB-SIMD gets enabled only on x86_64 CPUs supporting AVX2 instructions,
and some x86_64 CPUs don't.

Fixes <https://issues.guix.gnu.org/56353>.
Reported by Wensheng Xie <xiewensheng@hotmail.com>.

* gnu/packages/lisp.scm (sbcl)[arguments]: Disable SB-SIMD in the 'build' and
  'build-doc' phases.
This commit is contained in:
Guillaume Le Vaillant 2022-07-03 10:08:47 +02:00
parent f89b581148
commit e0d2f8164e
No known key found for this signature in database
GPG key ID: 6BE8208ADF21FE3F

View file

@ -567,7 +567,12 @@ (define (quoted-path input path)
(assoc-ref outputs "out")) (assoc-ref outputs "out"))
"--dynamic-space-size=3072" "--dynamic-space-size=3072"
"--with-sb-core-compression" "--with-sb-core-compression"
"--with-sb-xref-for-internals"))) "--with-sb-xref-for-internals"
;; SB-SIMD will only be built on x86_64 CPUs supporting
;; AVX2 instructions. Some x86_64 CPUs don't, so for reproducibility
;; we disable it and we don't build its documentation (see the
;; 'build-doc' phase).
"--without-sb-simd")))
(add-after 'build 'build-shared-library (add-after 'build 'build-shared-library
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" "gcc") (setenv "CC" "gcc")
@ -577,15 +582,11 @@ (define (quoted-path input path)
(invoke "sh" "install.sh"))) (invoke "sh" "install.sh")))
(add-after 'build 'build-doc (add-after 'build 'build-doc
(lambda _ (lambda _
;; Building the documentation for SB-SIMD only works when SB-SIMD ;; Don't build the documentation for SB-SIMD as it is disabled in
;; is enabled, so far only on x86_64-linux. ;; the 'build' phase.
,@(match (%current-system) (substitute* "doc/manual/generate-texinfo.lisp"
("x86_64-linux" (("exclude '\\(\"asdf\"\\)")
'()) "exclude '(\"asdf\" \"sb-simd\")"))
(_
'((substitute* "doc/manual/generate-texinfo.lisp"
(("exclude '\\(\"asdf\"\\)")
"exclude '(\"asdf\" \"sb-simd\")")))))
(with-directory-excursion "doc/manual" (with-directory-excursion "doc/manual"
(and (invoke "make" "info") (and (invoke "make" "info")
(invoke "make" "dist"))))) (invoke "make" "dist")))))