diff --git a/openmp/runtime/src/kmp_platform.h b/openmp/runtime/src/kmp_platform.h --- a/openmp/runtime/src/kmp_platform.h +++ b/openmp/runtime/src/kmp_platform.h @@ -25,6 +25,8 @@ #define KMP_OS_HURD 0 #define KMP_OS_UNIX 0 /* disjunction of KMP_OS_LINUX, KMP_OS_DARWIN etc. */ +#define KMP_OS_FREEBSD_SCHED 0 + #ifdef _WIN32 #undef KMP_OS_WINDOWS #define KMP_OS_WINDOWS 1 @@ -53,6 +55,10 @@ #if (defined __FreeBSD__) #undef KMP_OS_FREEBSD #define KMP_OS_FREEBSD 1 +#if __FreeBSD_version >= 1301000 +#undef KMP_OS_FREEBSD_SCHED +#define KMP_OS_FREEBSD_SCHED 1 +#endif #endif #if (defined __NetBSD__) diff --git a/openmp/runtime/src/ompt-general.cpp b/openmp/runtime/src/ompt-general.cpp --- a/openmp/runtime/src/ompt-general.cpp +++ b/openmp/runtime/src/ompt-general.cpp @@ -790,7 +790,7 @@ OMPT_API_ROUTINE int ompt_get_proc_id(void) { if (!ompt_enabled.enabled || __kmp_get_gtid() < 0) return -1; -#if KMP_OS_LINUX +#if KMP_OS_LINUX || KMP_OS_FREEBSD_SCHED return sched_getcpu(); #elif KMP_OS_WINDOWS PROCESSOR_NUMBER pn;