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
41 drd-glibc-io-xsputn-mempcpy
49 # Suppression patterns for libstdc++, the implementation of the standard C++
50 # library included with the gcc compiler.
52 # Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
53 # and their predecessors) contain an implementation of the std::string class
54 # that triggers conflicting memory accesses. See also
55 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
59 # drd-libstdc++-std::string::string()
60 # drd:ConflictingAccess
65 drd-libstdc++-cxa_guard_release
67 fun:pthread_cond_broadcast@*
68 fun:__cxa_guard_release
71 drd-libstdc++-std::__ostream_insert()
73 fun:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
74 fun:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
77 drd-libstdc++-std::ostream::_M_insert<long>()
80 fun:_ZNSo9_M_insertIlEERSoT_
83 drd-libstdc++-std::~__shared_count()
85 fun:_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EED1Ev
88 drd-libstdc++-std::thread::~_Impl_base()
90 fun:_ZNSt6thread10_Impl_baseD1Ev
93 drd-libstdc++-std::thread::~_Impl()
95 fun:_ZNSt6thread5_ImplISt12_Bind_simpleIFZ4mainEUlvE_vEEED1Ev
99 # Suppression patterns for libpthread.
103 drd-libpthread-pthread_create
104 drd:ConflictingAccess
109 drd-libpthread-pthread_join
110 drd:ConflictingAccess
115 drd-libpthread-__deallocate_stack
116 drd:ConflictingAccess
118 fun:__deallocate_stack
121 drd-libpthread-__free_stacks
122 drd:ConflictingAccess
126 drd-libpthread-__free_tcb
127 drd:ConflictingAccess
132 drd-libpthread-__nptl_deallocate_tsd
133 drd:ConflictingAccess
134 fun:__nptl_deallocate_tsd
137 drd-libpthread-pthread_detach
138 drd:ConflictingAccess
143 drd-libpthread-pthread_once
144 drd:ConflictingAccess
148 drd-libpthread-pthread_cancel_init
149 drd:ConflictingAccess
150 fun:pthread_cancel_init
153 drd-libpthread-pthread_cancel
154 drd:ConflictingAccess
156 fun:pthread_cancel_intercept
159 drd-libpthread-_Unwind_ForcedUnwind
160 drd:ConflictingAccess
162 fun:_Unwind_ForcedUnwind
165 drd-libpthread-_Unwind_GetCFA
166 drd:ConflictingAccess
170 drd-libpthread-_Unwind_Resume
171 drd:ConflictingAccess
177 drd:ConflictingAccess
178 obj:*/lib/libgcc_s.so.1
181 drd-libpthread-nanosleep
182 drd:ConflictingAccess
187 # Suppression patterns for libgomp.
190 # Unfortunately many statements in libgomp trigger conflicting accesses. It is
191 # not clear to me which of these are safe and which ones not. See also
192 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
195 drd:ConflictingAccess
196 obj:/usr/lib*/libgomp.so*
200 # Suppression patterns for libX11.
204 drd-libX11-XCreateFontSet
206 fun:pthread_cond_init*
208 fun:XListFontsWithInfo
209 obj:/usr/lib*/libX11.so*
215 # Suppression patterns for libxcb.
219 drd-libxcb-xcb_wait_for_reply
222 fun:pthread_cond_destroy*
223 fun:xcb_wait_for_reply
227 # Suppression patterns for libglib.
231 drd-libglib-access-g_threads_got_initialized
232 drd:ConflictingAccess
235 fun:g_ptr_array_sized_new
238 drd-libglib-access-g_threads_got_initialized
239 drd:ConflictingAccess
241 fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
242 fun:_ZN20QEventDispatcherGlibC1EP7QObject
243 obj:/usr/lib*/libQtCore.so.4.*
244 obj:/usr/lib*/libQtCore.so.4.*
247 drd-libglib-access-g_mem_initialized
248 drd:ConflictingAccess
252 drd-libglib-g_private_get_posix_impl
253 drd:ConflictingAccess
254 fun:g_private_get_posix_impl
257 drd-libglib-g_private_set_posix_impl
258 drd:ConflictingAccess
259 fun:g_private_set_posix_impl
262 drd-libglib-g_get_language_names
263 drd:ConflictingAccess
264 fun:g_slice_free_chain_with_offset
267 drd-libglib-g_main_context_new
268 drd:ConflictingAccess
270 obj:/usr/lib*/libglib-*.so*
271 fun:g_main_context_new
275 # Suppression patterns for libQtCore.
279 drd-libQtCore-deref-that-calls-QThreadData-destructor
280 drd:ConflictingAccess
281 fun:_ZN11QThreadDataD1Ev
282 obj:/usr/lib*/libQtCore.so.4.*
285 drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
286 drd:ConflictingAccess
287 obj:/usr/lib*/libQtCore.so.4.*
288 fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
289 fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
292 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
293 drd:ConflictingAccess
294 fun:_ZN14QReadWriteLock12lockForWriteEv
295 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
299 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
300 drd:ConflictingAccess
301 fun:_ZN14QReadWriteLock12lockForWriteEv
302 fun:_ZN12QWriteLocker6relockEv
303 fun:_ZN12QWriteLockerC1EP14QReadWriteLock
304 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
306 fun:_ZN24QAbstractEventDispatcherD2Ev
307 fun:_ZN20QEventDispatcherGlibD0Ev
310 drd-libQtCore-QMutexPool::get(void const*)
311 drd:ConflictingAccess
312 fun:_ZN10QMutexPool3getEPKv
315 drd-libQtCore-qt_gettime_is_monotonic()
316 drd:ConflictingAccess
317 fun:_Z23qt_gettime_is_monotonicv
321 # Suppression patterns for libboost.
324 # Suppress the races on boost::once_flag::epoch and on
325 # boost::detail::this_thread_epoch. See also the source file
326 # boost/thread/pthread/once.hpp in the Boost source tree
327 # (https://svn.boost.org/trac/boost/browser/trunk/boost/thread/pthread/once.hpp).
329 drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
330 drd:ConflictingAccess
332 fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
335 drd-libboost-boost::detail::get_once_per_thread_epoch()
336 drd:ConflictingAccess
337 fun:_ZN5boost6detail25get_once_per_thread_epochEv
339 # Suppress the race reports on boost::detail::current_thread_tls_key. See also
340 # https://svn.boost.org/trac/boost/ticket/3526 for more information about why
341 # the access pattern of current_thread_tls_key is safe.
343 drd-libboost-boost::detail::get_current_thread_data()
344 drd:ConflictingAccess
346 fun:_ZN5boost6detail23get_current_thread_dataEv
349 drd-libboost-boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
350 drd:ConflictingAccess
352 fun:_ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE
356 # Suppression patterrns for posix functions
359 drd:ConflictingAccess