diff options
Diffstat (limited to 'rts/posix/OSThreads.c')
-rw-r--r-- | rts/posix/OSThreads.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c index 7fa2f4d75d..2fa56704cb 100644 --- a/rts/posix/OSThreads.c +++ b/rts/posix/OSThreads.c @@ -31,6 +31,9 @@ #if defined(HAVE_PTHREAD_H) #include <pthread.h> +#if defined(freebsd_HOST_OS) +#include <pthread_np.h> +#endif #endif #if defined(THREADED_RTS) @@ -330,7 +333,8 @@ KernelThreadId kernelThreadId (void) pid_t tid = syscall(SYS_gettid); // no really, see man gettid return (KernelThreadId) tid; -#elif defined(freebsd_HOST_OS) +/* FreeBSD 9.0+ */ +#elif defined(freebsd_HOST_OS) && (__FreeBSD_version >= 900031) return pthread_getthreadid_np(); #elif defined(darwin_HOST_OS) |