Memcheck complains a lot at glibc-2.2.5 startup, for unclear reasons.
[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
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 #     if Free: name of free-ing fn)
26
27 #-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
28 {
29    __GI___stpcpy/*
30    Memcheck:Cond
31    fun:__GI___stpcpy
32    fun:*
33 }
34 {
35    strlen/__GI__dl_open/dlopen_doit
36    Memcheck:Cond
37    fun:strlen
38    fun:__GI__dl_open
39    fun:dlopen_doit
40 }
41 {
42    strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
43    Memcheck:Cond
44    fun:_dl_signal_cerror
45    fun:_dl_lookup_symbol_internal
46    fun:do_dlsym
47 }
48
49
50 #-------- For R H 8.0
51 {
52    elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
53    Memcheck:Cond
54    fun:elf_dynamic_do_rel.7
55    fun:_dl_relocate_object_internal
56    fun:dl_open_worker
57 }
58
59
60 #-------- For R H 7.3 on i686
61 {
62    _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
63    Memcheck:Cond
64    fun:_dl_relocate_object*
65    obj:*libc-2.2.?.so
66    fun:_dl_catch_error*
67 }
68 {
69    _dl_relocate_object_internal
70    Memcheck:Cond
71    fun:_dl_relocate_object_internal
72 }
73 {
74    index/*-2.2.5.so/*-2.2.5.so
75    Memcheck:Cond
76    fun:index
77    obj:*-2.2.5.so
78    obj:*-2.2.5.so
79 }
80
81
82 #-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
83 {
84    __stpcpy/*
85    Memcheck:Cond
86    fun:__stpcpy
87    fun:*
88 }
89 {
90    strlen/decompose_rpath/_dl_map_object
91    Memcheck:Cond
92    fun:strlen
93    fun:decompose_rpath
94    fun:_dl_map_object
95 }
96 {
97    strlen/_dl_sym/dlsym_doit
98    Memcheck:Cond
99    fun:strlen
100    fun:_dl_sym
101    fun:dlsym_doit
102 }
103 {
104    trecurse/__gconv_release_shlib(Addr4)
105    Addrcheck,Memcheck:Addr4
106    fun:trecurse
107    fun:__gconv_release_shlib
108 }
109 {
110    do_release_shlib/trecurse(Addr4)
111    Addrcheck,Memcheck:Addr4
112    fun:do_release_shlib
113    fun:trecurse
114 }
115
116 #-------- R H Limbo (glibc-2.2.90) stuff
117 {
118    elf_dynamic_do_rela.8/_dl_relocate_object_internal
119    Memcheck:Cond
120    fun:elf_dynamic_do_rela.8
121    fun:_dl_relocate_object_internal
122 }
123
124 {
125    __strnlen/_nl_make_l10nflist(Cond)
126    Memcheck:Cond
127    fun:__strnlen
128    fun:_nl_make_l10nflist
129 }
130
131 {
132    __strnlen/*vfprintf*
133    Memcheck:Cond
134    fun:__strnlen
135    fun:*vfprintf*
136 }
137
138 {
139    libXaw.so.7.0(Cond)
140    Memcheck:Cond
141    obj:*libXaw.so.7.0
142 }
143
144 #-------- Suppress errors appearing as a result of calling
145 #-------- __libc_freeres()
146
147 {
148    __twalk/*(Addr4)
149    Addrcheck,Memcheck:Addr4
150    fun:__twalk
151 }
152
153 {
154    do_release_shlib/__twalk(Addr4)
155    Addrcheck,Memcheck:Addr4
156    fun:do_release_shlib
157    fun:__twalk
158 }
159
160 {
161    __libc_freeres/free_mem/free(Free)
162    Addrcheck,Memcheck:Free
163    fun:free
164    fun:free_mem
165    fun:__libc_freeres
166 }
167
168 #-------- Data races
169 {
170    _dl_lookup_symbol/fixup/_dl_runtime_resolve
171    Helgrind:Eraser
172    fun:_dl_lookup_symbol
173    fun:fixup
174    fun:_dl_runtime_resolve
175 }
176
177 {
178    _dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
179    Helgrind:Eraser
180    fun:_dl_lookup_symbol_internal
181    fun:fixup
182    fun:_dl_runtime_resolve
183 }
184
185 {
186    _dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
187    Helgrind:Eraser
188    fun:_dl_lookup_versioned_symbol
189    fun:fixup
190    fun:_dl_runtime_resolve
191 }
192
193 {
194    _dl_lookup_versioned_symbol_internal/fixup/_dl_runtime_resolve
195    Helgrind:Eraser
196    fun:_dl_lookup_versioned_symbol_internal
197    fun:fixup
198    fun:_dl_runtime_resolve
199 }
200
201 {
202    _dl_fini/exit/__libc_start_main
203    Helgrind:Eraser
204    fun:_dl_fini
205    fun:exit
206    fun:__libc_start_main
207 }
208
209 {
210    _dl_map_object_deps/dl_open_worker/_dl_catch_error/_dl_open
211    Helgrind:Eraser
212    fun:_dl_map_object_deps
213    fun:dl_open_worker
214    fun:_dl_catch_error
215    fun:_dl_open
216 }
217
218 {
219    _dl_map_object_deps_internal/dl_open_worker/_dl_catch_error_internal/_dl_open
220    Helgrind:Eraser
221    fun:_dl_map_object_deps_internal
222    fun:dl_open_worker
223    fun:_dl_catch_error_internal
224    fun:_dl_open
225 }
226
227 #-------- Threading bugs?
228 # glibc 'knows' that destroying a locked mutex will unlock it
229 {
230    pthread_error/pthread_mutex_destroy/__closedir
231    core:PThread
232    fun:pthread_error
233    fun:pthread_mutex_destroy
234    fun:__closedir
235 }
236
237 {
238    pthread_error/pthread_mutex_destroy/_IO_default_finish
239    core:PThread
240    fun:pthread_error
241    fun:pthread_mutex_destroy
242    fun:_IO_default_finish*
243 }
244
245 {
246    pthread_mutex_unlock/_IO_funlockfile
247    core:PThread
248    fun:pthread_mutex_unlock
249    fun:_IO_funlockfile
250 }
251
252 # even more glibc suppressions ?
253 {
254    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
255    Memcheck:Cond
256    obj:*libc-2.2.?.so
257    obj:*libc-2.2.?.so
258    obj:*libc-2.2.?.so
259 }
260 {
261    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
262    Memcheck:Value4
263    obj:*libc-2.2.?.so
264    obj:*libc-2.2.?.so
265    obj:*libc-2.2.?.so
266 }
267
268 ##### glibc 2.2.5 stuff perhaps?
269 ##### suppressions for coolo
270 {
271    strchr/dl_open_worker(Cond)
272    Memcheck:Cond
273    fun:strchr
274    fun:dl_open_worker
275 }
276
277    __rawmemchr(Cond)
278    Memcheck:Cond 
279    fun:__rawmemchr
280
281
282    _IO_vfprintf/__strnlen(Cond)
283    Memcheck:Cond 
284    fun:__strnlen
285    fun:_IO_vfprintf
286
287
288    __strchrnul/gethostbyname*(Cond)
289    Memcheck:Cond 
290    fun:__strchrnul
291    fun:gethostbyname*
292
293
294
295 ##----
296 {
297    strlen/*dl_map_object*(Cond)
298    Memcheck:Cond
299    fun:strlen
300    fun:*dl_map_object*
301 }
302
303 {
304    strlen/*dl_open_worker*(Cond)
305    Memcheck:Cond
306    fun:strlen
307    fun:*dl_open_worker*
308 }
309
310 {
311    *rawmemchr*/*nss*(Cond)
312    Memcheck:Cond
313    fun:*rawmemchr*
314    fun:*nss*
315 }
316
317 {
318    *strchrnul*/*nss*(Cond)
319    Memcheck:Cond
320    fun:*strchrnul*
321    fun:*nss*
322 }
323
324 # gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
325 # on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in
326 # __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45)
327 # (glibc-2.2.4) to read and write below %esp.  Hence the following
328 # two:
329 {
330    __mpn_construct_double/*(Addr4)
331    Addrcheck,Memcheck:Addr4
332    fun:__mpn_construct_double
333    fun:*
334 }
335 {
336    __mpn_construct_double/*(Addr8)
337    Addrcheck,Memcheck:Addr8
338    fun:__mpn_construct_double
339    fun:*
340 }
341
342 # More of the same (gcc bug, I'm pretty sure)
343 {
344    __fabs/*(Addr4)
345    Addrcheck,Memcheck:Addr4
346    fun:__fabs
347    fun:*
348 }
349 {
350    __fabs/*(Addr8)
351    Addrcheck,Memcheck:Addr8
352    fun:__fabs
353    fun:*
354 }
355
356
357 # Not sure what this is about ... but anyway
358 {
359    pthread_sighandler/*(Addr4)
360    Addrcheck,Memcheck:Addr4
361    fun:pthread_sighandler
362    fun:*
363 }
364
365
366 # More glibc stuff, AFAICS
367
368 {
369    __strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
370    Memcheck:Cond
371    fun:__strnlen
372    fun:__argz_stringify
373    fun:_nl_make_l10nflist
374 }
375
376 #--------------
377 {
378    _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
379    Memcheck:Cond
380    fun:_dl_relocate_object*
381    fun:dl_open_worker
382    fun:_dl_catch_error*
383 }
384 {
385    _dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
386    Memcheck:Cond
387    fun:_dl_relocate_object
388    obj:*libc-2.2.?.so
389    fun:_dl_catch_error
390 }
391 {
392    _dl_relocate_object/dl_main(Cond)
393    Memcheck:Cond
394    fun:_dl_relocate_object
395    fun:dl_main
396 }
397 {
398    _dl_relocate_object_internal/dl_main(Cond)
399    Memcheck:Cond
400    fun:_dl_relocate_object_internal
401    fun:dl_main
402 }
403
404 {
405    strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
406    Memcheck:Cond
407    fun:strrchr
408    fun:_dl_map_object_from_fd
409    fun:_dl_map_object
410 }
411
412 {
413    _dl_start/ld-2.2.4.so(Cond)
414    Memcheck:Cond
415    fun:_dl_start
416    obj:/lib/ld-2.2.4.so
417 }
418
419 #-------- glibc 2.2.5/ Debian 3.0
420 {
421    _dl_start/ld-2.2.5.so(Cond)
422    Memcheck:Cond
423    fun:_dl_start
424    obj:/lib/ld-2.2.5.so
425 }
426
427 #-------------------
428 {
429    socketcall.connect(serv_addr)/connect/*
430    Addrcheck,Memcheck:Param
431    socketcall.connect(serv_addr)
432    fun:connect
433    fun:*
434 }
435 {
436    socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
437    Addrcheck,Memcheck:Param
438    socketcall.connect(serv_addr)
439    obj:*libc-2.2.?.so
440    obj:*libc-2.2.?.so
441 }
442
443 #----------------------
444 {
445    write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
446    Addrcheck,Memcheck:Param
447    write(buf)
448    fun:write
449    obj:/usr/X11R6/lib/libX11.so.6.2
450    obj:/usr/X11R6/lib/libX11.so.6.2
451 }
452 {
453    write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
454    Addrcheck,Memcheck:Param
455    write(buf)
456    obj:*libc-2.2.?.so
457    obj:/usr/X11R6/lib/libX11.so.6.2
458    obj:/usr/X11R6/lib/libX11.so.6.2
459 }
460
461 #{
462 #   llseek(result)/lseek64/_IO_file_seek(Param)
463 #   Param
464 #   llseek(result)
465 #   fun:lseek64
466 #   fun:_IO_file_seek
467 #}
468
469 {
470    writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
471    Addrcheck,Memcheck:Param
472    writev(vector[...])
473    fun:__writev
474    obj:/usr/X11R6/lib/libX11.so.6.2
475    obj:/usr/X11R6/lib/libX11.so.6.2
476 }
477
478 #----------------
479 {
480    __rawmemchr/libXt.so.6.0/libXt.so.6.0
481    Memcheck:Cond
482    fun:__rawmemchr
483    obj:/usr/X11R6/lib/libXt.so.6.0
484    obj:/usr/X11R6/lib/libXt.so.6.0
485 }
486 {
487    libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
488    Memcheck:Cond
489    obj:*libc-2.2.?.so
490    obj:/usr/X11R6/lib/libXt.so.6.0
491    obj:/usr/X11R6/lib/libXt.so.6.0
492 }
493
494 # LinuxThreads suppressesion
495 {
496    LinuxThreads: write/pthread_create
497    Memcheck:Param
498    write(buf)
499    fun:pthread_create@@GLIBC_2.1
500 }
501 {
502    LinuxThreads: write/pthread_create
503    Memcheck:Param
504    write(buf)
505    fun:write
506    fun:pthread_create@@GLIBC_2.1
507 }