[Gsll-devel] Compilation error in fsbv/libffi-unix.c

N J raphexion at gmail.com
Wed Mar 3 09:02:09 UTC 2010


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 at 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 at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel
>>
>
> --
> Sumant Oemrawsingh
> soemraws at xs4all.nl
>
> _______________________________________________
> Gsll-devel mailing list
> Gsll-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel
>




More information about the gsll-devel mailing list