I've used 10.5, which has the cc-flags grovel form that N J complained about. I haven't tried the newer SBCLs so I don't know if your problem is related.
On Wed, Mar 3, 2010 at 10:25 AM, Mirko Vukovic mirko.vukovic@gmail.com wrote:
On Wed, Mar 3, 2010 at 9:14 AM, Liam Healy lhealy@common-lisp.net wrote:
You need a newer version of CFFI.
Is CFFI version .10.5 enough, or is the latest snaphot required? I ask because sbcl 1.0.35,36 would not load the gsl libraries.
Thanks,
Mirko
On Wed, Mar 3, 2010 at 4:02 AM, N J raphexion@gmail.com wrote:
Hi,
Thanks for the help!
When I run pkg-config --cflags libffi I get -I/usr/lib64/libffi-3.0.9/include
So I edited my libffi-unix.lisp file as follows (I tried to imitate the +darwin approch): #+linux (cc-flags "-I/usr/lib64/libffi-3.0.9/include/")
Doing this it compiled better but then I got this:
; /home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/ cffi/grovel/asdf.fasl written ; compilation finished in 0:00:00 ; registering #<SYSTEM :FSBV {100339C6A1}> as FSBV ; registering #<SYSTEM GSLL {1004A02BA1}> as GSLL ; loading system definition from ; /usr/share/common-lisp/systems/cl-utilities.asd into #<PACKAGE "ASDF0"> ; registering #<SYSTEM CL-UTILITIES {1004FBFEE1}> as CL-UTILITIES ; loading system definition from ; /usr/share/common-lisp/systems/trivial-garbage.asd into #<PACKAGE "ASDF0"> ; registering #<SYSTEM TRIVIAL-GARBAGE {1002F4D441}> as TRIVIAL-GARBAGE ; registering #<SYSTEM TRIVIAL-GARBAGE-TESTS {10031EABB1}> as ; TRIVIAL-GARBAGE-TESTS ; loading system definition from /usr/share/common-lisp/systems/grid.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM GRID {1002873B01}> as GRID ; loading system definition from /usr/share/common-lisp/systems/c-array.asd ; into #<PACKAGE "ASDF0"> ; registering #<SYSTEM C-ARRAY {1002D72B21}> as C-ARRAY ; compiling file "/usr/share/common-lisp/source/fsbv/init.lisp" (written 01 MAR 2010 11:56:07 PM): ; compiling (IN-PACKAGE :COMMON-LISP-USER) ; compiling (DEFPACKAGE :FOREIGN-STRUCTURES-BY-VALUE ...) ; compiling (CFFI:LOAD-FOREIGN-LIBRARY "libffi.so") ; compiling (PUSHNEW :FSBV ...)
; /home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/ fsbv/init.fasl written ; compilation finished in 0:00:00
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING { 10023F6A01}>: Unknown Grovel syntax: CFFI-GROVEL::CC-FLAGS
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name): 0: [TRY-RECOMPILING] Try recompiling libffi 1: [RETRY ] Retry performing #<ASDF:COMPILE-OP NIL {1004ABF331}> on #<CFFI-GROVEL:GROVEL-FILE "libffi" {100284E171}>. 2: [ACCEPT ] Continue, treating #<ASDF:COMPILE-OP NIL {1004ABF331}> on #<CFFI-GROVEL:GROVEL-FILE "libffi" {100284E171}> as having been successful. 3: [ABORT ] Exit debugger, returning to top level.
((SB-PCL::FAST-METHOD CFFI-GROVEL::%PROCESS-GROVEL-FORM (T T T)) #<unavailable argument> #<unavailable argument> CFFI-GROVEL::CC-FLAGS #<unavailable argument> #<unavailable argument>)
Maybe I should have modified my file differently.
I also tried the symlink approch cd /src/include ln -s /usr/lib64/libffi-3.0.9/include/ffi.h ffi.h ln -s /usr/lib64/libffi-3.0.9/include/ffitarget.h ffitarget.h
and I seem to work; I got:
; compiling (DEFCONSTANT +CGSM-BOHR-RADIUS+ ...) ; compiling (DEFCONSTANT +CGSM-NEWTON+ ...) ; compiling (DEFCONSTANT +CGSM-DYNE+ ...) ; compiling (DEFCONSTANT +CGSM-JOULE+ ...) ; compiling (DEFCONSTANT +CGSM-ERG+ ...) ; compiling (DEFCONSTANT +CGSM-STEFAN-BOLTZMANN-CONSTANT+ ...) ; compiling (DEFCONSTANT +CGSM-THOMSON-CROSS-SECTION+ ...)
; /home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/gsll/physical-constants/cgsm.fasl written ; compilation finished in 0:00:00 ; compiling file "/usr/share/common-lisp/source/gsll/physical-constants/export.lisp" (written 01 MAR 2010 11:53:10 PM): ; compiling (IN-PACKAGE :GSL) ; compiling (EXPORT (QUOTE #))
; /home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/gsll/physical-constants/export.fasl written ; compilation finished in 0:00:00 ; ; compilation unit finished ; caught 1 STYLE-WARNING condition ; printed 41 notes NIL
Thanks for the help, NIK
On Tue, Mar 2, 2010 at 10:05 AM, Sumant Oemrawsingh soemraws@xs4all.nl wrote:
Hi,
Run pkg-config --cflags libffi and behold that ffi.h is probably in some non-standard location like /usr/lib64/libffi-3.0.8/include. You can either edit the source libffi-unix.lisp or symlink to a standard location like /usr/include.
As I understand, this is a problem due to upstream, not with your distro.
Hope it helps, Sumant
On Mon, Mar 01, 2010 at 11:57:25PM +0100, N J wrote:
Hey,
When I run (asdf:operate 'asdf:load-op :gsll) in sbcl
I get:
; loading system definition from /usr/share/common-lisp/systems/c-array.asd ; into #<PACKAGE "ASDF0"> ; registering #<SYSTEM C-ARRAY {10026C51D1}> as C-ARRAY ; compiling file "/usr/share/common-lisp/source/fsbv/init.lisp" (written 01 MAR 2010 11:39:35 PM): ; compiling (IN-PACKAGE :COMMON-LISP-USER) ; compiling (DEFPACKAGE :FOREIGN-STRUCTURES-BY-VALUE ...) ; compiling (CFFI:LOAD-FOREIGN-LIBRARY "libffi.so") ; compiling (PUSHNEW :FSBV ...)
; /home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/init.fasl written ; compilation finished in 0:00:00 ; cc -m64 -fPIC -o
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING {10023F6A01}>: External process exited with code 1. Command was: "cc" "-m64" "-fPIC" "-o"
"/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix"
"/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c" Output was:
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:7:17: error: ffi.h: No such file or directory
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c: In function ‘main’:
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:40: error: ‘FFI_OK’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:40: error: (Each undeclared identifier is reported only once
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:40: error: for each function it appears in.)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:45: error: ‘FFI_BAD_TYPEDEF’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:50: error: ‘FFI_BAD_ABI’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:61: error: ‘FFI_DEFAULT_ABI’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:66: error: ‘FFI_SYSV’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:71: error: ‘FFI_UNIX64’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:79: error: ‘ffi_abi’ undeclared (first use in this function)
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:126: error: invalid application of ‘sizeof’ to incomplete type ‘struct _ffi_type’
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:126: warning: format ‘%i’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:131: error: dereferencing pointer to incomplete type
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:136: error: dereferencing pointer to incomplete type
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:141: error: dereferencing pointer to incomplete type
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:146: error: dereferencing pointer to incomplete type
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c: In function ‘print_double_for_lisp’:
/home/rpx/.fasls/sbcl-1.0.19-gentoo-linux-x86-64/usr/share/common-lisp/source/fsbv/libffi-unix.c:397: warning: incompatible implicit declaration of built-in function ‘memset’
My packages and gits are: git://repo.or.cz/gsll.git 4fef622be12cf318e015b2ba5aba6c63d4296f1e master
git://repo.or.cz/fsbv.git dd8025f51fd8272b725bd73bc0b1875bae2bcf5b master
cffi-0.10.5
Thank you guys for any help NIK
Gsll-devel mailing list Gsll-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel