From: Guillaume Le Vaillant <glv@posteo.net>
To: Guillaume Le Vaillant <glv@posteo.net>
Cc: guix-devel@gnu.org, Foo Chuan Wei <chuanwei.foo@hotmail.com>
Subject: Re: cl-gsll fails to load
Date: Fri, 10 Dec 2021 15:27:14 +0000 [thread overview]
Message-ID: <87fsr0h3mu.fsf@kitej> (raw)
In-Reply-To: <87k0gch8ml.fsf@kitej>
[-- Attachment #1.1: Type: text/plain, Size: 476 bytes --]
Could you try the attached patches and see if things work for you with
a command such as:
--8<---------------cut here---------------start------------->8---
guix shell -C sbcl sbcl-gsll gcc-toolchain -- ...
--8<---------------cut here---------------end--------------->8---
There may be a way to patch our CFFI package to fix the links to all the
GCC toolchain things, which would allow us to remove gcc-toolchain in
the command above, but it will probably not be super easy.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-cl-cffi-Fix-some-paths.patch --]
[-- Type: text/x-patch, Size: 2913 bytes --]
From 7613cc6c054bfc5dc66f657aeb2987a22c342b80 Mon Sep 17 00:00:00 2001
From: Guillaume Le Vaillant <glv@posteo.net>
Date: Fri, 10 Dec 2021 15:56:07 +0100
Subject: [PATCH 1/2] gnu: cl-cffi: Fix some paths.
CFFI can require pkg-config and a GCC toolchain at runtime.
This patch improves the use of the source cl-cffi package from a REPL, but
it's not perfect and using cl-cffi in an environment without explicitly adding
gcc-toolchain to it might not work.
* gnu/packages/lisp-xyz.scm (sbcl-cffi)[native-inputs]: Move pkg-config to ...
[inputs]: .. here.
[arguments]: Update 'fix-paths' phase.
---
gnu/packages/lisp-xyz.scm | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 635f8e48cb..9f06be28ee 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -2782,10 +2782,10 @@ (define-public sbcl-cffi
`(("alexandria" ,sbcl-alexandria)
("babel" ,sbcl-babel)
("libffi" ,libffi)
+ ("pkg-config" ,pkg-config)
("trivial-features" ,sbcl-trivial-features)))
(native-inputs
`(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("pkg-config" ,pkg-config)
("rt" ,sbcl-rt)))
(arguments
'(#:phases
@@ -2799,10 +2799,25 @@ (define-public sbcl-cffi
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libffi/libffi.lisp"
- (("libffi.so.7" all) (string-append
- (assoc-ref inputs "libffi")
- "/lib/" all)))
+ (("libffi.so.7" all)
+ (string-append (assoc-ref inputs "libffi") "/lib/" all)))
+ (substitute* "libffi/libffi-types.lisp"
+ (("\\(in-package #:cffi\\)" all)
+ (string-append all
+ "\n #+linux (cc-flags \"-I"
+ (assoc-ref inputs "libffi")
+ "/include/\")")))
+ (substitute* "grovel/grovel.lisp"
+ (("\"pkg-config\"")
+ (string-append "\"" (assoc-ref inputs "pkg-config")
+ "/bin/pkg-config\"")))
+ ;; Force use of (default-toolchain-parameters) which the fixed
+ ;; path to gcc.
(substitute* "toolchain/c-toolchain.lisp"
+ (("\\(clisp-toolchain-parameters\\)") "nil")
+ (("\\(ecl-toolchain-parameters\\)") "nil")
+ (("\\(mkcl-toolchain-parameters\\)") "nil")
+ (("\\(sbcl-toolchain-parameters\\)") "nil")
(("\"cc\"") (format #f "~S" (which "gcc"))))))
(add-after 'build 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
--
2.34.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-gnu-cl-gsll-Fix-more-paths.patch --]
[-- Type: text/x-patch, Size: 2387 bytes --]
From 8bdf4c2dac67a9f5baf0d0facef7bd8bef120e63 Mon Sep 17 00:00:00 2001
From: Guillaume Le Vaillant <glv@posteo.net>
Date: Fri, 10 Dec 2021 16:22:26 +0100
Subject: [PATCH 2/2] gnu: cl-gsll: Fix more paths.
* gnu/packages/lisp-xyz.scm (sbcl-gsll)[arguments]: Update 'fix-cffi-paths'
phase.
---
gnu/packages/lisp-xyz.scm | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 9f06be28ee..58d4b889f6 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -7989,11 +7989,28 @@ (define-public sbcl-gsll
(substitute* "init/init.lisp"
(("libgslcblas.so" all)
(string-append
- (assoc-ref inputs "gsl") "/lib/" all)))
- (substitute* "init/init.lisp"
+ (assoc-ref inputs "gsl") "/lib/" all))
(("libgsl.so" all)
(string-append
- (assoc-ref inputs "gsl") "/lib/" all))))))))
+ (assoc-ref inputs "gsl") "/lib/" all)))
+ (substitute* '("calculus/monte-carlo-structs.lisp"
+ "data/array-structs.lisp"
+ "eigensystems/eigen-struct.lisp"
+ "init/callback-struct.lisp"
+ "init/libgsl-unix.lisp"
+ "ordinary-differential-equations/ode-struct.lisp"
+ "physical-constants/cgsm.lisp"
+ "physical-constants/mksa.lisp"
+ "physical-constants/num.lisp"
+ "series-struct.lisp"
+ "solve-minimize-fit/solver-struct.lisp"
+ "special-functions/sf-result.lisp"
+ "test-unit/machine.lisp")
+ (("\\(in-package :gsl\\)" all)
+ (string-append all
+ "\n#+linux (cc-flags \"-I"
+ (assoc-ref inputs "gsl")
+ "/include/\")"))))))))
(synopsis "GNU Scientific Library for Lisp")
(description
"The GNU Scientific Library for Lisp (GSLL) allows the use of the
--
2.34.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]
prev parent reply other threads:[~2021-12-10 15:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-06 6:16 cl-gsll fails to load Foo Chuan Wei
2021-12-07 12:27 ` Guillaume Le Vaillant
2021-12-10 4:07 ` Foo Chuan Wei
2021-12-10 13:41 ` Guillaume Le Vaillant
2021-12-10 15:27 ` Guillaume Le Vaillant [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fsr0h3mu.fsf@kitej \
--to=glv@posteo.net \
--cc=chuanwei.foo@hotmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).