Update helgrind and drd suppression libc and libpthread paths in glibc 2.34
[valgrind.git] / glibc-2.X-helgrind.supp.in
blobcecf3ceab9c1060607aa5ec1921107b653443240
1 # IMPORTANT: DO NOT EDIT glibc-2.X-helgrind.supp, as it is as a generated
2 # file.  Instead edit glibc-2.X-helgrind.supp.in.
4 # FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
5 # other stuff.  They should be removed.
7 ##----------------------------------------------------------------------##
8 # Suppressions for the Helgrind tool when using 
9 # a glibc-2.{3,4,5,6,7,8,9} system
11 ####################################################
12 # glibc-2.X specific
13 # These are generic cover-alls which catch a lot of stuff
14 # in various combinations of ld, libc and libpthread
16 # Note this is heavyhanded and not very clever:
18 # - suppress anything that has its top frame in ld.so
19 #   That's fine, since it's mostly dynamic linking stuff,
20 #   which has various deliberate (harmless) races
22 # - suppress anything that has its top frame in libc.so.
23 #   This really isn't clever, since it could hide some 
24 #   legitimate races.  But the problem is, if we don't do
25 #   this, then loads of errors to do with stdio are reported, because
26 #   H fails to see glibc's internal locking/unlocking of FILE*s
27 #   as required by POSIX.  A better solution is needed.
29 # - some of the stdio functions in newer glibc manipulate stdio
30 #   FILE*s state through mempcpy, which we intercept, so we also need
31 #   to suppress such manipulations.
34 #   helgrind-glibc2X-001
35 #   Helgrind:Race
36 #   obj:*/lib*/ld-2.*so*
39 # helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
41 # helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
44    helgrind-glibc2X-004
45    Helgrind:Race
46    obj:@GLIBC_LIBC_PATH@
50    helgrind-glibc-io-xsputn-mempcpy
51    Helgrind:Race
52    fun:__GI_mempcpy
53    fun:_IO_*xsputn*
54    obj:@GLIBC_LIBC_PATH@
58    helgrind-glibc2X-005
59    Helgrind:Race
60    obj:@GLIBC_LIBPTHREAD_PATH@
63 # helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
65 # helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
67 # helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
69 # helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
71 # helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
73 # helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
75 # helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
77 # helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
79 # helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
81 # helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
83 # helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
85 # These are very ugly.  They are needed to suppress errors inside (eg)
86 # NPTL's pthread_cond_signal.  Why only one stack frame -- at least we
87 # should see the wrapper calling the real functions, right?
88 # Unfortunately, no: the real functions are handwritten assembly (in
89 # the glibc-2.5 sources) and does not create a proper stack frame.
90 # Therefore it's only one level of unwinding before we're back out in
91 # user code rather than the 2 levels you'd expect.
93    helgrind-glibc2X-101
94    Helgrind:Race
95    obj:@GLIBC_LIBPTHREAD_PATH@
96    fun:pthread_*
99    helgrind-glibc2X-102
100    Helgrind:Race
101    fun:mythread_wrapper
102    obj:@GLIBC_LIBPTHREAD_PATH@
105    helgrind-glibc2X-103
106    Helgrind:Race
107    fun:pthread_cond_*@@GLIBC_2.*
110    helgrind-glibc2X-104
111    Helgrind:Race
112    fun:__lll_mutex_*
115    helgrind-glibc2X-105
116    Helgrind:Race
117    fun:pthread_rwlock_*lock*
120    helgrind-glibc2X-106
121    Helgrind:Race
122    fun:__lll_lock_wait
125    helgrind-glibc2X-107
126    Helgrind:Race
127    obj:@GLIBC_LIBPTHREAD_PATH@
128    fun:sem_*
131    helgrind-glibc2X-108
132    Helgrind:Race
133    fun:clone
136    helgrind-glibc2X-109
137    Helgrind:Race
138    fun:start_thread
141    helgrind-glibc2X-110
142    Helgrind:Race
143    obj:@GLIBC_LIBC_PATH@
144    fun:pthread_*
147    helgrind-glibc2X-111
148    Helgrind:Race
149    fun:__lll_*lock_*
152    helgrind-glibc2X-113
153    Helgrind:Race
154    fun:pthread_barrier_wait*
158 ####################################################
159 # qt4 specific (GNU mangling)
162    helgrind-qt4---QMutex::lock()-QMutex::lock()
163    Helgrind:Race
164    ...
165    fun:_ZN6QMutex4lockEv
166    fun:_ZN6QMutex4lockEv
169 {                                                               
170    helgrind-qt4---QMutex::unlock()-QMutex::unlock()
171    Helgrind:Race                                                
172    ...
173    fun:_ZN6QMutex6unlockEv                                      
174    fun:_ZN6QMutex6unlockEv
178    helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
179    Helgrind:Race
180    fun:pthread_setspecific
181    fun:_ZN14QThreadPrivate5startEPv
185 ####################################################
186 # Other stuff.
188 # pthread_exit apparently calls some kind of unwind
189 # mechanism - maybe to remove some number of frames
190 # from the thread's stack, so as to get back to the 
191 # outermost frame for the thread?  Anyway..
194    helgrind---*Unwind*-...-pthread_exit
195    Helgrind:Race
196    fun:*Unwind*
197    ...
198    fun:pthread_exit
202    helgrind---...-*Unwind*-*pthread_unwind*
203    Helgrind:Race
204    ...
205    fun:*Unwind*
206    fun:*pthread_unwind*
210    helgrind---...-*Unwind*-*pthread_unwind*
211    Helgrind:Race
212    ...
213    fun:_Unwind*
214    ...
215    fun:_Unwind_Backtrace
221 ####################################################
222 # To do with thread stack allocation and deallocation?
225    helgrind---free_stacks-__deallocate_stack
226    Helgrind:Race
227    fun:free_stacks
228    fun:__deallocate_stack
232    helgrind---__deallocate_stack-start_thread-clone
233    Helgrind:Race
234    fun:__deallocate_stack
235    fun:start_thread
236    fun:clone
240 ####################################################
241 # To do with pthread_{set,get}specific
244    helgrind---pthread_setspecific
245    Helgrind:Race
246    fun:pthread_setspecific
250    helgrind---pthread_getspecific
251    Helgrind:Race
252    fun:pthread_getspecific
256 ####################################################
257 # To do with dynamic linking
259 # helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
262    helgrind---_dl_allocate_tls 
263    Helgrind:Race
264    fun:mempcpy
265    fun:_dl_allocate_tls_init
266    ...
267    fun:pthread_create@@GLIBC_2.2*
268    fun:pthread_create_WRK
269    fun:pthread_create@*
273    helgrind---_dl_allocate_tls2
274    Helgrind:Race
275    fun:memcpy
276    fun:__mempcpy_inline
277    fun:_dl_allocate_tls_init
278    ...
279    fun:pthread_create@@GLIBC_2.2*
280    fun:pthread_create_WRK
281    fun:pthread_create@*
284 ####################################################
285 # To do with GNU libgomp
288    helgrind---libgomp43-1
289    Helgrind:Race
290    fun:gomp_ordered_sync
294    helgrind---libgomp43-1
295    Helgrind:Race
296    fun:gomp_ordered_next
300    helgrind---libgomp43-1
301    Helgrind:Race
302    fun:gomp_ordered_last