summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openmp/runtime/src/kmp_csupport.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/openmp/runtime/src/kmp_csupport.cpp b/openmp/runtime/src/kmp_csupport.cpp
index 7b7bbde5e94..8687795201f 100644
--- a/openmp/runtime/src/kmp_csupport.cpp
+++ b/openmp/runtime/src/kmp_csupport.cpp
@@ -46,10 +46,15 @@
void
__kmpc_begin(ident_t *loc, kmp_int32 flags)
{
- // By default __kmp_ignore_mppbeg() returns TRUE.
- if (__kmp_ignore_mppbeg() == FALSE) {
+ // By default __kmpc_begin() is no-op.
+ char *env;
+ if ((env = getenv( "KMP_INITIAL_THREAD_BIND" )) != NULL &&
+ __kmp_str_match_true( env )) {
+ __kmp_middle_initialize();
+ KC_TRACE(10, ("__kmpc_begin: middle initialization called\n" ));
+ } else if (__kmp_ignore_mppbeg() == FALSE) {
+ // By default __kmp_ignore_mppbeg() returns TRUE.
__kmp_internal_begin();
-
KC_TRACE( 10, ("__kmpc_begin: called\n" ) );
}
}
OpenPOWER on IntegriCloud