diff --git a/openmp/runtime/src/kmp_config.h.cmake b/openmp/runtime/src/kmp_config.h.cmake --- a/openmp/runtime/src/kmp_config.h.cmake +++ b/openmp/runtime/src/kmp_config.h.cmake @@ -94,6 +94,8 @@ #define KMP_HAVE_POSIX_MEMALIGN LIBOMP_HAVE_POSIX_MEMALIGN #cmakedefine01 LIBOMP_HAVE__ALIGNED_MALLOC #define KMP_HAVE__ALIGNED_MALLOC LIBOMP_HAVE__ALIGNED_MALLOC +#cmakedefine01 OPENMP_ENABLE_LIBOMPTARGET +#define ENABLE_LIBOMPTARGET OPENMP_ENABLE_LIBOMPTARGET // Configured cache line based on architecture #if KMP_ARCH_PPC64 diff --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp --- a/openmp/runtime/src/kmp_tasking.cpp +++ b/openmp/runtime/src/kmp_tasking.cpp @@ -21,8 +21,10 @@ #include "ompt-specific.h" #endif +#if ENABLE_LIBOMPTARGET // Declaration of synchronization function from libomptarget. extern "C" void __tgt_target_nowait_query(void **) KMP_WEAK_ATTRIBUTE_INTERNAL; +#endif /* forward declaration */ static void __kmp_enable_tasking(kmp_task_team_t *task_team, @@ -1798,12 +1800,15 @@ KMP_FSYNC_ACQUIRED(taskdata); // acquired self (new task) #endif +#if ENABLE_LIBOMPTARGET if (taskdata->td_target_data.async_handle != NULL) { // If we have a valid target async handle, that means that we have already // executed the task routine once. We must query for the handle completion // instead of re-executing the routine. __tgt_target_nowait_query(&taskdata->td_target_data.async_handle); - } else if (task->routine != NULL) { + } else +#endif + if (task->routine != NULL) { #ifdef KMP_GOMP_COMPAT if (taskdata->td_flags.native) { ((void (*)(void *))(*(task->routine)))(task->shareds);