1 # IMPORTANT: DO NOT EDIT glibc-2.X-drd.supp, as it is as a generated
2 # file. Instead edit glibc-2.X-drd.supp.in.
4 # Suppression patterns for ld, the dynamic loader.
7 # Suppress all data races triggered by ld.
15 # Suppression patterns for libc.
18 # Suppress all data races where the topmost frame is inside libc.so. Although
19 # this could hide some real data races, unfortunately this is the only way to
20 # not report any false positives on stdio functions. The glibc functions
21 # manipulating FILE objects use locking primitives that cannot be intercepted
22 # easily. See also the definitions of _IO_lock_lock() etc. in the file
23 # nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
30 drd-libc-thread-cancellation-test
42 # Suppression patterns for libstdc++, the implementation of the standard C++
43 # library included with the gcc compiler.
45 # Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
46 # and their predecessors) contain an implementation of the std::string class
47 # that triggers conflicting memory accesses. See also
48 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
52 # drd-libstdc++-std::string::string()
53 # drd:ConflictingAccess
58 drd-libstdc++-cxa_guard_release
60 fun:pthread_cond_broadcast@*
61 fun:__cxa_guard_release
64 drd-libstdc++-std::__ostream_insert()
66 fun:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
67 fun:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
70 drd-libstdc++-std::ostream::_M_insert<long>()
73 fun:_ZNSo9_M_insertIlEERSoT_
78 # Suppression patterns for libpthread.
82 drd-libpthread-pthread_create
88 drd-libpthread-pthread_join
94 drd-libpthread-__deallocate_stack
97 fun:__deallocate_stack
100 drd-libpthread-__free_stacks
101 drd:ConflictingAccess
105 drd-libpthread-__free_tcb
106 drd:ConflictingAccess
111 drd-libpthread-__nptl_deallocate_tsd
112 drd:ConflictingAccess
113 fun:__nptl_deallocate_tsd
116 drd-libpthread-pthread_detach
117 drd:ConflictingAccess
122 drd-libpthread-pthread_once
123 drd:ConflictingAccess
127 drd-libpthread-pthread_cancel_init
128 drd:ConflictingAccess
129 fun:pthread_cancel_init
132 drd-libpthread-pthread_cancel
133 drd:ConflictingAccess
135 fun:pthread_cancel_intercept
138 drd-libpthread-_Unwind_ForcedUnwind
139 drd:ConflictingAccess
141 fun:_Unwind_ForcedUnwind
144 drd-libpthread-_Unwind_GetCFA
145 drd:ConflictingAccess
149 drd-libpthread-_Unwind_Resume
150 drd:ConflictingAccess
156 drd:ConflictingAccess
157 obj:*/lib/libgcc_s.so.1
160 drd-libpthread-nanosleep
161 drd:ConflictingAccess
166 # Suppression patterns for libgomp.
169 # Unfortunately many statements in libgomp trigger conflicting accesses. It is
170 # not clear to me which of these are safe and which ones not. See also
171 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
174 drd:ConflictingAccess
175 obj:/usr/lib*/libgomp.so*
179 # Suppression patterns for libX11.
183 drd-libX11-XCreateFontSet
185 fun:pthread_cond_init*
187 fun:XListFontsWithInfo
188 obj:/usr/lib*/libX11.so*
194 # Suppression patterns for libxcb.
198 drd-libxcb-xcb_wait_for_reply
201 fun:pthread_cond_destroy*
202 fun:xcb_wait_for_reply
206 # Suppression patterns for libglib.
210 drd-libglib-access-g_threads_got_initialized
211 drd:ConflictingAccess
214 fun:g_ptr_array_sized_new
217 drd-libglib-access-g_threads_got_initialized
218 drd:ConflictingAccess
220 fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
221 fun:_ZN20QEventDispatcherGlibC1EP7QObject
222 obj:/usr/lib*/libQtCore.so.4.*
223 obj:/usr/lib*/libQtCore.so.4.*
226 drd-libglib-access-g_mem_initialized
227 drd:ConflictingAccess
231 drd-libglib-g_private_get_posix_impl
232 drd:ConflictingAccess
233 fun:g_private_get_posix_impl
236 drd-libglib-g_private_set_posix_impl
237 drd:ConflictingAccess
238 fun:g_private_set_posix_impl
241 drd-libglib-g_get_language_names
242 drd:ConflictingAccess
243 fun:g_slice_free_chain_with_offset
246 drd-libglib-g_main_context_new
247 drd:ConflictingAccess
249 obj:/usr/lib*/libglib-*.so*
250 fun:g_main_context_new
254 # Suppression patterns for libQtCore.
258 drd-libQtCore-deref-that-calls-QThreadData-destructor
259 drd:ConflictingAccess
260 fun:_ZN11QThreadDataD1Ev
261 obj:/usr/lib*/libQtCore.so.4.*
264 drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
265 drd:ConflictingAccess
266 obj:/usr/lib*/libQtCore.so.4.*
267 fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
268 fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
271 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
272 drd:ConflictingAccess
273 fun:_ZN14QReadWriteLock12lockForWriteEv
274 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
278 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
279 drd:ConflictingAccess
280 fun:_ZN14QReadWriteLock12lockForWriteEv
281 fun:_ZN12QWriteLocker6relockEv
282 fun:_ZN12QWriteLockerC1EP14QReadWriteLock
283 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
285 fun:_ZN24QAbstractEventDispatcherD2Ev
286 fun:_ZN20QEventDispatcherGlibD0Ev
289 drd-libQtCore-QMutexPool::get(void const*)
290 drd:ConflictingAccess
291 fun:_ZN10QMutexPool3getEPKv
294 drd-libQtCore-qt_gettime_is_monotonic()
295 drd:ConflictingAccess
296 fun:_Z23qt_gettime_is_monotonicv
300 # Suppression patterns for libboost.
303 # Suppress the races on boost::once_flag::epoch and on
304 # boost::detail::this_thread_epoch. See also the source file
305 # boost/thread/pthread/once.hpp in the Boost source tree
306 # (https://svn.boost.org/trac/boost/browser/trunk/boost/thread/pthread/once.hpp).
308 drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
309 drd:ConflictingAccess
311 fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
314 drd-libboost-boost::detail::get_once_per_thread_epoch()
315 drd:ConflictingAccess
316 fun:_ZN5boost6detail25get_once_per_thread_epochEv
318 # Suppress the race reports on boost::detail::current_thread_tls_key. See also
319 # https://svn.boost.org/trac/boost/ticket/3526 for more information about why
320 # the access pattern of current_thread_tls_key is safe.
322 drd-libboost-boost::detail::get_current_thread_data()
323 drd:ConflictingAccess
325 fun:_ZN5boost6detail23get_current_thread_dataEv
328 drd-libboost-boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
329 drd:ConflictingAccess
331 fun:_ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE