summaryrefslogtreecommitdiff
path: root/rts/posix
diff options
context:
space:
mode:
Diffstat (limited to 'rts/posix')
-rw-r--r--rts/posix/OSThreads.c6
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)