]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/glibc-2.X-drd.supp
0711a69accb20bee79bc13226b069d91d3899bd5
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / glibc-2.X-drd.supp
1 #
2 # Suppression patterns for ld, the dynamic loader.
3 #
4
5 # Suppress all data races triggered by ld.
6 {
7    drd-ld
8    drd:ConflictingAccess
9    obj:/lib*/ld-*.so
10 }
11
12 #
13 # Suppression patterns for libc.
14 #
15
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.
22 {
23    drd-libc-stdio
24    drd:ConflictingAccess
25    obj:/lib*/libc-*
26 }
27
28 #
29 # Suppression patterns for libstdc++, the implementation of the standard C++
30 # library included with the gcc compiler.
31 #
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
36 #
37
38 # {
39 #    drd-libstdc++-std::string::string()
40 #    drd:ConflictingAccess
41 #    fun:_ZNSsC1ERKSs
42 # }
43
44 #
45 # Suppression patterns for libpthread.
46 #
47
48 {
49    drd-libpthread-pthread_create
50    drd:ConflictingAccess
51    ...
52    fun:pthread_create*
53 }
54 {
55    drd-libpthread-pthread_join
56    drd:ConflictingAccess
57    fun:pthread_join
58    fun:pthread_join
59 }
60 {
61    drd-libpthread-__deallocate_stack
62    drd:ConflictingAccess
63    ...
64    fun:__deallocate_stack
65 }
66 {
67    drd-libpthread-__free_tcb
68    drd:ConflictingAccess
69    ...
70    fun:__free_tcb
71 }
72 {
73    drd-libpthread-pthread_detach
74    drd:ConflictingAccess
75    fun:pthread_detach
76    fun:pthread_detach
77 }
78 {
79    drd-libpthread-_Unwind_ForcedUnwind
80    drd:ConflictingAccess
81    ...
82    fun:_Unwind_ForcedUnwind
83 }
84 {
85    drd-libpthread-_Unwind_Resume
86    drd:ConflictingAccess
87    ...
88    fun:_Unwind_Resume
89 }
90 {
91    drd-libpthread-nanosleep
92    drd:ConflictingAccess
93    fun:nanosleep
94 }
95
96 #
97 # Suppression patterns for libgomp.
98 #
99
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
103 {
104    drd-libgomp
105    drd:ConflictingAccess
106    obj:/usr/lib*/libgomp.so*
107 }
108
109 #
110 # Suppression patterns for libX11.
111 #
112
113 {
114    drd-libX11-XCreateFontSet
115    drd:CondErr
116    fun:pthread_cond_init*
117    fun:_XReply
118    fun:XListFontsWithInfo
119    obj:/usr/lib*/libX11.so*
120    fun:XCreateOC
121    fun:XCreateFontSet
122 }
123
124 #
125 # Suppression patterns for libxcb.
126 #
127
128 {
129    drd-libxcb-xcb_wait_for_reply
130    drd:CondErr
131    fun:pthread_cond_destroy*
132    fun:xcb_wait_for_reply
133 }
134
135 #
136 # Suppression patterns for libglib.
137 #
138
139 {
140    drd-libglib-access-g_threads_got_initialized
141    drd:ConflictingAccess
142    ...
143    fun:g_slice_alloc
144    fun:g_ptr_array_sized_new
145 }
146 {
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.*
153 }
154 {
155    drd-libglib-access-g_mem_initialized
156    drd:ConflictingAccess
157    fun:g_malloc0
158 }
159 {
160    drd-libglib-g_private_get_posix_impl
161    drd:ConflictingAccess
162    fun:g_private_get_posix_impl
163 }
164 {
165    drd-libglib-g_private_set_posix_impl
166    drd:ConflictingAccess
167    fun:g_private_set_posix_impl
168 }
169 {
170    drd-libglib-g_get_language_names
171    drd:ConflictingAccess
172    fun:g_slice_free_chain_with_offset
173 }
174 {
175    drd-libglib-g_main_context_new
176    drd:ConflictingAccess
177    fun:fcntl
178    obj:/usr/lib*/libglib-*.so*
179    fun:g_main_context_new
180 }
181
182 #
183 # Suppression patterns for libQtCore.
184 #
185
186 {
187    drd-libQtCore-deref-that-calls-QThreadData-destructor
188    drd:ConflictingAccess
189    fun:_ZN11QThreadDataD1Ev
190    fun:_ZN11QThreadData5derefEv
191    obj:/usr/lib*/libQtCore.so.4.*
192 }
193 {
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
199 }
200 {
201    drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
202    drd:ConflictingAccess
203    fun:_ZN14QReadWriteLock12lockForWriteEv
204    fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
205    fun:_ZN7QObjectD2Ev
206 }
207 {
208    drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
209    drd:ConflictingAccess
210    fun:_ZN14QReadWriteLock12lockForWriteEv
211    fun:_ZN12QWriteLocker6relockEv
212    fun:_ZN12QWriteLockerC1EP14QReadWriteLock
213    fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
214    fun:_ZN7QObjectD2Ev
215    fun:_ZN24QAbstractEventDispatcherD2Ev
216    fun:_ZN20QEventDispatcherGlibD0Ev
217 }
218 {
219    drd-libQtCore-QMutexPool::get(void const*)
220    drd:ConflictingAccess
221    fun:_ZN10QMutexPool3getEPKv
222 }
223
224 #
225 # Suppression patterns for libboost.
226 #
227
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.
231 {
232    drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
233    drd:ConflictingAccess
234    ...
235    fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
236 }
237 {
238    drd-libboost-boost::detail::get_once_per_thread_epoch()
239    drd:ConflictingAccess
240    fun:_ZN5boost6detail25get_once_per_thread_epochEv
241 }
242 {
243    drd-libboost-boost::detail::get_current_thread_data()
244    drd:ConflictingAccess
245    ...
246    fun:_ZN5boost6detail23get_current_thread_dataEv
247 }