Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1684)

Side by Side Diff: binaries/linux_x64/lib/valgrind/default.supp

Issue 543157: Add Valgrind binaries for Linux x64 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/valgrind/
Patch Set: Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # This is a generated file, composed of the following suppression rules:
2 # exp-ptrcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567- NPTL-helgrind.supp glibc-2.X.supp
3 {
4 lib-X11-used-old-pointer-after-realloc-1
5 exp-ptrcheck:Heap
6 fun:strlen
7 obj:/usr/lib*/libX11.so*
8 obj:/usr/lib*/libX11.so*
9 }
10 {
11 lib-X11-used-old-pointer-after-realloc-2
12 exp-ptrcheck:Heap
13 obj:/usr/lib*/libX11.so*
14 obj:/usr/lib*/libX11.so*
15 }
16
17 {
18 ld-2.X-invalid-Add32/64-who-knows
19 exp-ptrcheck:Arith
20 obj:/*lib*/ld-2.*so*
21 obj:/*lib*/ld-2.*so*
22 }
23
24 {
25 ld-2.X possibly applying relocations
26 exp-ptrcheck:SorG
27 obj:/*lib*/ld-2.*so*
28 obj:/*lib*/ld-2.*so*
29 }
30
31 # I'm pretty sure this is a false positive caused by the sg_ stuff
32 {
33 glibc realpath false positive
34 exp-ptrcheck:SorG
35 fun:realpath
36 fun:*
37 }
38
39 {
40 If I had to guess, inlined or nameless strlen etc in ld.so
41 exp-ptrcheck:Heap
42 obj:/*lib*/ld-2.*so*
43 obj:/*lib*/ld-2.*so*
44 }
45
46 {
47 I think this is glibc's ultra optimised getenv doing 2 byte reads
48 exp-ptrcheck:SorG
49 fun:getenv
50 }
51
52 {
53 Occurs on Fedora 7--9?
54 exp-ptrcheck:Heap
55 fun:_dl_fini
56 fun:exit
57 fun:(below main)
58 }
59
60
61 ##----------------------------------------------------------------------##
62
63 # Errors to suppress by default with XFree86 3.3.6)
64
65 # Format of this file is:
66 # {
67 # name_of_suppression
68 # tool_name:supp_kind
69 # (optional extra info for some suppression types)
70 # caller0 name, or /name/of/so/file.so
71 # caller1 name, or ditto
72 # (optionally: caller2 name)
73 # (optionally: caller3 name)
74 # }
75 #
76 # For Memcheck, the supp_kinds are:
77 #
78 # Param Value1 Value2 Value4 Value8 Value16 Jump
79 # Free Addr1 Addr2 Addr4 Addr8 Addr16
80 # Cond (previously known as Value0)
81 #
82 # and the optional extra info is:
83 # if Param: name of system call param
84
85 ##----------------------------------------------------------------------##
86
87 {
88 X11-Cond-0
89 Memcheck:Cond
90 obj:*libXt.so.6.0
91 obj:*libXt.so.6.0
92 obj:*libXt.so.6.0
93 }
94 {
95 X11-Cond-1
96 Memcheck:Cond
97 fun:__rawmemchr
98 obj:*libXt.so.6.0
99 obj:*libXt.so.6.0
100 }
101
102
103 # Suppressions for XFree86-3.3.X
104
105 {
106 X11-Addr4-1
107 Memcheck:Addr4
108 obj:/usr/X11R6/lib/libX11.so.6.1
109 obj:/usr/X11R6/lib/libX11.so.6.1
110 obj:/usr/X11R6/lib/libX11.so.6.1
111 }
112
113 {
114 X11-Addr4-2
115 Memcheck:Addr4
116 obj:/usr/X11R6/lib/libX11.so.6.1
117 obj:/usr/X11R6/lib/libX11.so.6.1
118 obj:/usr/X11R6/lib/libXt.so.6.0
119 }
120
121 {
122 X11-Addr4-3
123 Memcheck:Addr4
124 obj:/usr/X11R6/lib/libXt.so.6.0
125 obj:/usr/X11R6/lib/libXt.so.6.0
126 obj:/usr/X11R6/lib/libXt.so.6.0
127 }
128
129 {
130 X11-Addr4-4
131 Memcheck:Addr4
132 obj:/usr/X11R6/lib/libX11.so.6.1
133 obj:/usr/X11R6/lib/libXt.so.6.0
134 obj:/usr/X11R6/lib/libXt.so.6.0
135 }
136
137 {
138 X11-Addr4-5
139 Memcheck:Addr4
140 fun:__rawmemchr
141 obj:/usr/X11R6/lib/libXt.so.6.0
142 obj:/usr/X11R6/lib/libXt.so.6.0
143 }
144
145 {
146 X11-Addr4-6
147 Memcheck:Addr4
148 obj:/usr/X11R6/lib/libXmu.so.6.0
149 obj:/usr/X11R6/lib/libXmu.so.6.0
150 obj:/usr/X11R6/lib/libXt.so.6.0
151 }
152
153 {
154 X11-Addr4-7
155 Memcheck:Addr4
156 obj:/usr/X11R6/lib/libXt.so.6.0
157 obj:/usr/X11R6/lib/libXt.so.6.0
158 obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
159 }
160
161 {
162 X11-Param-1
163 Memcheck:Param
164 write(buf)
165 fun:__libc_write
166 obj:/usr/X11R6/lib/libX11.so.6.1
167 obj:/usr/X11R6/lib/libX11.so.6.1
168 }
169
170 {
171 X11-Addr4-8
172 Memcheck:Addr4
173 obj:/usr/X11R6/lib/libX11.so.6.1
174 obj:/usr/X11R6/lib/libXpm.so.4.11
175 obj:/usr/X11R6/lib/libXpm.so.4.11
176 }
177
178 {
179 X11-Addr4-8
180 Memcheck:Addr4
181 obj:/usr/X11R6/lib/libXt.so.6.0
182 obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
183 obj:/usr/X11R6/lib/libXt.so.6.0
184 }
185
186 {
187 X11-Addr4-9
188 Memcheck:Addr4
189 obj:/usr/X11R6/lib/libXaw.so.6.1
190 obj:/usr/X11R6/lib/libXt.so.6.0
191 obj:/usr/X11R6/lib/libXt.so.6.0
192 }
193
194 {
195 X11-Addr4-10
196 Memcheck:Addr4
197 obj:/usr/X11R6/lib/libXaw.so.6.1
198 obj:/usr/X11R6/lib/libXaw.so.6.1
199 obj:/usr/X11R6/lib/libXt.so.6.0
200 }
201
202 {
203 X11-Addr4-11
204 Memcheck:Addr4
205 obj:/usr/X11R6/lib/libXt.so.6.0
206 obj:/usr/X11R6/lib/libXt.so.6.0
207 obj:/usr/X11R6/lib/libXaw.so.6.1
208 }
209
210
211
212 ##----------------------------------------------------------------------##
213
214 ##----------------------------------------------------------------------##
215
216 # Errors to suppress by default with XFree86 4.1.0)
217
218 # *** And a bunch of other stuff which is completely unrelated
219 # to X. The default suppressions are a bit of a mess and could do
220 # with a good tidying up.
221
222 # Format of this file is:
223 # {
224 # name_of_suppression
225 # tool_name:supp_kind
226 # (optional extra info for some suppression types)
227 # caller0 name, or /name/of/so/file.so
228 # caller1 name, or ditto
229 # (optionally: caller2 name)
230 # (optionally: caller3 name)
231 # }
232 #
233 # For Memcheck, the supp_kinds are:
234 #
235 # Param Value1 Value2 Value4 Value8 Value16 Jump
236 # Free Addr1 Addr2 Addr4 Addr8 Addr16
237 # Cond (previously known as Value0)
238 #
239 # and the optional extra info is:
240 # if Param: name of system call param
241
242 # Resulting from R H 8.0
243 {
244 *libc_write/libX11.so.6.2/*X11TransWrite(Param)
245 Memcheck:Param
246 write(buf)
247 fun:*libc_write
248 obj:/usr/X11R6/lib*/libX11.so.6.2
249 fun:*X11TransWrite
250 }
251
252 {
253 libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
254 Memcheck:Cond
255 obj:/usr/X11R6/lib*/libX11.so.6.2
256 obj:/usr/X11R6/lib*/libX11.so.6.2
257 obj:/usr/X11R6/lib*/libX11.so.6.2
258 }
259
260 {
261 libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
262 Memcheck:Cond
263 obj:/usr/X11R6/lib*/libXt.so.6.0
264 obj:/usr/X11R6/lib*/libXt.so.6.0
265 obj:/usr/X11R6/lib*/libXt.so.6.0
266 }
267
268
269 {
270 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
271 Memcheck:Cond
272 obj:/usr/X11R6/lib*/libXaw.so.7.0
273 obj:/usr/X11R6/lib*/libXaw.so.7.0
274 obj:/usr/X11R6/lib*/libXaw.so.7.0
275 }
276
277 {
278 libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
279 Memcheck:Cond
280 obj:/usr/X11R6/lib*/libXmu.so.6.2
281 obj:/usr/X11R6/lib*/libXmu.so.6.2
282 obj:/usr/X11R6/lib*/libXmu.so.6.2
283 }
284
285 {
286 libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
287 Memcheck:Cond
288 obj:/usr/X11R6/lib*/libXt.so.6.0
289 obj:/usr/X11R6/lib*/libXt.so.6.0
290 obj:/usr/X11R6/lib*/libXaw.so.7.0
291 }
292
293 {
294 libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
295 Memcheck:Value4
296 obj:/usr/X11R6/lib*/libXaw.so.7.0
297 obj:/usr/X11R6/lib*/libXaw.so.7.0
298 obj:/usr/X11R6/lib*/libXt.so.6.0
299 }
300
301 {
302 libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
303 Memcheck:Cond
304 obj:/usr/X11R6/lib*/libXaw.so.7.0
305 obj:/usr/X11R6/lib*/libXaw.so.7.0
306 obj:/usr/X11R6/lib*/libXt.so.6.0
307 }
308
309 {
310 libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
311 Memcheck:Cond
312 obj:/usr/X11R6/lib*/libX11.so.6.2
313 obj:/usr/X11R6/lib*/libX11.so.6.2
314 obj:/usr/X11R6/lib*/libXaw.so.7.0
315 }
316
317 {
318 libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
319 Memcheck:Addr4
320 obj:/usr/X11R6/lib*/libX11.so.6.2
321 obj:/usr/X11R6/lib*/libX11.so.6.2
322 obj:/usr/X11R6/lib*/libXaw.so.7.0
323 }
324
325 {
326 libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
327 Memcheck:Cond
328 obj:/usr/X11R6/lib*/libX11.so.6.2
329 obj:/usr/X11R6/lib*/libXaw.so.7.0
330 obj:/usr/X11R6/lib*/libXaw.so.7.0
331 }
332
333 {
334 libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
335 Memcheck:Cond
336 obj:/usr/X11R6/lib*/libXpm.so.4.11
337 obj:/usr/X11R6/lib*/libXpm.so.4.11
338 obj:/usr/X11R6/lib*/libXpm.so.4.11
339 }
340
341 {
342 struct with uninitialized paddings
343 Memcheck:Param
344 writev(vector[...])
345 fun:*_writev
346 fun:_X11TransSocketWritev
347 fun:_X11TransWritev
348 fun:*
349 }
350
351 {
352 struct with uninitialized paddings - libxcb
353 Memcheck:Param
354 writev(vector[...])
355 obj:/lib*/*.so
356 obj:/usr/lib*/libxcb.so.1.0.0
357 obj:/usr/lib*/libxcb.so.1.0.0
358 fun:xcb_send_request
359 fun:_X*
360 }
361
362 {
363 struct with uninitialized paddings - libxcb
364 Memcheck:Param
365 writev(vector[...])
366 obj:/lib*/*.so
367 obj:/usr/lib*/libxcb.so.1.0.0
368 obj:/usr/lib*/libxcb.so.1.0.0
369 obj:/usr/lib*/libxcb.so.1.0.0
370 fun:xcb_*
371 fun:_X*
372 }
373
374 {
375 another struct with uninitialized paddings
376 Memcheck:Param
377 write(buf)
378 obj:*
379 fun:_IceTransSocketWrite
380 fun:_IceTransWrite
381 fun:_IceWrite
382 }
383
384 {
385 Xorg 6.8.1 uninit _write* padding
386 Memcheck:Param
387 write(buf)
388 fun:*
389 fun:_X11TransWrite
390 obj:/usr/X11R6/lib*/libX11.so.6.2
391 }
392
393 {
394 Xorg 6.8.1 uninit write padding
395 Memcheck:Param
396 write(buf)
397 fun:write
398 fun:_X11TransWrite
399 obj:/usr/X11R6/lib*/libX11.so.6.2
400 }
401
402 {
403 Xorg 6.8.1 ICE uninit __write* padding
404 Memcheck:Param
405 write(buf)
406 obj:*
407 fun:_IceTransWrite
408 fun:_IceWrite
409 fun:IceFlush
410 }
411
412 {
413 Xorg 6.8.1 writev uninit padding
414 Memcheck:Param
415 writev(vector[...])
416 fun:writev
417 obj:/usr/X11R6/lib*/libX11.so.6.2
418 fun:_X11TransWritev
419 fun:_XSend
420 }
421
422 {
423 Xorg 6.9.0 writev uninit padding
424 Memcheck:Param
425 writev(vector[...])
426 fun:do_writev
427 fun:writev
428 obj:/usr/X11R6/lib*/libX11.so.6.2
429 fun:_X11TransWritev
430 fun:_XSend
431 }
432
433 {
434 X on SUSE11 writev uninit padding
435 Memcheck:Param
436 writev(vector[...])
437 fun:writev
438 obj:/usr/lib*/libxcb.so*
439 obj:/usr/lib*/libxcb.so*
440 }
441 {
442 X on SUSE11 writev uninit padding 2
443 Memcheck:Param
444 writev(vector[...])
445 obj:/lib*/ld-2.*.so*
446 obj:/usr/lib*/libxcb.so*
447 obj:/usr/lib*/libxcb.so*
448 }
449 {
450 X on SUSE11 writev uninit padding 3
451 Memcheck:Param
452 writev(vector[...])
453 obj:/lib*/ld-2.*.so*
454 obj:/usr/lib*/libORBit*.so*
455 obj:/usr/lib*/libORBit*.so*
456 }
457 {
458 X on SUSE11 writev uninit padding 4
459 Memcheck:Param
460 writev(vector[...])
461 obj:/lib*/libc-2.*.so*
462 obj:/usr/lib*/libORBit*.so*
463 obj:/usr/lib*/libORBit*.so*
464 }
465
466
467 # There's something strange about a % 127 in XftFontOpenInfo
468 # (hashing) which gcc turns into a multiply by 33818641 and
469 # some other guff instead. I don't understand it enough to
470 # know if libXft is broken or if memcheck's value tracking is
471 # inadequate here. Anyway, for the moment, suppress it.
472 #
473 # Use of uninitialised value of size 8
474 # at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
475 # by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
476 # by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&,
477 # QFont::Script) (qfontdatabase_x11.cpp:1942)
478 # by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
479 # QFontDef const&, int) (qfontdatabase.cpp:996)
480 {
481 XftFontOpenInfo-umod-127-strangeness
482 Memcheck:Value8
483 obj:/usr/X11*/lib*/libXft.so*
484 obj:/usr/X11*/lib*/libXft.so*
485 }
486 {
487 XftFontOpenInfo-umod-127-strangeness-a-la-xorg
488 Memcheck:Value8
489 obj:/usr/lib*/libXft.so*
490 obj:/usr/lib*/libXft.so*
491 }
492
493 {
494 More X padding stuff
495 Memcheck:Param
496 writev(vector[...])
497 fun:*writev*
498 obj:/usr/X11*/lib*/libX11.so*
499 obj:/usr/X11*/lib*/libX11.so*
500 }
501
502
503 ##----------------------------------------------------------------------##
504 # Completely inappropriate place, but ...
505
506 {
507 ifort-9.X-on-i686-1
508 Memcheck:Addr4
509 fun:unaligned_bigint
510 fun:hash
511 fun:for__add_to_lf_table
512 }
513 {
514 ifort-9.X-on-amd64-1
515 Memcheck:Addr8
516 fun:unaligned_bigint
517 fun:hash
518 fun:for__add_to_lf_table
519 }
520
521
522 # zlib-1.2.x uses uninitialised memory in some tricky way which
523 # apparently is harmless (it must amount to a vectorised while-loop,
524 # nothing else makes sense). Fools Memcheck though. See the mentioned
525 # URL for details.
526 {
527 zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
528 Memcheck:Cond
529 obj:/*lib*/libz.so.1.2.*
530 ...
531 obj:/*lib*/libz.so.1.2.*
532 fun:deflate
533 }
534 {
535 zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
536 Memcheck:Cond
537 obj:/*lib*/libz.so.1.2.*
538 fun:deflate
539 }
540
541 {
542 zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
543 Memcheck:Value8
544 obj:/*lib*/libz.so.1.2.*
545 ...
546 obj:/*lib*/libz.so.1.2.*
547 fun:deflate
548 }
549 {
550 zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
551 Memcheck:Value8
552 obj:/*lib*/libz.so.1.2.*
553 fun:deflate
554 }
555
556 {
557 zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
558 Memcheck:Value4
559 obj:/*lib*/libz.so.1.2.*
560 ...
561 obj:/*lib*/libz.so.1.2.*
562 fun:deflate
563 }
564 {
565 zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
566 Memcheck:Value4
567 obj:/*lib*/libz.so.1.2.*
568 fun:deflate
569 }
570
571
572 ##----------------------------------------------------------------------##
573
574 ## More general versions of some of the old X suppressions above
575 {
576 Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
577 Memcheck:Cond
578 obj:/usr/*lib*/libXaw*so*
579 obj:/usr/*lib*/libXaw*so*
580 obj:/usr/*lib*/libXaw*so*
581 }
582 {
583 Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
584 Memcheck:Cond
585 obj:/usr/*lib*/libXaw*so*
586 obj:/usr/*lib*/libXaw*so*
587 obj:/usr/*lib*/libXt*so*
588 }
589
590 {
591 Ubuntu804-hack-1
592 Memcheck:Overlap
593 fun:mempcpy
594 fun:_IO_default_xsputn
595 obj:/lib*/libc-2.*so*
596 }
597 #
598 # Suppression patterns for ld, the dynamic loader.
599 #
600
601 # Suppress all data races triggered by ld.
602 {
603 drd-ld
604 drd:ConflictingAccess
605 obj:/lib*/ld-*.so
606 }
607
608 #
609 # Suppression patterns for libc.
610 #
611
612 # Suppress all data races where the topmost frame is inside libc.so. Although
613 # this could hide some real data races, unfortunately this is the only way to
614 # not report any false positives on stdio functions. The glibc functions
615 # manipulating FILE objects use locking primitives that cannot be intercepted
616 # easily. See also the definitions of _IO_lock_lock() etc. in the file
617 # nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
618 {
619 drd-libc-stdio
620 drd:ConflictingAccess
621 obj:/lib*/libc-*
622 }
623
624 #
625 # Suppression patterns for libstdc++, the implementation of the standard C++
626 # library included with the gcc compiler.
627 #
628 # Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
629 # and their predecessors) contain an implementation of the std::string class
630 # that triggers conflicting memory accesses. See also
631 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
632 #
633
634 # {
635 # drd-libstdc++-std::string::string()
636 # drd:ConflictingAccess
637 # fun:_ZNSsC1ERKSs
638 # }
639
640 #
641 # Suppression patterns for libpthread.
642 #
643
644 {
645 drd-libpthread-pthread_create
646 drd:ConflictingAccess
647 ...
648 fun:pthread_create*
649 }
650 {
651 drd-libpthread-pthread_join
652 drd:ConflictingAccess
653 fun:pthread_join
654 fun:pthread_join
655 }
656 {
657 drd-libpthread-__deallocate_stack
658 drd:ConflictingAccess
659 ...
660 fun:__deallocate_stack
661 }
662 {
663 drd-libpthread-__free_tcb
664 drd:ConflictingAccess
665 ...
666 fun:__free_tcb
667 }
668 {
669 drd-libpthread-pthread_detach
670 drd:ConflictingAccess
671 fun:pthread_detach
672 fun:pthread_detach
673 }
674 {
675 drd-libpthread-_Unwind_ForcedUnwind
676 drd:ConflictingAccess
677 ...
678 fun:_Unwind_ForcedUnwind
679 }
680 {
681 drd-libpthread-_Unwind_Resume
682 drd:ConflictingAccess
683 ...
684 fun:_Unwind_Resume
685 }
686 {
687 drd-libpthread-nanosleep
688 drd:ConflictingAccess
689 fun:nanosleep
690 }
691
692 #
693 # Suppression patterns for libgomp.
694 #
695
696 # Unfortunately many statements in libgomp trigger conflicting accesses. It is
697 # not clear to me which of these are safe and which ones not. See also
698 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
699 {
700 drd-libgomp
701 drd:ConflictingAccess
702 obj:/usr/lib*/libgomp.so*
703 }
704
705 #
706 # Suppression patterns for libX11.
707 #
708
709 {
710 drd-libX11-XCreateFontSet
711 drd:CondErr
712 fun:pthread_cond_init*
713 fun:_XReply
714 fun:XListFontsWithInfo
715 obj:/usr/lib*/libX11.so*
716 fun:XCreateOC
717 fun:XCreateFontSet
718 }
719
720 #
721 # Suppression patterns for libxcb.
722 #
723
724 {
725 drd-libxcb-xcb_wait_for_reply
726 drd:CondErr
727 fun:pthread_cond_destroy*
728 fun:xcb_wait_for_reply
729 }
730
731 #
732 # Suppression patterns for libglib.
733 #
734
735 {
736 drd-libglib-access-g_threads_got_initialized
737 drd:ConflictingAccess
738 ...
739 fun:g_slice_alloc
740 fun:g_ptr_array_sized_new
741 }
742 {
743 drd-libglib-access-g_threads_got_initialized
744 drd:ConflictingAccess
745 fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
746 fun:_ZN20QEventDispatcherGlibC1EP7QObject
747 obj:/usr/lib*/libQtCore.so.4.*
748 obj:/usr/lib*/libQtCore.so.4.*
749 }
750 {
751 drd-libglib-access-g_mem_initialized
752 drd:ConflictingAccess
753 fun:g_malloc0
754 }
755 {
756 drd-libglib-g_private_get_posix_impl
757 drd:ConflictingAccess
758 fun:g_private_get_posix_impl
759 }
760 {
761 drd-libglib-g_private_set_posix_impl
762 drd:ConflictingAccess
763 fun:g_private_set_posix_impl
764 }
765 {
766 drd-libglib-g_get_language_names
767 drd:ConflictingAccess
768 fun:g_slice_free_chain_with_offset
769 }
770 {
771 drd-libglib-g_main_context_new
772 drd:ConflictingAccess
773 fun:fcntl
774 obj:/usr/lib*/libglib-*.so*
775 fun:g_main_context_new
776 }
777
778 #
779 # Suppression patterns for libQtCore.
780 #
781
782 {
783 drd-libQtCore-deref-that-calls-QThreadData-destructor
784 drd:ConflictingAccess
785 fun:_ZN11QThreadDataD1Ev
786 fun:_ZN11QThreadData5derefEv
787 obj:/usr/lib*/libQtCore.so.4.*
788 }
789 {
790 drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
791 drd:ConflictingAccess
792 obj:/usr/lib*/libQtCore.so.4.*
793 fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
794 fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
795 }
796 {
797 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
798 drd:ConflictingAccess
799 fun:_ZN14QReadWriteLock12lockForWriteEv
800 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
801 fun:_ZN7QObjectD2Ev
802 }
803 {
804 drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
805 drd:ConflictingAccess
806 fun:_ZN14QReadWriteLock12lockForWriteEv
807 fun:_ZN12QWriteLocker6relockEv
808 fun:_ZN12QWriteLockerC1EP14QReadWriteLock
809 fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
810 fun:_ZN7QObjectD2Ev
811 fun:_ZN24QAbstractEventDispatcherD2Ev
812 fun:_ZN20QEventDispatcherGlibD0Ev
813 }
814 {
815 drd-libQtCore-QMutexPool::get(void const*)
816 drd:ConflictingAccess
817 fun:_ZN10QMutexPool3getEPKv
818 }
819
820 #
821 # Suppression patterns for libboost.
822 #
823
824 # Suppress the races on boost::once_flag::epoch and on
825 # boost::detail::once_global_epoch. See also the source file
826 # boost/thread/pthread/once.hpp in the Boost source tree.
827 {
828 drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
829 drd:ConflictingAccess
830 ...
831 fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
832 }
833 {
834 drd-libboost-boost::detail::get_once_per_thread_epoch()
835 drd:ConflictingAccess
836 fun:_ZN5boost6detail25get_once_per_thread_epochEv
837 }
838 {
839 drd-libboost-boost::detail::get_current_thread_data()
840 drd:ConflictingAccess
841 ...
842 fun:_ZN5boost6detail23get_current_thread_dataEv
843 }
844
845 # FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
846 # other stuff. They should be removed.
847
848 ##----------------------------------------------------------------------##
849 # Suppressions for the Helgrind tool when using
850 # a glibc-2.{3,4,5,6,7,8,9} system
851
852 ####################################################
853 # glibc-2.X specific
854 # These are generic cover-alls which catch a lot of stuff
855 # in various combinations of ld, libc and libpthread
856 #
857 # Note this is heavyhanded and not very clever:
858 #
859 # - suppress anything that has its top frame in ld.so
860 # That's fine, since it's mostly dynamic linking stuff,
861 # which has various deliberate (harmless) races
862 #
863 # - suppress anything that has its top frame in libc.so.
864 # This really isn't clever, since it could hide some
865 # legitimate races. But the problem is, if we don't do
866 # this, then loads of errors to do with stdio are reported, because
867 # H fails to see glibc's internal locking/unlocking of FILE*s
868 # as required by POSIX. A better solution is needed.
869
870 #{
871 # helgrind-glibc2X-001
872 # Helgrind:Race
873 # obj:/lib*/ld-2.*so*
874 #}
875
876 # helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
877
878 # helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
879
880 {
881 helgrind-glibc2X-004
882 Helgrind:Race
883 obj:/lib*/libc-2.*so*
884 }
885
886 {
887 helgrind-glibc2X-005
888 Helgrind:Race
889 obj:/lib*/libpthread-2.*so*
890 }
891
892 # helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
893
894 # helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
895
896 # helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
897
898 # helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
899
900 # helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
901
902 # helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
903
904 # helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
905
906 # helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
907
908 # helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
909
910 # helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
911
912 # helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
913
914 # These are very ugly. They are needed to suppress errors inside (eg)
915 # NPTL's pthread_cond_signal. Why only one stack frame -- at least we
916 # should see the wrapper calling the real functions, right?
917 # Unfortunately, no: the real functions are handwritten assembly (in
918 # the glibc-2.5 sources) and does not create a proper stack frame.
919 # Therefore it's only one level of unwinding before we're back out in
920 # user code rather than the 2 levels you'd expect.
921 {
922 helgrind-glibc2X-101
923 Helgrind:Race
924 obj:/lib*/libpthread-2.*so*
925 fun:pthread_*
926 }
927 {
928 helgrind-glibc2X-102
929 Helgrind:Race
930 fun:mythread_wrapper
931 obj:/lib*/libpthread-2.*so*
932 }
933 {
934 helgrind-glibc2X-103
935 Helgrind:Race
936 fun:pthread_cond_*@@GLIBC_2.*
937 }
938 {
939 helgrind-glibc2X-104
940 Helgrind:Race
941 fun:__lll_mutex_*
942 }
943 {
944 helgrind-glibc2X-105
945 Helgrind:Race
946 fun:pthread_rwlock_*lock*
947 }
948 {
949 helgrind-glibc2X-106
950 Helgrind:Race
951 fun:__lll_lock_wait
952 }
953 {
954 helgrind-glibc2X-107
955 Helgrind:Race
956 obj:/lib*/libpthread-2.*so*
957 fun:sem_*
958 }
959 {
960 helgrind-glibc2X-108
961 Helgrind:Race
962 fun:clone
963 }
964 {
965 helgrind-glibc2X-109
966 Helgrind:Race
967 fun:start_thread
968 }
969 {
970 helgrind-glibc2X-110
971 Helgrind:Race
972 obj:/lib*/libc-2.*so*
973 fun:pthread_*
974 }
975 {
976 helgrind-glibc2X-111
977 Helgrind:Race
978 fun:__lll_*lock_*
979 }
980 {
981 helgrind-glibc2X-112
982 Helgrind:Race
983 fun:pthread_create_WRK
984 fun:pthread_create@*
985 }
986 {
987 helgrind-glibc2X-113
988 Helgrind:Race
989 fun:pthread_barrier_wait*
990 }
991
992
993 ####################################################
994 # qt4 specific (GNU mangling)
995 #
996 {
997 helgrind-qt4---QMutex::lock()-QMutex::lock()
998 Helgrind:Race
999 ...
1000 fun:_ZN6QMutex4lockEv
1001 fun:_ZN6QMutex4lockEv
1002 }
1003
1004 {
1005 helgrind-qt4---QMutex::unlock()-QMutex::unlock()
1006 Helgrind:Race
1007 ...
1008 fun:_ZN6QMutex6unlockEv
1009 fun:_ZN6QMutex6unlockEv
1010 }
1011
1012 {
1013 helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
1014 Helgrind:Race
1015 fun:pthread_setspecific
1016 fun:_ZN14QThreadPrivate5startEPv
1017 }
1018
1019
1020 ####################################################
1021 # Other stuff.
1022 #
1023 # pthread_exit apparently calls some kind of unwind
1024 # mechanism - maybe to remove some number of frames
1025 # from the thread's stack, so as to get back to the
1026 # outermost frame for the thread? Anyway..
1027
1028 {
1029 helgrind---*Unwind*-...-pthread_exit
1030 Helgrind:Race
1031 fun:*Unwind*
1032 ...
1033 fun:pthread_exit
1034 }
1035
1036 {
1037 helgrind---...-*Unwind*-*pthread_unwind*
1038 Helgrind:Race
1039 ...
1040 fun:*Unwind*
1041 fun:*pthread_unwind*
1042 }
1043
1044 {
1045 helgrind---...-*Unwind*-*pthread_unwind*
1046 Helgrind:Race
1047 ...
1048 fun:_Unwind*
1049 ...
1050 fun:_Unwind_Backtrace
1051 }
1052
1053
1054
1055
1056 ####################################################
1057 # To do with thread stack allocation and deallocation?
1058 #
1059 {
1060 helgrind---free_stacks-__deallocate_stack
1061 Helgrind:Race
1062 fun:free_stacks
1063 fun:__deallocate_stack
1064 }
1065
1066 {
1067 helgrind---__deallocate_stack-start_thread-clone
1068 Helgrind:Race
1069 fun:__deallocate_stack
1070 fun:start_thread
1071 fun:clone
1072 }
1073
1074
1075 ####################################################
1076 # To do with pthread_{set,get}specific
1077 #
1078 {
1079 helgrind---pthread_setspecific
1080 Helgrind:Race
1081 fun:pthread_setspecific
1082 }
1083
1084 {
1085 helgrind---pthread_getspecific
1086 Helgrind:Race
1087 fun:pthread_getspecific
1088 }
1089
1090
1091 ####################################################
1092 # To do with dynamic linking
1093 #
1094 # helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
1095
1096
1097 ####################################################
1098 # To do with GNU libgomp
1099 #
1100 {
1101 helgrind---libgomp43-1
1102 Helgrind:Race
1103 fun:gomp_ordered_sync
1104 }
1105
1106 {
1107 helgrind---libgomp43-1
1108 Helgrind:Race
1109 fun:gomp_ordered_next
1110 }
1111
1112 {
1113 helgrind---libgomp43-1
1114 Helgrind:Race
1115 fun:gomp_ordered_last
1116 }
1117
1118 ##----------------------------------------------------------------------##
1119
1120 # Errors to suppress by default with glibc 2.7.x
1121
1122 # IMPORTANT: DO NOT EDIT glibc-2.X.supp, as it is as a generated
1123 # file. Instead edit glibc-2.X.supp.in.
1124
1125 # Format of this file is:
1126 # {
1127 # name_of_suppression
1128 # tool_name:supp_kind
1129 # (optional extra info for some suppression types)
1130 # caller0 name, or /name/of/so/file.so
1131 # caller1 name, or ditto
1132 # (optionally: caller2 name)
1133 # (optionally: caller3 name)
1134 # }
1135 #
1136 # For Memcheck, the supp_kinds are:
1137 #
1138 # Param Value1 Value2 Value4 Value8 Value16 Jump
1139 # Free Addr1 Addr2 Addr4 Addr8 Addr16
1140 # Cond (previously known as Value0)
1141 #
1142 # and the optional extra info is:
1143 # if Param: name of system call param
1144
1145 ##----------------------------------------------------------------------##
1146 ##--- generic suppressions ---##
1147 ##----------------------------------------------------------------------##
1148
1149 {
1150 dl-hack3-cond-0
1151 Memcheck:Cond
1152 fun:_dl_start
1153 fun:_start
1154 }
1155 {
1156 dl-hack3-cond-1
1157 Memcheck:Cond
1158 obj:/lib*/ld-2.7*.so*
1159 obj:/lib*/ld-2.7*.so*
1160 obj:/lib*/ld-2.7*.so*
1161 }
1162 {
1163 dl-hack3-cond-2
1164 Memcheck:Cond
1165 obj:/lib*/ld-2.7*.so*
1166 obj:/lib*/ld-2.7*.so*
1167 obj:/lib*/libc-2.7*.so*
1168 }
1169 {
1170 dl-hack3-cond-3
1171 Memcheck:Cond
1172 obj:/lib*/ld-2.7*.so*
1173 obj:/lib*/libc-2.7*.so*
1174 obj:/lib*/libc-2.7*.so*
1175 }
1176 {
1177 dl-hack3-cond-4
1178 Memcheck:Cond
1179 obj:/lib*/ld-2.7*.so*
1180 obj:/lib*/ld-2.7*.so*
1181 obj:/lib*/libdl-2.7*.so*
1182 }
1183
1184 {
1185 dl-hack4-64bit-addr-1
1186 Memcheck:Addr8
1187 obj:/lib*/ld-2.7*.so*
1188 obj:/lib*/ld-2.7*.so*
1189 obj:/lib*/ld-2.7*.so*
1190 }
1191 {
1192 dl-hack4-64bit-addr-2
1193 Memcheck:Addr8
1194 obj:/lib*/ld-2.7*.so*
1195 obj:/lib*/ld-2.7*.so*
1196 obj:/lib*/libc-2.7*.so*
1197 }
1198 {
1199 dl-hack4-64bit-addr-3
1200 Memcheck:Addr8
1201 obj:/lib*/ld-2.7*.so*
1202 obj:/lib*/ld-2.7*.so*
1203 obj:/lib*/libdl-2.7*.so*
1204 }
1205
1206 {
1207 dl-hack5-32bit-addr-1
1208 Memcheck:Addr4
1209 obj:/lib*/ld-2.7*.so
1210 obj:/lib*/ld-2.7*.so
1211 obj:/lib*/ld-2.7*.so
1212 }
1213 {
1214 dl-hack5-32bit-addr-3
1215 Memcheck:Addr4
1216 obj:/lib*/ld-2.7*.so
1217 obj:/lib*/ld-2.7*.so
1218 obj:/lib*/libdl-2.7*.so*
1219 }
1220 {
1221 dl-hack5-32bit-addr-4
1222 Memcheck:Addr4
1223 obj:/lib*/ld-2.7*.so
1224 obj:/lib*/libdl-2.7*.so*
1225 obj:/lib*/ld-2.7*.so
1226 }
1227
1228
1229 ##----------------------------------------------------------------------##
1230 ##--- Misc ad-hoc hacks ---##
1231 ##----------------------------------------------------------------------##
1232 {
1233 glibc-2.5.x-on-SUSE-10.2-(PPC)-1
1234 Memcheck:Cond
1235 fun:_dl_start_final
1236 fun:_dl_start
1237 fun:_start
1238 }
1239 {
1240 glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
1241 Memcheck:Cond
1242 fun:index
1243 obj:*ld-2.7.*.so
1244 }
1245 {
1246 glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
1247 Memcheck:Addr4
1248 fun:index
1249 fun:expand_dynamic_string_token
1250 }
1251 {
1252 glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
1253 Memcheck:Addr4
1254 fun:index
1255 obj:*ld-2.7.*.so
1256 }
1257 {
1258 glibc-2.3.5-on-SuSE-10.1-(PPC)-3
1259 Memcheck:Addr4
1260 fun:*wordcopy_fwd_dest_aligned*
1261 fun:mem*cpy
1262 obj:*lib*2.7.*.so
1263 }
1264
1265 {
1266 glibc-2.7-on-SUSE-10.3-(x86)
1267 Memcheck:Addr4
1268 obj:/lib/ld-2.7*.so
1269 obj:/lib/ld-2.7*.so
1270 obj:/lib/ld-2.7*.so
1271 }
1272
1273 {
1274 glibc24-64bit-padding-1a
1275 Memcheck:Param
1276 socketcall.sendto(msg)
1277 fun:send
1278 fun:get_mapping
1279 fun:__nscd_get_map_ref
1280 fun:nscd*
1281 }
1282 {
1283 glibc24-64bit-padding-1b
1284 Memcheck:Param
1285 socketcall.sendto(msg)
1286 fun:__sendto_nocancel
1287 obj:/*libc-2.7.so
1288 obj:/*libc-2.7.so
1289 obj:/*libc-2.7.so
1290 }
1291 {
1292 glibc24-64bit-padding-1c
1293 Memcheck:Param
1294 socketcall.send(msg)
1295 fun:send
1296 fun:__nscd_get_map_ref
1297 fun:nscd_get*_r
1298 fun:*nscd*
1299 obj:/*libc-2.7.so
1300 }
1301
1302
1303 {
1304 X11-64bit-padding-3a
1305 Memcheck:Param
1306 write(buf)
1307 obj:/*libpthread-2.4.so*
1308 obj:/usr/lib*/libX11.so*
1309 obj:/usr/lib*/libX11.so*
1310 obj:/usr/lib*/libX11.so*
1311 }
1312
1313 {
1314 X11-64bit-padding-4a
1315 Memcheck:Param
1316 socketcall.sendto(msg)
1317 fun:send
1318 obj:/*libc-2.7.so
1319 obj:/*libc-2.7.so
1320 obj:/*libc-2.7.so
1321 }
1322 {
1323 X11-64bit-padding-4b
1324 Memcheck:Param
1325 socketcall.send(msg)
1326 fun:send
1327 obj:/*libc-2.7.so
1328 obj:/*libc-2.7.so
1329 obj:/*libc-2.7.so
1330 }
1331
1332 ##----------------------------------------------------------------------##
1333 # MontaVista Linux 4.0.1 on ppc32
1334 {
1335 MVL-401-linuxthreads-pthread_create
1336 Memcheck:Param
1337 write(buf)
1338 fun:pthread_create
1339 }
1340 {
1341 MVL-401-linuxthreads-pthread_create
1342 Memcheck:Param
1343 write(buf)
1344 obj:/lib/libpthread-0.10.so
1345 fun:pthread_create
1346 }
OLDNEW
« no previous file with comments | « binaries/linux_x64/bin/valgrind-listener ('k') | binaries/linux_x64/lib/valgrind/memcheck-amd64-linux » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698