2 # Suppression patterns for ld, the dynamic loader.
5 # Suppress all data races triggered by ld.
13 # Suppression patterns for libc.
16 # Suppress all data races where the topmost frame is inside libc.so. Although
17 # this could hide some real data races, unfortunately this is the only way to
18 # not report any false positives on stdio functions. The glibc functions
19 # manipulating FILE objects use locking primitives that cannot be intercepted
20 # easily. See also the definitions of _IO_lock_lock() etc. in the file
21 # nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
29 # Suppression patterns for libstdc++, the implementation of the standard C++
30 # library included with the gcc compiler.
32 # Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
33 # and their predecessors) contain an implementation of the std::string class
34 # that triggers conflicting memory accesses. See also
35 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
39 # drd-libstdc++-std::string::string()
40 # drd:ConflictingAccess
45 # Suppression patterns for libpthread.
49 drd-libpthread-pthread_create
55 drd-libpthread-pthread_join
61 drd-libpthread-__deallocate_stack
64 fun:__deallocate_stack
67 drd-libpthread-__free_tcb
73 drd-libpthread-pthread_detach
79 drd-libpthread-_Unwind_ForcedUnwind
82 fun:_Unwind_ForcedUnwind
85 drd-libpthread-_Unwind_Resume
91 drd-libpthread-nanosleep
97 # Suppression patterns for libgomp.
100 # Unfortunately many statements in libgomp trigger conflicting accesses. It is
101 # not clear to me which of these are safe and which ones not. See also
102 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
105 drd:ConflictingAccess
106 obj:/usr/lib*/libgomp.so*
110 # Suppression patterns for libX11.
114 drd-libX11-XCreateFontSet
116 fun:pthread_cond_init*
118 fun:XListFontsWithInfo
119 obj:/usr/lib*/libX11.so*
125 # Suppression patterns for libxcb.
129 drd-libxcb-xcb_wait_for_reply
131 fun:pthread_cond_destroy*
132 fun:xcb_wait_for_reply
136 # Suppression patterns for libglib.
140 drd-libglib-access-g_threads_got_initialized
141 drd:ConflictingAccess
144 fun:g_ptr_array_sized_new
147 drd-libglib-access-g_threads_got_initialized
148 drd:ConflictingAccess
149 fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
150 fun:_ZN20QEventDispatcherGlibC1EP7QObject
151 obj:/usr/lib*/libQtCore.so.4.*
152 obj:/usr/lib*/libQtCore.so.4.*
155 drd-libglib-access-g_mem_initialized
156 drd:ConflictingAccess
160 drd-libglib-g_private_get_posix_impl
161 drd:ConflictingAccess
162 fun:g_private_get_posix_impl
165 drd-libglib-g_private_set_posix_impl
166 drd:ConflictingAccess
167 fun:g_private_set_posix_impl
170 drd-libglib-g_get_language_names
171 drd:ConflictingAccess
172 fun:g_slice_free_chain_with_offset
175 drd-libglib-g_main_context_new
176 drd:ConflictingAccess
178 obj:/usr/lib*/libglib-*.so*
179 fun:g_main_context_new
183 # Suppression patterns for libQtCore.
187 drd-libQtCore-deref-that-calls-QThreadData-destructor
188 drd:ConflictingAccess
189 fun:_ZN11QThreadDataD1Ev
190 fun:_ZN11QThreadData5derefEv
191 obj:/usr/lib*/libQtCore.so.4.*
194 drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
195 drd:ConflictingAccess
196 obj:/usr/lib*/libQtCore.so.4.*
197 fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
198 fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
201 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
202 drd:ConflictingAccess
203 fun:_ZN14QReadWriteLock12lockForWriteEv
204 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
208 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
209 drd:ConflictingAccess
210 fun:_ZN14QReadWriteLock12lockForWriteEv
211 fun:_ZN12QWriteLocker6relockEv
212 fun:_ZN12QWriteLockerC1EP14QReadWriteLock
213 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
215 fun:_ZN24QAbstractEventDispatcherD2Ev
216 fun:_ZN20QEventDispatcherGlibD0Ev
219 drd-libQtCore-QMutexPool::get(void const*)
220 drd:ConflictingAccess
221 fun:_ZN10QMutexPool3getEPKv
225 # Suppression patterns for libboost.
228 # Suppress the races on boost::once_flag::epoch and on
229 # boost::detail::once_global_epoch. See also the source file
230 # boost/thread/pthread/once.hpp in the Boost source tree.
232 drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
233 drd:ConflictingAccess
235 fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
238 drd-libboost-boost::detail::get_once_per_thread_epoch()
239 drd:ConflictingAccess
240 fun:_ZN5boost6detail25get_once_per_thread_epochEv
243 drd-libboost-boost::detail::get_current_thread_data()
244 drd:ConflictingAccess
246 fun:_ZN5boost6detail23get_current_thread_dataEv