3232#if KMP_OS_AIX
3333#include < sys/ldr.h>
3434#include < libperfstat.h>
35- #else
35+ #elif !KMP_OS_HAIKU
3636#include < sys/syscall.h>
3737#endif
3838#include < sys/time.h>
@@ -465,7 +465,7 @@ void __kmp_terminate_thread(int gtid) {
465465static kmp_int32 __kmp_set_stack_info (int gtid, kmp_info_t *th) {
466466 int stack_data;
467467#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
468- KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_AIX
468+ KMP_OS_HAIKU || KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_AIX
469469 int status;
470470 size_t size = 0 ;
471471 void *addr = 0 ;
@@ -517,7 +517,7 @@ static kmp_int32 __kmp_set_stack_info(int gtid, kmp_info_t *th) {
517517 return TRUE ;
518518 }
519519#endif /* KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD \
520- || KMP_OS_HURD || KMP_OS_SOLARIS */
520+ || KMP_OS_HAIKU || KMP_OS_HURD || KMP_OS_SOLARIS */
521521 /* Use incremental refinement starting from initial conservative estimate */
522522 TCW_PTR (th->th .th_info .ds .ds_stacksize , 0 );
523523 TCW_PTR (th->th .th_info .ds .ds_stackbase , &stack_data);
@@ -532,7 +532,8 @@ static void *__kmp_launch_worker(void *thr) {
532532#endif /* KMP_BLOCK_SIGNALS */
533533 void *exit_val;
534534#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
535- KMP_OS_OPENBSD || KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_AIX
535+ KMP_OS_OPENBSD || KMP_OS_HAIKU || KMP_OS_HURD || KMP_OS_SOLARIS || \
536+ KMP_OS_AIX
536537 void *volatile padding = 0 ;
537538#endif
538539 int gtid;
@@ -581,7 +582,8 @@ static void *__kmp_launch_worker(void *thr) {
581582#endif /* KMP_BLOCK_SIGNALS */
582583
583584#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
584- KMP_OS_OPENBSD || KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_AIX
585+ KMP_OS_OPENBSD || KMP_OS_HAIKU || KMP_OS_HURD || KMP_OS_SOLARIS || \
586+ KMP_OS_AIX
585587 if (__kmp_stkoffset > 0 && gtid > 0 ) {
586588 padding = KMP_ALLOCA (gtid * __kmp_stkoffset);
587589 (void )padding;
@@ -1902,7 +1904,7 @@ static int __kmp_get_xproc(void) {
19021904 __kmp_type_convert (sysconf (_SC_NPROCESSORS_CONF), &(r));
19031905
19041906#elif KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_OPENBSD || \
1905- KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_WASI || KMP_OS_AIX
1907+ KMP_OS_HAIKU || KMP_OS_HURD || KMP_OS_SOLARIS || KMP_OS_WASI || KMP_OS_AIX
19061908
19071909 __kmp_type_convert (sysconf (_SC_NPROCESSORS_ONLN), &(r));
19081910
@@ -2400,6 +2402,9 @@ int __kmp_is_address_mapped(void *addr) {
24002402 }
24012403 KMP_INTERNAL_FREE (loadQueryBuf);
24022404
2405+ #elif KMP_OS_HAIKU
2406+
2407+ found = 1 ;
24032408#else
24042409
24052410#error "Unknown or unsupported OS"
@@ -2515,7 +2520,9 @@ int __kmp_get_load_balance(int max) {
25152520 glb_running_threads = running_threads;
25162521
25172522 return running_threads;
2518- }
2523+ #elif KMP_OS_HAIKU
2524+
2525+ int __kmp_get_load_balance (int max) { return -1 ; }
25192526
25202527#else // Linux* OS
25212528
0 commit comments