sionescu / iolib

Common Lisp I/O library
http://common-lisp.net/project/iolib/
MIT License
141 stars 31 forks source link

Function IOLIB/SYSCALLS:CMSG.SPACE is undefined. #53

Closed wpasieka closed 5 years ago

wpasieka commented 6 years ago

Here the backtrace points out to the grovel.lisp, where there is no cmsg.space function defined: https://github.com/sionescu/iolib/blob/master/src/sockets/grovel.lisp

But this function

(defcfun (cmsg.space "lfp_cmsg_space") size-t (length size-t))

is defined here, so it is strange, unless both problems are somehow correlated, otherwise this shall indicate an error to You each time. https://github.com/sionescu/iolib/blob/master/src/syscalls/ffi-functions-unix.lisp

I would appreciate You help

Kind Regards Adrian W Pasieka


"(with-foreign-pointer (buffer #.(isys:cmsg.space (isys:sizeof :int))/\" 14502; Error in KERNEL:%COERCE-TO-FUNCTION: the function IOLIB/SYSCALLS:CMSG.SPACE

(UNIX::SIGSEGV-HANDLER # 14480 # 14481 #.(SYSTEM:INT-SAP #x0806EA40)) 14482Source: 14483; File has been modified since compilation: 14484; target:code/signal.lisp 14485; Using form offset instead of character position. 14486(DEFINE-SIGNAL-HANDLER SIGSEGV-HANDLER "Segmentation Violation") 144870] 5 14488....... 14489[package iolib/multiplex]......................... 14490.................................................. 14491[package iolib/streams]........................... 14492.................................................. 14493[package iolib/sockets]; g++ -m32 -Wno-write-strings -I/usr/share/emacs/quicklisp/dists/quicklisp/software/iolib-v0.8.3/src/grovel/ -o /root/.cache/common-lisp/cmu-21c21cunicode-linux-x86/usr/share/emacs/quic\ klisp/dists/quicklisp/software/iolib-v0.8.3/src/sockets/grovel /root/.cache/common-lisp/cmu-21c21cunicode-linux-x86/usr/share/emacs/quicklisp/dists/quicklisp/software/iolib-v0.8.3/src/sockets/grovel.c 14494.; /root/.cache/common-lisp/cmu-21c21cunicode-linux-x86/usr/share/emacs/quicklisp/dists/quicklisp/software/iolib-v0.8.3/src/sockets/grovel /root/.cache/common-lisp/cmu-21c21cunicode-linux-x86/usr/share/em\ acs/quicklisp/dists/quicklisp/software/iolib-v0.8.3/src/sockets/grovel.grovel-tmp.lisp 14495.......................... 14496.................................................. 14497.................................................. 14498................; 14499 14500; Error: Read error at 18596: 14501; "(with-foreign-pointer (buffer #.(isys:cmsg.space (isys:sizeof :int))/\" 14502; Error in KERNEL:%COERCE-TO-FUNCTION: the function IOLIB/SYSCALLS:CMSG.SPACE is undefined. 14503; 14504.. 14505 14506Error in function LISP::FOP-EVAL-FOR-EFFECT: 14507 Attempt to load a file having a compile-time read error. 14508 [Condition of type SIMPLE-ERROR] 14509 1451

sionescu commented 6 years ago

Hi Adrian, I suppose this means you're using a version of Libfixposix that is too old. If you're using the one from the official Debian or Ubuntu repositories, you should uninstall it and use a more recent version. The source code contains a script named "install-repo.bash" that automatically configures my repository on your machine and installs libfixposix. If you run that as root you should get an up-to-date version. The other options is compiling from sources.

sionescu commented 6 years ago

Ok, I see you're using Ubuntu 64bit. The aforementioned script should work for you. Additionally I suggest you use SBCL or Clozure as Lisp compilers because I don't really support CMUCL any more.