Haiku support for Nim (#8542)
* posix_other: Haiku now has spawn.h This is added per https://dev.haiku-os.org/ticket/13446 * posix_other: Add Haiku specific Dirent members * cpuinfo: Add an implementation for Haiku * distros: Add basic Haiku support * encodings: update Haiku support * fenv, math: Haiku now provides libm * times: Add Haiku struct members * ansi_c, osalloc: Add Haiku constants * threads: Add Haiku support * testament: Haiku uses LIBRARY_PATH * nim.cfg: Update Haiku support libnetwork should only be linked if network functions are used * threads: Haiku does not support -pthread switch * tworkingdir: Haiku's env is in /bin * posix_other: add SIGKILLTHR for Haiku * sockets: link with libnetwork on Haiku * coro: correct ucontext.h location http://pubs.opengroup.org/onlinepubs/009696699/basedefs/ucontext.h.html * coro: ucontext backend is not available on Haiku Haiku doesn't provide the <ucontext.h> header, as it was removed from POSIX * coro: fix setjmp backend The compiler does not allow statements after a noreturn function * nativesockets: Haiku doesn't support AI_V4MAPPED * system: hostOS can contains "haiku" * os: add support for Haiku's packagefs packagefs is read-only, but there are writable holes to the underlying file system as well * os: update constant for Haiku
This commit is contained in:
parent
feda366d86
commit
7ef268274f
19 changed files with 114 additions and 29 deletions
|
|
@ -10,7 +10,7 @@
|
|||
{.deadCodeElim: on.} # dce option deprecated
|
||||
|
||||
const
|
||||
hasSpawnH = not defined(haiku) # should exist for every Posix system nowadays
|
||||
hasSpawnH = true # should exist for every Posix system nowadays
|
||||
hasAioH = defined(linux)
|
||||
|
||||
when defined(linux) and not defined(android):
|
||||
|
|
@ -43,6 +43,9 @@ type
|
|||
|
||||
Dirent* {.importc: "struct dirent",
|
||||
header: "<dirent.h>", final, pure.} = object ## dirent_t struct
|
||||
when defined(haiku):
|
||||
d_dev*: Dev ## Device (not POSIX)
|
||||
d_pdev*: Dev ## Parent device (only for queries) (not POSIX)
|
||||
d_ino*: Ino ## File serial number.
|
||||
when defined(dragonfly):
|
||||
# DragonflyBSD doesn't have `d_reclen` field.
|
||||
|
|
@ -54,6 +57,9 @@ type
|
|||
## (not POSIX)
|
||||
when defined(linux) or defined(openbsd):
|
||||
d_off*: Off ## Not an offset. Value that ``telldir()`` would return.
|
||||
elif defined(haiku):
|
||||
d_pino*: Ino ## Parent inode (only for queries) (not POSIX)
|
||||
d_reclen*: cushort ## Length of this record. (not POSIX)
|
||||
|
||||
d_name*: array[0..255, char] ## Name of entry.
|
||||
|
||||
|
|
@ -599,6 +605,10 @@ else:
|
|||
MSG_NOSIGNAL* {.importc, header: "<sys/socket.h>".}: cint
|
||||
## No SIGPIPE generated when an attempt to send is made on a stream-oriented socket that is no longer connected.
|
||||
|
||||
when defined(haiku):
|
||||
const
|
||||
SIGKILLTHR* = 21 ## BeOS specific: Kill just the thread, not team
|
||||
|
||||
when hasSpawnH:
|
||||
when defined(linux):
|
||||
# better be safe than sorry; Linux has this flag, macosx doesn't, don't
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue