blob: d73b88814e58e9418608c976e366d4f461fde973 [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*
sewardj95386ae2007-11-09 22:50:55 +000015}
sewardj4f75be32008-12-29 14:46:26 +000016# helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
17# helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
sewardj95386ae2007-11-09 22:50:55 +000018{
sewardjf7218152008-12-22 20:21:38 +000019 helgrind-glibc2X-004
sewardj963286e2007-11-10 12:44:56 +000020 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000021 obj:/lib*/libc-2.*so*
22 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000023}
24{
sewardjf7218152008-12-22 20:21:38 +000025 helgrind-glibc2X-005
sewardj963286e2007-11-10 12:44:56 +000026 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000027 obj:/lib*/libpthread-2.*so*
28 obj:/lib*/libpthread-2.*so*
29 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000030}
31{
sewardjf7218152008-12-22 20:21:38 +000032 helgrind-glibc2X-006
sewardj963286e2007-11-10 12:44:56 +000033 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000034 obj:/lib*/libpthread-2.*so*
35 obj:/lib*/libpthread-2.*so*
36 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000037}
sewardj4f75be32008-12-29 14:46:26 +000038# helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
sewardj95386ae2007-11-09 22:50:55 +000039{
sewardjf7218152008-12-22 20:21:38 +000040 helgrind-glibc2X-008
sewardj963286e2007-11-10 12:44:56 +000041 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000042 obj:/lib*/libpthread-2.*so*
43 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000044}
45{
sewardjf7218152008-12-22 20:21:38 +000046 helgrind-glibc2X-009
sewardj963286e2007-11-10 12:44:56 +000047 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000048 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000049 fun:*
sewardjf7218152008-12-22 20:21:38 +000050 obj:/lib*/libc-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000051}
sewardj4f75be32008-12-29 14:46:26 +000052# helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
sewardj95386ae2007-11-09 22:50:55 +000053{
sewardjf7218152008-12-22 20:21:38 +000054 helgrind-glibc2X-011
sewardj963286e2007-11-10 12:44:56 +000055 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000056 obj:/lib*/libc-2.*so*
57 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000058}
sewardj4f75be32008-12-29 14:46:26 +000059# helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
60# helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
61# helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
sewardj4b03c422008-12-23 11:12:40 +000062{
63 helgrind-glibc2X-015
64 Helgrind:Race
65 obj:/lib*/libc-2.*so*
66 obj:/lib*/libdl-2.*so*
67 obj:/lib*/ld-2.*so*
68}
69{
70 helgrind-glibc2X-016
71 Helgrind:Race
72 obj:/lib*/libpthread-2.*so*
73 obj:/lib*/ld-2.*so*
74 obj:/lib*/ld-2.*so*
75}
sewardj95386ae2007-11-09 22:50:55 +000076
77# These are very ugly. They are needed to suppress errors inside (eg)
78# NPTL's pthread_cond_signal. Why only one stack frame -- at least we
79# should see the wrapper calling the real functions, right?
80# Unfortunately, no: the real functions are handwritten assembly (in
81# the glibc-2.5 sources) and does not create a proper stack frame.
82# Therefore it's only one level of unwinding before we're back out in
83# user code rather than the 2 levels you'd expect.
84{
sewardjf7218152008-12-22 20:21:38 +000085 helgrind-glibc2X-101
sewardj963286e2007-11-10 12:44:56 +000086 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000087 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000088 fun:pthread_*
89}
90{
sewardjf7218152008-12-22 20:21:38 +000091 helgrind-glibc2X-102
sewardj963286e2007-11-10 12:44:56 +000092 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +000093 fun:mythread_wrapper
sewardjf7218152008-12-22 20:21:38 +000094 obj:/lib*/libpthread-2.*so*
sewardj95386ae2007-11-09 22:50:55 +000095}
96{
sewardjf7218152008-12-22 20:21:38 +000097 helgrind-glibc2X-103
sewardj963286e2007-11-10 12:44:56 +000098 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +000099 fun:pthread_cond_*@@GLIBC_2.*
sewardj95386ae2007-11-09 22:50:55 +0000100}
101{
sewardjf7218152008-12-22 20:21:38 +0000102 helgrind-glibc2X-104
sewardj963286e2007-11-10 12:44:56 +0000103 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000104 fun:__lll_mutex_*
105}
106{
sewardjf7218152008-12-22 20:21:38 +0000107 helgrind-glibc2X-105
sewardj963286e2007-11-10 12:44:56 +0000108 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000109 fun:pthread_rwlock_*lock*
110}
sewardjb9354be2007-11-18 01:40:14 +0000111{
sewardjf7218152008-12-22 20:21:38 +0000112 helgrind-glibc2X-106
sewardj963286e2007-11-10 12:44:56 +0000113 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000114 fun:__lll_lock_wait
115}
sewardja8e939e2007-11-13 20:51:26 +0000116{
sewardjf7218152008-12-22 20:21:38 +0000117 helgrind-glibc2X-107
sewardja8e939e2007-11-13 20:51:26 +0000118 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000119 obj:/lib*/libpthread-2.*so*
sewardja8e939e2007-11-13 20:51:26 +0000120 fun:sem_*
121}
sewardja1c0df32007-11-18 18:22:50 +0000122{
sewardjf7218152008-12-22 20:21:38 +0000123 helgrind-glibc2X-108
sewardja1c0df32007-11-18 18:22:50 +0000124 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000125 fun:clone
sewardja1c0df32007-11-18 18:22:50 +0000126}
127{
sewardjf7218152008-12-22 20:21:38 +0000128 helgrind-glibc2X-109
sewardja1c0df32007-11-18 18:22:50 +0000129 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000130 fun:start_thread
sewardja1c0df32007-11-18 18:22:50 +0000131}
132{
sewardjf7218152008-12-22 20:21:38 +0000133 helgrind-glibc2X-110
sewardja1c0df32007-11-18 18:22:50 +0000134 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000135 obj:/lib*/libc-2.*so*
sewardja1c0df32007-11-18 18:22:50 +0000136 fun:pthread_*
137}
138{
sewardjf7218152008-12-22 20:21:38 +0000139 helgrind-glibc2X-111
sewardja1c0df32007-11-18 18:22:50 +0000140 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000141 fun:__lll_*lock_*
sewardj95386ae2007-11-09 22:50:55 +0000142}
143{
sewardjf7218152008-12-22 20:21:38 +0000144 helgrind-glibc2X-112
sewardj963286e2007-11-10 12:44:56 +0000145 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000146 fun:pthread_create@*
sewardj95386ae2007-11-09 22:50:55 +0000147}
148{
sewardjf7218152008-12-22 20:21:38 +0000149 helgrind-glibc2X-113
sewardj1990d5d2007-12-06 01:58:05 +0000150 Helgrind:Race
sewardjf7218152008-12-22 20:21:38 +0000151 fun:pthread_barrier_wait*
sewardj95386ae2007-11-09 22:50:55 +0000152}
153
sewardj13ca8a62008-12-20 09:20:33 +0000154
155####################################################
sewardjf7218152008-12-22 20:21:38 +0000156# qt4 specific (GNU mangling)
157#
sewardj95386ae2007-11-09 22:50:55 +0000158{
sewardj0f7a0292008-11-19 10:41:55 +0000159 helgrind-qt4---QMutex::lock()-QMutex::lock()
sewardj963286e2007-11-10 12:44:56 +0000160 Helgrind:Race
sewardj95386ae2007-11-09 22:50:55 +0000161 fun:_ZN6QMutex4lockEv
162 fun:_ZN6QMutex4lockEv
163}
sewardj0f7a0292008-11-19 10:41:55 +0000164
sewardj13ca8a62008-12-20 09:20:33 +0000165{
166 helgrind-qt4---QMutex::unlock()-QMutex::unlock()
167 Helgrind:Race
168 fun:_ZN6QMutex6unlockEv
169 fun:_ZN6QMutex6unlockEv
170}
171
sewardj0f7a0292008-11-19 10:41:55 +0000172{
173 helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
174 Helgrind:Race
175 fun:pthread_setspecific
176 fun:_ZN14QThreadPrivate5startEPv
177}
178
sewardj357cb162008-12-13 01:18:38 +0000179
180####################################################
181# Other stuff.
182#
183# pthread_exit apparently calls some kind of unwind
184# mechanism - maybe to remove some number of frames
185# from the thread's stack, so as to get back to the
186# outermost frame for the thread? Anyway..
187
188{
189 helgrind---*Unwind*-...-pthread_exit
190 Helgrind:Race
191 fun:*Unwind*
192 ...
193 fun:pthread_exit
194}
195
196{
197 helgrind---...-*Unwind*-*pthread_unwind*
198 Helgrind:Race
199 ...
200 fun:*Unwind*
201 fun:*pthread_unwind*
202}
sewardj13ca8a62008-12-20 09:20:33 +0000203
sewardj4b03c422008-12-23 11:12:40 +0000204{
205 helgrind---...-*Unwind*-*pthread_unwind*
206 Helgrind:Race
207 ...
208 fun:_Unwind*
209 ...
210 fun:_Unwind_Backtrace
211}
212
213
214
sewardj13ca8a62008-12-20 09:20:33 +0000215
216####################################################
217# To do with thread stack allocation and deallocation?
218#
219{
220 helgrind---free_stacks-__deallocate_stack
221 Helgrind:Race
222 fun:free_stacks
223 fun:__deallocate_stack
224}
225
226{
227 helgrind---__deallocate_stack-start_thread-clone
228 Helgrind:Race
229 fun:__deallocate_stack
230 fun:start_thread
231 fun:clone
232}
233
234
235####################################################
236# To do with pthread_{set,get}specific
237#
238{
239 helgrind---pthread_setspecific
240 Helgrind:Race
241 fun:pthread_setspecific
242}
243
244{
245 helgrind---pthread_getspecific
246 Helgrind:Race
247 fun:pthread_getspecific
248}
249
250
251####################################################
252# To do with dynamic linking
253#
sewardj4f75be32008-12-29 14:46:26 +0000254# helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001