Index: README.rst =================================================================== --- README.rst +++ README.rst @@ -191,8 +191,11 @@ Align certain data structures on 4096-byte. This option is useful on multi-node systems where a small ``CACHE_LINE`` setting leads to false sharing. -**LIBOMP_OMPT_SUPPORT** = ``OFF|ON`` - Include support for the OpenMP Tools Interface (OMPT). +**LIBOMP_OMPT_SUPPORT** = ``ON|OFF`` + Include support for the OpenMP Tools Interface (OMPT). + This option is supported and ``ON`` by default for x86, x86_64, AArch64, and + PPC64 on Linux, Windows, and mac OS. + This option is ``OFF`` if this feature is not supported for the platform. **LIBOMP_OMPT_OPTIONAL** = ``ON|OFF`` Include support for optional OMPT functionality. This option is ignored if Index: runtime/CMakeLists.txt =================================================================== --- runtime/CMakeLists.txt +++ runtime/CMakeLists.txt @@ -299,12 +299,17 @@ set (LIBOMP_USE_VERSION_SYMBOLS FALSE) endif() -# OMPT-support +# OMPT-support defaults to ON for OpenMP 5.0+ and if the requirements in +# cmake/config-ix.cmake are fulfilled. +set(OMPT_DEFAULT FALSE) +if ((${LIBOMP_OMP_VERSION} GREATER 49) AND (LIBOMP_HAVE_OMPT_SUPPORT)) + set(OMPT_DEFAULT TRUE) +endif() +set(LIBOMP_OMPT_SUPPORT ${OMPT_DEFAULT} CACHE BOOL + "OMPT-support?") + set(LIBOMP_OMPT_DEBUG FALSE CACHE BOOL "Trace OMPT initialization?") -#after testing: turn on ompt support by default for OpenMP 5.0 and higher -set(LIBOMP_OMPT_SUPPORT FALSE CACHE BOOL - "OMPT-support?") set(LIBOMP_OMPT_OPTIONAL TRUE CACHE BOOL "OMPT-optional?") if(LIBOMP_OMPT_SUPPORT AND (NOT LIBOMP_HAVE_OMPT_SUPPORT)) Index: runtime/cmake/config-ix.cmake =================================================================== --- runtime/cmake/config-ix.cmake +++ runtime/cmake/config-ix.cmake @@ -236,7 +236,15 @@ if(NOT LIBOMP_HAVE___BUILTIN_FRAME_ADDRESS) set(LIBOMP_HAVE_OMPT_SUPPORT FALSE) else() - if((WIN32 AND LIBOMP_HAVE_PSAPI) OR APPLE OR (NOT WIN32 AND LIBOMP_HAVE_WEAK_ATTRIBUTE)) + if( # hardware architecture supported? + ((LIBOMP_ARCH STREQUAL x86_64) OR + (LIBOMP_ARCH STREQUAL i386) OR +# (LIBOMP_ARCH STREQUAL arm) OR + (LIBOMP_ARCH STREQUAL aarch64) OR + (LIBOMP_ARCH STREQUAL ppc64le) OR + (LIBOMP_ARCH STREQUAL ppc64)) + AND # OS supported? + ((WIN32 AND LIBOMP_HAVE_PSAPI) OR APPLE OR (NOT WIN32 AND LIBOMP_HAVE_WEAK_ATTRIBUTE))) set(LIBOMP_HAVE_OMPT_SUPPORT TRUE) else() set(LIBOMP_HAVE_OMPT_SUPPORT FALSE)