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