some fixes for Haiku

This commit is contained in:
Araq 2013-09-01 17:29:29 +02:00
commit a95c0608b9
2 changed files with 50 additions and 45 deletions

View file

@ -67,7 +67,8 @@ hint[LineTooLong]=off
gpp.options.linker = "-ldl" gpp.options.linker = "-ldl"
clang.options.linker = "-ldl" clang.options.linker = "-ldl"
tcc.options.linker = "-ldl" tcc.options.linker = "-ldl"
@else: @end
@if bsd or haiku:
# BSD got posix_spawn only recently, so we deactivate it for osproc: # BSD got posix_spawn only recently, so we deactivate it for osproc:
define:useFork define:useFork
# at least NetBSD has problems with thread local storage: # at least NetBSD has problems with thread local storage:

View file

@ -30,7 +30,7 @@
from times import TTime from times import TTime
const const
hasSpawnH = true # should exist for every Posix system really nowadays hasSpawnH = not defined(haiku) # should exist for every Posix system nowadays
hasAioH = defined(linux) hasAioH = defined(linux)
when false: when false:
@ -842,48 +842,51 @@ var
FE_UPWARD* {.importc, header: "<fenv.h>".}: cint FE_UPWARD* {.importc, header: "<fenv.h>".}: cint
FE_DFL_ENV* {.importc, header: "<fenv.h>".}: cint FE_DFL_ENV* {.importc, header: "<fenv.h>".}: cint
MM_HARD* {.importc, header: "<fmtmsg.h>".}: cint when not defined(haiku):
## Source of the condition is hardware. var
MM_SOFT* {.importc, header: "<fmtmsg.h>".}: cint MM_HARD* {.importc, header: "<fmtmsg.h>".}: cint
## Source of the condition is software. ## Source of the condition is hardware.
MM_FIRM* {.importc, header: "<fmtmsg.h>".}: cint MM_SOFT* {.importc, header: "<fmtmsg.h>".}: cint
## Source of the condition is firmware. ## Source of the condition is software.
MM_APPL* {.importc, header: "<fmtmsg.h>".}: cint MM_FIRM* {.importc, header: "<fmtmsg.h>".}: cint
## Condition detected by application. ## Source of the condition is firmware.
MM_UTIL* {.importc, header: "<fmtmsg.h>".}: cint MM_APPL* {.importc, header: "<fmtmsg.h>".}: cint
## Condition detected by utility. ## Condition detected by application.
MM_OPSYS* {.importc, header: "<fmtmsg.h>".}: cint MM_UTIL* {.importc, header: "<fmtmsg.h>".}: cint
## Condition detected by operating system. ## Condition detected by utility.
MM_RECOVER* {.importc, header: "<fmtmsg.h>".}: cint MM_OPSYS* {.importc, header: "<fmtmsg.h>".}: cint
## Recoverable error. ## Condition detected by operating system.
MM_NRECOV* {.importc, header: "<fmtmsg.h>".}: cint MM_RECOVER* {.importc, header: "<fmtmsg.h>".}: cint
## Non-recoverable error. ## Recoverable error.
MM_HALT* {.importc, header: "<fmtmsg.h>".}: cint MM_NRECOV* {.importc, header: "<fmtmsg.h>".}: cint
## Error causing application to halt. ## Non-recoverable error.
MM_ERROR* {.importc, header: "<fmtmsg.h>".}: cint MM_HALT* {.importc, header: "<fmtmsg.h>".}: cint
## Application has encountered a non-fatal fault. ## Error causing application to halt.
MM_WARNING* {.importc, header: "<fmtmsg.h>".}: cint MM_ERROR* {.importc, header: "<fmtmsg.h>".}: cint
## Application has detected unusual non-error condition. ## Application has encountered a non-fatal fault.
MM_INFO* {.importc, header: "<fmtmsg.h>".}: cint MM_WARNING* {.importc, header: "<fmtmsg.h>".}: cint
## Informative message. ## Application has detected unusual non-error condition.
MM_NOSEV* {.importc, header: "<fmtmsg.h>".}: cint MM_INFO* {.importc, header: "<fmtmsg.h>".}: cint
## No severity level provided for the message. ## Informative message.
MM_PRINT* {.importc, header: "<fmtmsg.h>".}: cint MM_NOSEV* {.importc, header: "<fmtmsg.h>".}: cint
## Display message on standard error. ## No severity level provided for the message.
MM_CONSOLE* {.importc, header: "<fmtmsg.h>".}: cint MM_PRINT* {.importc, header: "<fmtmsg.h>".}: cint
## Display message on system console. ## Display message on standard error.
MM_CONSOLE* {.importc, header: "<fmtmsg.h>".}: cint
## Display message on system console.
MM_OK* {.importc, header: "<fmtmsg.h>".}: cint MM_OK* {.importc, header: "<fmtmsg.h>".}: cint
## The function succeeded. ## The function succeeded.
MM_NOTOK* {.importc, header: "<fmtmsg.h>".}: cint MM_NOTOK* {.importc, header: "<fmtmsg.h>".}: cint
## The function failed completely. ## The function failed completely.
MM_NOMSG* {.importc, header: "<fmtmsg.h>".}: cint MM_NOMSG* {.importc, header: "<fmtmsg.h>".}: cint
## The function was unable to generate a message on standard error, ## The function was unable to generate a message on standard error,
## but otherwise succeeded. ## but otherwise succeeded.
MM_NOCON* {.importc, header: "<fmtmsg.h>".}: cint MM_NOCON* {.importc, header: "<fmtmsg.h>".}: cint
## The function was unable to generate a console message, but ## The function was unable to generate a console message, but
## otherwise succeeded. ## otherwise succeeded.
var
FNM_NOMATCH* {.importc, header: "<fnmatch.h>".}: cint FNM_NOMATCH* {.importc, header: "<fnmatch.h>".}: cint
## The string does not match the specified pattern. ## The string does not match the specified pattern.
FNM_PATHNAME* {.importc, header: "<fnmatch.h>".}: cint FNM_PATHNAME* {.importc, header: "<fnmatch.h>".}: cint
@ -1809,8 +1812,9 @@ proc feholdexcept*(a1: ptr Tfenv): cint {.importc, header: "<fenv.h>".}
proc fesetenv*(a1: ptr Tfenv): cint {.importc, header: "<fenv.h>".} proc fesetenv*(a1: ptr Tfenv): cint {.importc, header: "<fenv.h>".}
proc feupdateenv*(a1: ptr TFenv): cint {.importc, header: "<fenv.h>".} proc feupdateenv*(a1: ptr TFenv): cint {.importc, header: "<fenv.h>".}
proc fmtmsg*(a1: int, a2: cstring, a3: cint, when not defined(haiku):
a4, a5, a6: cstring): cint {.importc, header: "<fmtmsg.h>".} proc fmtmsg*(a1: int, a2: cstring, a3: cint,
a4, a5, a6: cstring): cint {.importc, header: "<fmtmsg.h>".}
proc fnmatch*(a1, a2: cstring, a3: cint): cint {.importc, header: "<fnmatch.h>".} proc fnmatch*(a1, a2: cstring, a3: cint): cint {.importc, header: "<fnmatch.h>".}
proc ftw*(a1: cstring, proc ftw*(a1: cstring,