[Openmp-commits] [PATCH] D55783: [OpenMP] Fix LIBOMP_USE_DEBUGGER=ON build (PR38612)
Roman Lebedev via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Dec 17 12:09:34 PST 2018
lebedev.ri created this revision.
lebedev.ri added reviewers: AndreyChurbanov, jlpeyton, Hahnfeld.
lebedev.ri added a project: OpenMP.
Herald added subscribers: jfb, guansong.
Two things:
1. Those two variables had the wrong sigdness, which was resulting in "sign mismatch in comparison" warning.
2. The whole `kmp_debugger.cpp` wasn't being built, or rather, it was being built as-if `USE_DEBUGGER` was off, thus, nothing provided the definition of `__kmp_omp_debug_struct_info`, `__kmp_debugging`. Makes sense, because `USE_DEBUGGER` is set in `kmp_config.h`, which is not included explicitly. It is included by `kmp.h`, but that one is only included inside of the `#if USE_DEBUGGER` block.. I *think* this is the only source file with this issue, everything else seem to `#include` either `kmp.h` or `kmp_config.h`. The alternative solution would be to add `add_compile_options(-include kmp_config.h)` in CMake.
I did verify that `__kmp_omp_debug_struct_info` becomes available with this patch.
Fixes PR38612 <https://bugs.llvm.org/show_bug.cgi?id=38612>.
Repository:
rOMP OpenMP
https://reviews.llvm.org/D55783
Files:
runtime/src/kmp.h
runtime/src/kmp_debugger.cpp
runtime/src/kmp_global.cpp
Index: runtime/src/kmp_global.cpp
===================================================================
--- runtime/src/kmp_global.cpp
+++ runtime/src/kmp_global.cpp
@@ -60,8 +60,8 @@
int __kmp_root_counter = 0;
int __kmp_version = 0;
-std::atomic<kmp_uint32> __kmp_team_counter = ATOMIC_VAR_INIT(0);
-std::atomic<kmp_uint32> __kmp_task_counter = ATOMIC_VAR_INIT(0);
+std::atomic<kmp_int32> __kmp_team_counter = ATOMIC_VAR_INIT(0);
+std::atomic<kmp_int32> __kmp_task_counter = ATOMIC_VAR_INIT(0);
unsigned int __kmp_init_wait =
KMP_DEFAULT_INIT_WAIT; /* initial number of spin-tests */
Index: runtime/src/kmp_debugger.cpp
===================================================================
--- runtime/src/kmp_debugger.cpp
+++ runtime/src/kmp_debugger.cpp
@@ -1,3 +1,5 @@
+#include "kmp_config.h"
+
#if USE_DEBUGGER
/*
* kmp_debugger.cpp -- debugger support.
Index: runtime/src/kmp.h
===================================================================
--- runtime/src/kmp.h
+++ runtime/src/kmp.h
@@ -3160,9 +3160,9 @@
extern kmp_info_t __kmp_monitor;
// For Debugging Support Library
-extern std::atomic<kmp_uint32> __kmp_team_counter;
+extern std::atomic<kmp_int32> __kmp_team_counter;
// For Debugging Support Library
-extern std::atomic<kmp_uint32> __kmp_task_counter;
+extern std::atomic<kmp_int32> __kmp_task_counter;
#if USE_DEBUGGER
#define _KMP_GEN_ID(counter) \
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55783.178509.patch
Type: text/x-patch
Size: 1446 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20181217/17656054/attachment.bin>
More information about the Openmp-commits
mailing list