diff --git a/README.md b/README.md index f0b0b853..fdf932b6 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,6 @@ https://github.com/sionescu/libfixposix - and its headers in order to compile. LibFixPOSIX can either be installed manually, for which there are instructions in the source code, or through distro repositories. -As of Debian 9.0 Stable, the libfixposix package uses code from 2011, -which is incompatible with the current IOlib and will cause a SEGFAULT -on load. Don't use it. - * Tests Some of the socket tests require an echo server, the default being one on the Internet. If you can't use that, set diff --git a/src/grovel/grovel.lisp b/src/grovel/grovel.lisp index 1c4751fb..4ffe0a45 100644 --- a/src/grovel/grovel.lisp +++ b/src/grovel/grovel.lisp @@ -278,6 +278,7 @@ int main(int argc, char**argv) { (defparameter *cxx* (fcase (:freebsd "clang++") + (:openbsd "eg++") ((or :cygwin (not (or :windows :freebsd))) "g++") ((and :windows (not :cygwin)) "c:/msys/1.0/bin/g++.exe"))) @@ -291,8 +292,9 @@ int main(int argc, char**argv) { (:darwin '("-I" "/opt/local/include/")) ;; FreeBSD non-base header files ;; DragonFly Dports install software in /usr/local + ;; OpenBSD install lfp in /usr/local/include ;; And what about pkgsrc? - ((or :freebsd :dragonfly) '("-I" "/usr/local/include/")) + ((or :freebsd :dragonfly :openbsd) '("-I" "/usr/local/include/")) (t '())))) ;;; FIXME: is there a better way to detect whether these flags diff --git a/src/sockets/conditions.lisp b/src/sockets/conditions.lisp index 2c98efea..edbfa374 100644 --- a/src/sockets/conditions.lisp +++ b/src/sockets/conditions.lisp @@ -57,6 +57,7 @@ (define-socket-error socket-network-down-error :enetdown) (define-socket-error socket-network-reset-error :enetreset) (define-socket-error socket-network-unreachable-error :enetunreach) +#-openbsd (define-socket-error socket-no-network-error :enonet) (define-socket-error socket-connection-aborted-error :econnaborted) (define-socket-error socket-connection-reset-error :econnreset) diff --git a/src/sockets/grovel.lisp b/src/sockets/grovel.lisp index 5c65bba4..263c1bd4 100644 --- a/src/sockets/grovel.lisp +++ b/src/sockets/grovel.lisp @@ -47,6 +47,7 @@ (:eprototype "EPROTOTYPE") (:enoprotoopt "ENOPROTOOPT") (:eremote "EREMOTE") + #-openbsd (:enolink "ENOLINK") (:epfnosupport "EPFNOSUPPORT") (:eafnosupport "EAFNOSUPPORT") diff --git a/src/syscalls/ffi-types-unix.lisp b/src/syscalls/ffi-types-unix.lisp index bd858177..6073d55d 100644 --- a/src/syscalls/ffi-types-unix.lisp +++ b/src/syscalls/ffi-types-unix.lisp @@ -71,12 +71,19 @@ (:eaddrnotavail "EADDRNOTAVAIL") (:eadv "EADV" :optional t) (:eafnosupport "EAFNOSUPPORT") + #+openbsd + (:eagain "EAGAIN") (:ealready "EALREADY") + #+openbsd + (:eauth "EAUTH" :optional t) (:ebade "EBADE" :optional t) (:ebadf "EBADF") (:ebadfd "EBADFD" :optional t) + #-openbsd (:ebadmsg "EBADMSG") (:ebadr "EBADR" :optional t) + #+openbsd + (:ebadrpc "EBADRPC" :optional t) (:ebadrqc "EBADRQC" :optional t) (:ebadslt "EBADSLT" :optional t) (:ebfont "EBFONT" :optional t) @@ -96,7 +103,12 @@ (:eexist "EEXIST") (:efault "EFAULT") (:efbig "EFBIG") + #+openbsd + (:eftype "FTYPE" :optional t) + #-openbsd (:ehostdown "EHOSTDOWN") + #+openbsd + (:ehostdown "EHOSTDOWN" :optional t) (:ehostunreach "EHOSTUNREACH") (:ehwpoison "EHWPOISON" :optional t) (:eidrm "EIDRM") @@ -105,6 +117,8 @@ (:eintr "EINTR") (:einval "EINVAL") (:eio "EIO") + #+openbsd + (:eipsec "EIPSEC" :optional t) (:eisconn "EISCONN") (:eisdir "EISDIR") (:eisnam "EISNAM" :optional t) @@ -115,6 +129,8 @@ (:el2nsync "EL2NSYNC" :optional t) (:el3hlt "EL3HLT" :optional t) (:el3rst "EL3RST" :optional t) + #+openbsd + (:elast "ELAST" :optional t) (:elibacc "ELIBACC" :optional t) (:elibbad "ELIBBAD" :optional t) (:elibexec "ELIBEXEC" :optional t) @@ -126,14 +142,19 @@ (:emfile "EMFILE") (:emlink "EMLINK") (:emsgsize "EMSGSIZE") + #-openbsd (:emultihop "EMULTIHOP") (:enametoolong "ENAMETOOLONG") (:enavail "ENAVAIL" :optional t) + #+openbsd + (:eneedauth "ENEEDAUTH" :optional t) (:enetdown "ENETDOWN") (:enetreset "ENETRESET") (:enetunreach "ENETUNREACH") (:enfile "ENFILE") (:enoano "ENOANO" :optional t) + #+openbsd + (:enoattr "ENOATTR" :optional t) (:enobufs "ENOBUFS") (:enocsi "ENOCSI" :optional t) (:enodata "ENODATA" :optional t) @@ -142,6 +163,7 @@ (:enoexec "ENOEXEC") (:enokey "ENOKEY" :optional t) (:enolck "ENOLCK") + #-openbsd (:enolink "ENOLINK") (:enomedium "ENOMEDIUM" :optional t) (:enomem "ENOMEM") @@ -170,6 +192,15 @@ (:eperm "EPERM") (:epfnosupport "EPFNOSUPPORT" :optional t) (:epipe "EPIPE") + #+openbsd + (:eproclim "EPROCLIM" :optional t) + #+openbsd + (:eprocunavail "EPROCUNAVAIL" :optional t) + #+openbsd + (:eprogmismatch "EPROGMISMATCH" :optional t) + #+openbsd + (:eprogunavail "EPROGUNAVAIL" :optional t) + #-openbsd (:eproto "EPROTO") (:eprotonosupport "EPROTONOSUPPORT") (:eprototype "EPROTOTYPE") @@ -180,7 +211,12 @@ (:erestart "ERESTART" :optional t) (:erfkill "ERFKILL" :optional t) (:erofs "EROFS") + #+openbsd + (:erpcmismatch "ERPCMISMATCH" :optional t) + #-openbsd (:eshutdown "ESHUTDOWN") + #+openbsd + (:eshutdown "ESHUTDOWN" :optional t) (:esocktnosupport "ESOCKTNOSUPPORT" :optional t) (:espipe "ESPIPE") (:esrch "ESRCH")