Completely overhauled the internals of Memcheck's error handling. All the
[ambi/valgrind.git] / glibc-2.2.supp
1
2 ##----------------------------------------------------------------------##
3
4 # Errors to suppress by default with glibc 2.2.4 / 2.2.5
5
6 # Format of this file is:
7 # {
8 #     name_of_suppression
9 #     tool_name:supp_kind
10 #     (optional extra info for some suppression types)
11 #     caller0 name, or /name/of/so/file.so
12 #     caller1 name, or ditto
13 #     (optionally: caller2 name)
14 #     (optionally: caller3 name)
15 #  }
16 #
17 # For Memcheck, the supp_kinds are:
18 #
19 #     Param Value1 Value2 Value4 Value8 Value16 Jump
20 #     Free Addr1 Addr2 Addr4 Addr8 Addr16
21 #     Cond (previously known as Value0)
22 #
23 # and the optional extra info is:
24 #     if Param: name of system call param
25
26 #-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
27 {
28    __GI___stpcpy/*
29    Memcheck:Cond
30    fun:__GI___stpcpy
31    fun:*
32 }
33 {
34    strlen/__GI__dl_open/dlopen_doit
35    Memcheck:Cond
36    fun:strlen
37    fun:__GI__dl_open
38    fun:dlopen_doit
39 }
40 {
41    strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
42    Memcheck:Cond
43    fun:_dl_signal_cerror
44    fun:_dl_lookup_symbol_internal
45    fun:do_dlsym
46 }
47
48
49 #-------- For R H 8.0
50 {
51    elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
52    Memcheck:Cond
53    fun:elf_dynamic_do_rel.7
54    fun:_dl_relocate_object_internal
55    fun:dl_open_worker
56 }
57
58
59 #-------- For R H 7.3 on i686
60 {
61    _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
62    Memcheck:Cond
63    fun:_dl_relocate_object*
64    obj:*libc-2.2.?.so
65    fun:_dl_catch_error*
66 }
67 {
68    _dl_relocate_object_internal
69    Memcheck:Cond
70    fun:_dl_relocate_object_internal
71 }
72 {
73    index/*-2.2.5.so/*-2.2.5.so
74    Memcheck:Cond
75    fun:index
76    obj:*-2.2.5.so
77    obj:*-2.2.5.so
78 }
79 {
80    Red Hat 7.3 #4
81    Memcheck:Cond
82    fun:strlen
83    fun:dl_main
84    fun:_dl_sysdep_start
85 }
86
87 #-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
88 {
89    __stpcpy/*
90    Memcheck:Cond
91    fun:__stpcpy
92    fun:*
93 }
94 {
95    strlen/decompose_rpath/_dl_map_object
96    Memcheck:Cond
97    fun:strlen
98    fun:decompose_rpath
99    fun:_dl_map_object
100 }
101 {
102    strlen/_dl_sym/dlsym_doit
103    Memcheck:Cond
104    fun:strlen
105    fun:_dl_sym
106    fun:dlsym_doit
107 }
108 {
109    trecurse/__gconv_release_shlib(Addr4)
110    Memcheck:Addr4
111    fun:trecurse
112    fun:__gconv_release_shlib
113 }
114 {
115    do_release_shlib/trecurse(Addr4)
116    Memcheck:Addr4
117    fun:do_release_shlib
118    fun:trecurse
119 }
120
121 #-------- R H Limbo (glibc-2.2.90) stuff
122 {
123    elf_dynamic_do_rela.8/_dl_relocate_object_internal
124    Memcheck:Cond
125    fun:elf_dynamic_do_rela.8
126    fun:_dl_relocate_object_internal
127 }
128
129 {
130    __strnlen/_nl_make_l10nflist(Cond)
131    Memcheck:Cond
132    fun:__strnlen
133    fun:_nl_make_l10nflist
134 }
135
136 {
137    __strnlen/*vfprintf*
138    Memcheck:Cond
139    fun:__strnlen
140    fun:*vfprintf*
141 }
142
143 {
144    libXaw.so.7.0(Cond)
145    Memcheck:Cond
146    obj:*libXaw.so.7.0
147 }
148
149 #-------- Suppress errors appearing as a result of calling
150 #-------- __libc_freeres()
151
152 {
153    __twalk/*(Addr4)
154    Memcheck:Addr4
155    fun:__twalk
156 }
157
158 {
159    do_release_shlib/__twalk(Addr4)
160    Memcheck:Addr4
161    fun:do_release_shlib
162    fun:__twalk
163 }
164
165 {
166    __libc_freeres/free_mem/free(Free)
167    Memcheck:Free
168    fun:free
169    fun:free_mem
170    fun:__libc_freeres
171 }
172
173 #-------- Data races
174 {
175    _dl_lookup_symbol/fixup/_dl_runtime_resolve
176    Helgrind:Eraser
177    fun:_dl_lookup_symbol
178    fun:fixup
179    fun:_dl_runtime_resolve
180 }
181
182 {
183    _dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
184    Helgrind:Eraser
185    fun:_dl_lookup_symbol_internal
186    fun:fixup
187    fun:_dl_runtime_resolve
188 }
189
190 {
191    _dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
192    Helgrind:Eraser
193    fun:_dl_lookup_versioned_symbol
194    fun:fixup
195    fun:_dl_runtime_resolve
196 }
197
198 {
199    _dl_lookup_versioned_symbol_internal/fixup/_dl_runtime_resolve
200    Helgrind:Eraser
201    fun:_dl_lookup_versioned_symbol_internal
202    fun:fixup
203    fun:_dl_runtime_resolve
204 }
205
206 {
207    _dl_fini/exit/__libc_start_main
208    Helgrind:Eraser
209    fun:_dl_fini
210    fun:exit
211    fun:__libc_start_main
212 }
213
214 {
215    _dl_map_object_deps/dl_open_worker/_dl_catch_error/_dl_open
216    Helgrind:Eraser
217    fun:_dl_map_object_deps
218    fun:dl_open_worker
219    fun:_dl_catch_error
220    fun:_dl_open
221 }
222
223 {
224    _dl_map_object_deps_internal/dl_open_worker/_dl_catch_error_internal/_dl_open
225    Helgrind:Eraser
226    fun:_dl_map_object_deps_internal
227    fun:dl_open_worker
228    fun:_dl_catch_error_internal
229    fun:_dl_open
230 }
231
232 # even more glibc suppressions ?
233 {
234    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
235    Memcheck:Cond
236    obj:*libc-2.2.?.so
237    obj:*libc-2.2.?.so
238    obj:*libc-2.2.?.so
239 }
240 {
241    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
242    Memcheck:Value4
243    obj:*libc-2.2.?.so
244    obj:*libc-2.2.?.so
245    obj:*libc-2.2.?.so
246 }
247
248 ##### glibc 2.2.5 stuff perhaps?
249 ##### suppressions for coolo
250 {
251    strchr/dl_open_worker(Cond)
252    Memcheck:Cond
253    fun:strchr
254    fun:dl_open_worker
255 }
256
257    __rawmemchr(Cond)
258    Memcheck:Cond 
259    fun:__rawmemchr
260
261
262    _IO_vfprintf/__strnlen(Cond)
263    Memcheck:Cond 
264    fun:__strnlen
265    fun:_IO_vfprintf
266
267
268    __strchrnul/gethostbyname*(Cond)
269    Memcheck:Cond 
270    fun:__strchrnul
271    fun:gethostbyname*
272
273
274
275 ##----
276 {
277    strlen/*dl_map_object*(Cond)
278    Memcheck:Cond
279    fun:strlen
280    fun:*dl_map_object*
281 }
282
283 {
284    strlen/*dl_open_worker*(Cond)
285    Memcheck:Cond
286    fun:strlen
287    fun:*dl_open_worker*
288 }
289
290 {
291    *rawmemchr*/*nss*(Cond)
292    Memcheck:Cond
293    fun:*rawmemchr*
294    fun:*nss*
295 }
296
297 {
298    *strchrnul*/*nss*(Cond)
299    Memcheck:Cond
300    fun:*strchrnul*
301    fun:*nss*
302 }
303
304 # gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
305 # on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in
306 # __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45)
307 # (glibc-2.2.4) to read and write below %esp.  Hence the following
308 # two:
309 {
310    __mpn_construct_double/*(Addr4)
311    Memcheck:Addr4
312    fun:__mpn_construct_double
313    fun:*
314 }
315 {
316    __mpn_construct_double/*(Addr8)
317    Memcheck:Addr8
318    fun:__mpn_construct_double
319    fun:*
320 }
321
322 # More of the same (gcc bug, I'm pretty sure)
323 {
324    __fabs/*(Addr4)
325    Memcheck:Addr4
326    fun:__fabs
327    fun:*
328 }
329 {
330    __fabs/*(Addr8)
331    Memcheck:Addr8
332    fun:__fabs
333    fun:*
334 }
335
336
337 # Not sure what this is about ... but anyway
338 {
339    pthread_sighandler/*(Addr4)
340    Memcheck:Addr4
341    fun:pthread_sighandler
342    fun:*
343 }
344
345
346 # More glibc stuff, AFAICS
347
348 {
349    __strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
350    Memcheck:Cond
351    fun:__strnlen
352    fun:__argz_stringify
353    fun:_nl_make_l10nflist
354 }
355
356 #--------------
357 {
358    _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
359    Memcheck:Cond
360    fun:_dl_relocate_object*
361    fun:dl_open_worker
362    fun:_dl_catch_error*
363 }
364 {
365    _dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
366    Memcheck:Cond
367    fun:_dl_relocate_object
368    obj:*libc-2.2.?.so
369    fun:_dl_catch_error
370 }
371 {
372    _dl_relocate_object/dl_main(Cond)
373    Memcheck:Cond
374    fun:_dl_relocate_object
375    fun:dl_main
376 }
377 {
378    _dl_relocate_object_internal/dl_main(Cond)
379    Memcheck:Cond
380    fun:_dl_relocate_object_internal
381    fun:dl_main
382 }
383
384 {
385    strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
386    Memcheck:Cond
387    fun:strrchr
388    fun:_dl_map_object_from_fd
389    fun:_dl_map_object
390 }
391
392 {
393    _dl_start/ld-2.2.4.so(Cond)
394    Memcheck:Cond
395    fun:_dl_start
396    obj:/lib/ld-2.2.4.so
397 }
398
399 #-------- glibc 2.2.5/ Debian 3.0
400 {
401    _dl_start(Cond)
402    Memcheck:Cond
403    fun:_dl_start
404 }
405
406 {
407    _dl_start(Cond)
408    Memcheck:Cond
409    fun:_dl_relocate_object
410 }
411
412 #-------------------
413 {
414    socketcall.connect(serv_addr)/connect/*
415    Memcheck:Param
416    socketcall.connect(serv_addr)
417    fun:connect
418    fun:*
419 }
420 {
421    socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
422    Memcheck:Param
423    socketcall.connect(serv_addr)
424    obj:*libc-2.2.?.so
425    obj:*libc-2.2.?.so
426 }
427
428 #----------------------
429 {
430    write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
431    Memcheck:Param
432    write(buf)
433    fun:write
434    obj:/usr/X11R6/lib/libX11.so.6.2
435    obj:/usr/X11R6/lib/libX11.so.6.2
436 }
437 {
438    write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
439    Memcheck:Param
440    write(buf)
441    obj:*libc-2.2.?.so
442    obj:/usr/X11R6/lib/libX11.so.6.2
443    obj:/usr/X11R6/lib/libX11.so.6.2
444 }
445
446 #{
447 #   llseek(result)/lseek64/_IO_file_seek(Param)
448 #   Param
449 #   llseek(result)
450 #   fun:lseek64
451 #   fun:_IO_file_seek
452 #}
453
454 {
455    writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
456    Memcheck:Param
457    writev(vector[...])
458    fun:__writev
459    obj:/usr/X11R6/lib/libX11.so.6.2
460    obj:/usr/X11R6/lib/libX11.so.6.2
461 }
462
463 #----------------
464 {
465    __rawmemchr/libXt.so.6.0/libXt.so.6.0
466    Memcheck:Cond
467    fun:__rawmemchr
468    obj:/usr/X11R6/lib/libXt.so.6.0
469    obj:/usr/X11R6/lib/libXt.so.6.0
470 }
471 {
472    libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
473    Memcheck:Cond
474    obj:*libc-2.2.?.so
475    obj:/usr/X11R6/lib/libXt.so.6.0
476    obj:/usr/X11R6/lib/libXt.so.6.0
477 }
478
479 ## Bug in PRE(sys_clone), really.  Some args are not used.
480 {
481    LinuxThread clone use (child_tidptr)
482    Memcheck:Param
483    clone(child_tidptr)
484    fun:clone
485    fun:__pthread_initialize_manager
486    fun:pthread_create@@GLIBC_2.2.5
487 }
488
489 ## LinuxThreads manager writes messages containing undefined bytes
490 {
491    LinuxThreads: write/pthread_create
492    Memcheck:Param
493    write(buf)
494    fun:pthread_create@@GLIBC_2.1
495 }
496 {
497    LinuxThreads: write/pthread_create
498    Memcheck:Param
499    write(buf)
500    fun:write
501    fun:pthread_create@@GLIBC_2.1
502 }
503 {
504    LinuxThreads: write/pthread_onexit_process
505    Memcheck:Param
506    write(buf)
507    fun:write
508    fun:pthread_onexit_process
509    fun:exit
510 }
511 {
512    LinuxThreads: write/pthread_join
513    Memcheck:Param
514    write(buf)
515    fun:write
516    fun:pthread_join
517 }
518 {
519    LinuxThreads: write/pthread_create
520    Memcheck:Param
521    write(buf)
522    fun:write
523    fun:pthread_create@@GLIBC_2.2.5
524 }
525 {
526    LinuxThreads: write/__pthread_initialize_manager/pthread_create
527    Memcheck:Param
528    write(buf)
529    fun:write
530    fun:__pthread_initialize_manager
531    fun:pthread_create@@GLIBC_2.2.5
532 }
533
534 ## LinuxThreads leaks the stack and TLS data for the manager thread
535 {
536    LinuxThreads: leaks stack of manager thread
537    Memcheck:Leak
538    fun:malloc
539    fun:__pthread_initialize_manager
540    fun:pthread_create@@GLIBC_2.1
541 }
542 {
543    LinuxThreads: leaks TLS data for manager thread
544    Memcheck:Leak
545    fun:calloc
546    fun:_dl_allocate_tls
547    fun:__pthread_initialize_minimal
548 }
549 {
550    LinuxThreads: leaks TLS data for manager thread
551    Memcheck:Leak
552    fun:memalign
553    fun:_dl_allocate_tls
554    fun:__pthread_initialize_minimal
555 }
556 {
557    LinuxThreads: leaks stack of manager thread
558    Memcheck:Leak
559    fun:malloc
560    fun:__pthread_initialize_manager
561    fun:pthread_create@@GLIBC_2.2.5
562 }
563 {
564    LinuxThreads: leaks TLS data for manager thread
565    Memcheck:Leak
566    fun:calloc
567    fun:allocate_dtv
568    fun:_dl_allocate_tls_storage
569    fun:_dl_allocate_tls
570    fun:__pthread_initialize_minimal
571 }
572 {
573    LinuxThreads: leaks TLS data for manager thread
574    Memcheck:Leak
575    fun:memalign
576    fun:_dl_allocate_tls_storage
577    fun:_dl_allocate_tls
578    fun:__pthread_initialize_minimal
579 }