blob: 3aface5bbc0e59acfa41b32da837e2e156143aaa [file] [log] [blame]
sewardj95386ae2007-11-09 22:50:55 +00001
2##----------------------------------------------------------------------##
3# Suppressions for the Helgrind tool when using
sewardjf7218152008-12-22 20:21:38 +00004# a glibc-2.{3,4,5,6,7,8,9} system
sewardj95386ae2007-11-09 22:50:55 +00005
sewardjf7218152008-12-22 20:21:38 +00006####################################################
7# glibc-2.X specific
8# These are generic cover-alls which catch a lot of stuff
9# in various combinations of ld, libc and libpthread
sewardj95386ae2007-11-09 22:50:55 +000010#
sewardj95386ae2007-11-09 22:50:55 +000011{
sewardjf7218152008-12-22 20:21:38 +000012 helgrind-glibc2X-001
sewardj963286e2007-11-10 12:44:56 +000013 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000014 obj:/lib*/ld-2.*so*
15 obj:/lib*/ld-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000016}
17{
sewardjf7218152008-12-22 20:21:38 +000018 helgrind-glibc2X-002
sewardj963286e2007-11-10 12:44:56 +000019 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000020 obj:/lib*/ld-2.*so*
21 obj:/lib*/libc-2.*so*
22 obj:/lib*/ld-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000023}
24{
sewardjf7218152008-12-22 20:21:38 +000025 helgrind-glibc2X-003
sewardj963286e2007-11-10 12:44:56 +000026 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000027 obj:/lib*/ld-2.*so*
28 obj:/lib*/libc-2.*so*
29 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000030}
31{
sewardjf7218152008-12-22 20:21:38 +000032 helgrind-glibc2X-004
sewardj963286e2007-11-10 12:44:56 +000033 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000034 obj:/lib*/libc-2.*so*
35 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000036}
37{
sewardjf7218152008-12-22 20:21:38 +000038 helgrind-glibc2X-005
sewardj963286e2007-11-10 12:44:56 +000039 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000040 obj:/lib*/libpthread-2.*so*
41 obj:/lib*/libpthread-2.*so*
42 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000043}
44{
sewardjf7218152008-12-22 20:21:38 +000045 helgrind-glibc2X-006
sewardj963286e2007-11-10 12:44:56 +000046 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000047 obj:/lib*/libpthread-2.*so*
48 obj:/lib*/libpthread-2.*so*
49 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000050}
51{
sewardjf7218152008-12-22 20:21:38 +000052 helgrind-glibc2X-007
sewardj963286e2007-11-10 12:44:56 +000053 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000054 obj:/lib*/ld-2.*so*
55 obj:/lib*/libc-2.*so*
56 obj:/lib*/libdl-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000057}
58{
sewardjf7218152008-12-22 20:21:38 +000059 helgrind-glibc2X-008
sewardj963286e2007-11-10 12:44:56 +000060 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000061 obj:/lib*/libpthread-2.*so*
62 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000063}
64{
sewardjf7218152008-12-22 20:21:38 +000065 helgrind-glibc2X-009
sewardj963286e2007-11-10 12:44:56 +000066 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000067 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000068 fun:*
sewardjf7218152008-12-22 20:21:38 +000069 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000070}
71{
sewardjf7218152008-12-22 20:21:38 +000072 helgrind-glibc2X-010
sewardj963286e2007-11-10 12:44:56 +000073 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000074 obj:/lib*/ld-2.*so*
75 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000076}
77{
sewardjf7218152008-12-22 20:21:38 +000078 helgrind-glibc2X-011
sewardj963286e2007-11-10 12:44:56 +000079 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000080 obj:/lib*/libc-2.*so*
81 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000082}
83{
sewardjf7218152008-12-22 20:21:38 +000084 helgrind-glibc2X-012
sewardj963286e2007-11-10 12:44:56 +000085 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000086 obj:/lib*/ld-2.*so*
87 obj:/lib*/ld-2.*so*
88 obj:/lib*/libc-2.*so*
89}
90{
91 helgrind-glibc2X-013
92 Helgrind:Race
93 obj:/lib*/ld-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000094 fun:*
sewardjf7218152008-12-22 20:21:38 +000095 obj:/lib*/ld-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000096}
97{
sewardjf7218152008-12-22 20:21:38 +000098 helgrind-glibc2X-014
sewardj963286e2007-11-10 12:44:56 +000099 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000100 obj:/lib*/ld-2.*so*
101 obj:/lib*/ld-2.*so*
102 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +0000103}
104
105# These are very ugly. They are needed to suppress errors inside (eg)
106# NPTL's pthread_cond_signal. Why only one stack frame -- at least we
107# should see the wrapper calling the real functions, right?
108# Unfortunately, no: the real functions are handwritten assembly (in
109# the glibc-2.5 sources) and does not create a proper stack frame.
110# Therefore it's only one level of unwinding before we're back out in
111# user code rather than the 2 levels you'd expect.
112{
sewardjf7218152008-12-22 20:21:38 +0000113 helgrind-glibc2X-101
sewardj963286e2007-11-10 12:44:56 +0000114 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000115 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +0000116 fun:pthread_*
117}
118{
sewardjf7218152008-12-22 20:21:38 +0000119 helgrind-glibc2X-102
sewardj963286e2007-11-10 12:44:56 +0000120 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000121 fun:mythread_wrapper
sewardjf7218152008-12-22 20:21:38 +0000122 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +0000123}
124{
sewardjf7218152008-12-22 20:21:38 +0000125 helgrind-glibc2X-103
sewardj963286e2007-11-10 12:44:56 +0000126 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000127 fun:pthread_cond_*@@GLIBC_2.*
sewardj95386ae2007-11-09 22:50:55 +0000128}
129{
sewardjf7218152008-12-22 20:21:38 +0000130 helgrind-glibc2X-104
sewardj963286e2007-11-10 12:44:56 +0000131 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000132 fun:__lll_mutex_*
133}
134{
sewardjf7218152008-12-22 20:21:38 +0000135 helgrind-glibc2X-105
sewardj963286e2007-11-10 12:44:56 +0000136 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000137 fun:pthread_rwlock_*lock*
138}
sewardjb9354be2007-11-18 01:40:14 +0000139{
sewardjf7218152008-12-22 20:21:38 +0000140 helgrind-glibc2X-106
sewardj963286e2007-11-10 12:44:56 +0000141 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000142 fun:__lll_lock_wait
143}
sewardja8e939e2007-11-13 20:51:26 +0000144{
sewardjf7218152008-12-22 20:21:38 +0000145 helgrind-glibc2X-107
sewardja8e939e2007-11-13 20:51:26 +0000146 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000147 obj:/lib*/libpthread-2.*so*
sewardja8e939e2007-11-13 20:51:26 +0000148 fun:sem_*
149}
sewardja1c0df32007-11-18 18:22:50 +0000150{
sewardjf7218152008-12-22 20:21:38 +0000151 helgrind-glibc2X-108
sewardja1c0df32007-11-18 18:22:50 +0000152 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000153 fun:clone
sewardja1c0df32007-11-18 18:22:50 +0000154}
155{
sewardjf7218152008-12-22 20:21:38 +0000156 helgrind-glibc2X-109
sewardja1c0df32007-11-18 18:22:50 +0000157 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000158 fun:start_thread
sewardja1c0df32007-11-18 18:22:50 +0000159}
160{
sewardjf7218152008-12-22 20:21:38 +0000161 helgrind-glibc2X-110
sewardja1c0df32007-11-18 18:22:50 +0000162 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000163 obj:/lib*/libc-2.*so*
sewardja1c0df32007-11-18 18:22:50 +0000164 fun:pthread_*
165}
166{
sewardjf7218152008-12-22 20:21:38 +0000167 helgrind-glibc2X-111
sewardja1c0df32007-11-18 18:22:50 +0000168 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000169 fun:__lll_*lock_*
sewardj95386ae2007-11-09 22:50:55 +0000170}
171{
sewardjf7218152008-12-22 20:21:38 +0000172 helgrind-glibc2X-112
sewardj963286e2007-11-10 12:44:56 +0000173 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000174 fun:pthread_create@*
sewardj95386ae2007-11-09 22:50:55 +0000175}
176{
sewardjf7218152008-12-22 20:21:38 +0000177 helgrind-glibc2X-113
sewardj1990d5d2007-12-06 01:58:05 +0000178 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000179 fun:pthread_barrier_wait*
sewardj95386ae2007-11-09 22:50:55 +0000180}
181
sewardj13ca8a62008-12-20 09:20:33 +0000182
183####################################################
sewardjf7218152008-12-22 20:21:38 +0000184# qt4 specific (GNU mangling)
185#
sewardj95386ae2007-11-09 22:50:55 +0000186{
sewardj0f7a0292008-11-19 10:41:55 +0000187 helgrind-qt4---QMutex::lock()-QMutex::lock()
sewardj963286e2007-11-10 12:44:56 +0000188 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000189 fun:_ZN6QMutex4lockEv
190 fun:_ZN6QMutex4lockEv
191}
sewardj0f7a0292008-11-19 10:41:55 +0000192
sewardj13ca8a62008-12-20 09:20:33 +0000193{
194 helgrind-qt4---QMutex::unlock()-QMutex::unlock()
195 Helgrind:Race
196 fun:_ZN6QMutex6unlockEv
197 fun:_ZN6QMutex6unlockEv
198}
199
sewardj0f7a0292008-11-19 10:41:55 +0000200{
201 helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
202 Helgrind:Race
203 fun:pthread_setspecific
204 fun:_ZN14QThreadPrivate5startEPv
205}
206
sewardj357cb162008-12-13 01:18:38 +0000207
208####################################################
209# Other stuff.
210#
211# pthread_exit apparently calls some kind of unwind
212# mechanism - maybe to remove some number of frames
213# from the thread's stack, so as to get back to the
214# outermost frame for the thread? Anyway..
215
216{
217 helgrind---*Unwind*-...-pthread_exit
218 Helgrind:Race
219 fun:*Unwind*
220 ...
221 fun:pthread_exit
222}
223
224{
225 helgrind---...-*Unwind*-*pthread_unwind*
226 Helgrind:Race
227 ...
228 fun:*Unwind*
229 fun:*pthread_unwind*
230}
sewardj13ca8a62008-12-20 09:20:33 +0000231
232
233####################################################
234# To do with thread stack allocation and deallocation?
235#
236{
237 helgrind---free_stacks-__deallocate_stack
238 Helgrind:Race
239 fun:free_stacks
240 fun:__deallocate_stack
241}
242
243{
244 helgrind---__deallocate_stack-start_thread-clone
245 Helgrind:Race
246 fun:__deallocate_stack
247 fun:start_thread
248 fun:clone
249}
250
251
252####################################################
253# To do with pthread_{set,get}specific
254#
255{
256 helgrind---pthread_setspecific
257 Helgrind:Race
258 fun:pthread_setspecific
259}
260
261{
262 helgrind---pthread_getspecific
263 Helgrind:Race
264 fun:pthread_getspecific
265}
266
267
268####################################################
269# To do with dynamic linking
270#
271{
272 helgrind---ld.so-...-dlsym
273 Helgrind:Race
274 obj:/lib*/ld-2.*so*
275 ...
276 fun:dlsym
277}