Suppressions for R H 8.
[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 #     skin_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
20 #     Free Addr1 Addr2 Addr4 Addr8
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 R H 8.0
28 {
29    elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
30    Memcheck:Cond
31    fun:elf_dynamic_do_rel.7
32    fun:_dl_relocate_object_internal
33    fun:dl_open_worker
34 }
35
36
37 #-------- For R H 7.3 on i686
38 {
39    _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
40    Memcheck:Cond
41    fun:_dl_relocate_object*
42    obj:*libc-2.2.?.so
43    fun:_dl_catch_error*
44 }
45
46
47 #-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
48 {
49    __stpcpy/*
50    Memcheck:Cond
51    fun:__stpcpy
52    fun:*
53 }
54 {
55    strlen/decompose_rpath/_dl_map_object
56    Memcheck:Cond
57    fun:strlen
58    fun:decompose_rpath
59    fun:_dl_map_object
60 }
61 {
62    strlen/_dl_sym/dlsym_doit
63    Memcheck:Cond
64    fun:strlen
65    fun:_dl_sym
66    fun:dlsym_doit
67 }
68 {
69    trecurse/__gconv_release_shlib(Addr4)
70    Addrcheck,Memcheck:Addr4
71    fun:trecurse
72    fun:__gconv_release_shlib
73 }
74 {
75    do_release_shlib/trecurse(Addr4)
76    Addrcheck,Memcheck:Addr4
77    fun:do_release_shlib
78    fun:trecurse
79 }
80
81 #-------- R H Limbo (glibc-2.2.90) stuff
82 {
83    elf_dynamic_do_rela.8/_dl_relocate_object_internal
84    Memcheck:Cond
85    fun:elf_dynamic_do_rela.8
86    fun:_dl_relocate_object_internal
87 }
88
89 {
90    __strnlen/_nl_make_l10nflist(Cond)
91    Memcheck:Cond
92    fun:__strnlen
93    fun:_nl_make_l10nflist
94 }
95
96 {
97    __strnlen/*vfprintf*
98    Memcheck:Cond
99    fun:__strnlen
100    fun:*vfprintf*
101 }
102
103 {
104    libXaw.so.7.0(Cond)
105    Memcheck:Cond
106    obj:*libXaw.so.7.0
107 }
108
109 #-------- Suppress errors appearing as a result of calling
110 #-------- __libc_freeres()
111
112 {
113    __twalk/*(Addr4)
114    Addrcheck,Memcheck:Addr4
115    fun:__twalk
116 }
117
118 {
119    do_release_shlib/__twalk(Addr4)
120    Addrcheck,Memcheck:Addr4
121    fun:do_release_shlib
122    fun:__twalk
123 }
124
125 {
126    __libc_freeres/free_mem/free(Free)
127    Addrcheck,Memcheck:Free
128    fun:free
129    fun:free_mem
130    fun:__libc_freeres
131 }
132
133 #-------- Data races
134 #{
135 #   _dl_lookup_symbol/fixup/_dl_runtime_resolve
136 #   helgrind:Eraser
137 #   fun:_dl_lookup_symbol
138 #   fun:fixup
139 #   fun:_dl_runtime_resolve
140 #}
141 #
142 #{
143 #   _dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
144 #   helgrind:Eraser
145 #   fun:_dl_lookup_versioned_symbol
146 #   fun:fixup
147 #   fun:_dl_runtime_resolve
148 #}
149
150 #-------- Threading bugs?
151 # glibc 'knows' that destroying a locked mutex will unlock it
152 {
153    pthread_error/__pthread_mutex_destroy/__closedir
154    core:PThread
155    fun:pthread_error
156    fun:__pthread_mutex_destroy
157    fun:__closedir
158 }
159
160 {
161    pthread_error/__pthread_mutex_destroy/_IO_default_finish
162    core:PThread
163    fun:pthread_error
164    fun:__pthread_mutex_destroy
165    fun:_IO_default_finish*
166 }
167
168 {
169    __pthread_mutex_unlock/_IO_funlockfile
170    core:PThread
171    fun:__pthread_mutex_unlock
172    fun:_IO_funlockfile
173 }
174
175 # even more glibc suppressions ?
176 {
177    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
178    Memcheck:Cond
179    obj:*libc-2.2.?.so
180    obj:*libc-2.2.?.so
181    obj:*libc-2.2.?.so
182 }
183 {
184    libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
185    Memcheck:Value4
186    obj:*libc-2.2.?.so
187    obj:*libc-2.2.?.so
188    obj:*libc-2.2.?.so
189 }
190
191 ##### glibc 2.2.5 stuff perhaps?
192 ##### suppressions for coolo
193 {
194    strchr/dl_open_worker(Cond)
195    Memcheck:Cond
196    fun:strchr
197    fun:dl_open_worker
198 }
199
200    __rawmemchr(Cond)
201    Memcheck:Cond 
202    fun:__rawmemchr
203
204
205    _IO_vfprintf/__strnlen(Cond)
206    Memcheck:Cond 
207    fun:__strnlen
208    fun:_IO_vfprintf
209
210
211    __strchrnul/gethostbyname*(Cond)
212    Memcheck:Cond 
213    fun:__strchrnul
214    fun:gethostbyname*
215
216
217
218 ##----
219 {
220    strlen/*dl_map_object*(Cond)
221    Memcheck:Cond
222    fun:strlen
223    fun:*dl_map_object*
224 }
225
226 {
227    strlen/*dl_open_worker*(Cond)
228    Memcheck:Cond
229    fun:strlen
230    fun:*dl_open_worker*
231 }
232
233 {
234    *rawmemchr*/*nss*(Cond)
235    Memcheck:Cond
236    fun:*rawmemchr*
237    fun:*nss*
238 }
239
240 {
241    *strchrnul*/*nss*(Cond)
242    Memcheck:Cond
243    fun:*strchrnul*
244    fun:*nss*
245 }
246
247 # gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
248 # on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in
249 # __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45)
250 # (glibc-2.2.4) to read and write below %esp.  Hence the following
251 # two:
252 {
253    __mpn_construct_double/*(Addr4)
254    Addrcheck,Memcheck:Addr4
255    fun:__mpn_construct_double
256    fun:*
257 }
258 {
259    __mpn_construct_double/*(Addr8)
260    Addrcheck,Memcheck:Addr8
261    fun:__mpn_construct_double
262    fun:*
263 }
264
265 # More of the same (gcc bug, I'm pretty sure)
266 {
267    __fabs/*(Addr4)
268    Addrcheck,Memcheck:Addr4
269    fun:__fabs
270    fun:*
271 }
272 {
273    __fabs/*(Addr8)
274    Addrcheck,Memcheck:Addr8
275    fun:__fabs
276    fun:*
277 }
278
279
280 # Not sure what this is about ... but anyway
281 {
282    pthread_sighandler/*(Addr4)
283    Addrcheck,Memcheck:Addr4
284    fun:pthread_sighandler
285    fun:*
286 }
287
288
289 # More glibc stuff, AFAICS
290
291 {
292    __strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
293    Memcheck:Cond
294    fun:__strnlen
295    fun:__argz_stringify
296    fun:_nl_make_l10nflist
297 }
298
299 #--------------
300 {
301    _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
302    Memcheck:Cond
303    fun:_dl_relocate_object*
304    fun:dl_open_worker
305    fun:_dl_catch_error*
306 }
307 {
308    _dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
309    Memcheck:Cond
310    fun:_dl_relocate_object
311    obj:*libc-2.2.?.so
312    fun:_dl_catch_error
313 }
314
315 {
316    strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
317    Memcheck:Cond
318    fun:strrchr
319    fun:_dl_map_object_from_fd
320    fun:_dl_map_object
321 }
322
323 #-------------------
324 {
325    socketcall.connect(serv_addr)/__libc_connect/*
326    Addrcheck,Memcheck:Param
327    socketcall.connect(serv_addr)
328    fun:__libc_connect
329    fun:*
330 }
331 {
332    socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
333    Addrcheck,Memcheck:Param
334    socketcall.connect(serv_addr)
335    obj:*libc-2.2.?.so
336    obj:*libc-2.2.?.so
337 }
338
339 #----------------------
340 {
341    write(buf)/__libc_write/libX11.so.6.2/libX11.so.6.2(Param)
342    Addrcheck,Memcheck:Param
343    write(buf)
344    fun:__libc_write
345    obj:/usr/X11R6/lib/libX11.so.6.2
346    obj:/usr/X11R6/lib/libX11.so.6.2
347 }
348 {
349    write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
350    Addrcheck,Memcheck:Param
351    write(buf)
352    obj:*libc-2.2.?.so
353    obj:/usr/X11R6/lib/libX11.so.6.2
354    obj:/usr/X11R6/lib/libX11.so.6.2
355 }
356
357 #{
358 #   llseek(result)/__libc_lseek64/_IO_file_seek(Param)
359 #   Param
360 #   llseek(result)
361 #   fun:__libc_lseek64
362 #   fun:_IO_file_seek
363 #}
364
365 {
366    writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
367    Addrcheck,Memcheck:Param
368    writev(vector[...])
369    fun:__writev
370    obj:/usr/X11R6/lib/libX11.so.6.2
371    obj:/usr/X11R6/lib/libX11.so.6.2
372 }
373
374 #----------------
375 {
376    __rawmemchr/libXt.so.6.0/libXt.so.6.0
377    Memcheck:Cond
378    fun:__rawmemchr
379    obj:/usr/X11R6/lib/libXt.so.6.0
380    obj:/usr/X11R6/lib/libXt.so.6.0
381 }
382 {
383    libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
384    Memcheck:Cond
385    obj:*libc-2.2.?.so
386    obj:/usr/X11R6/lib/libXt.so.6.0
387    obj:/usr/X11R6/lib/libXt.so.6.0
388 }
389
390 ##----------------------------------------------------------------------##
391