Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added valgrind suppression errors for perl.12.0 misrepresented errors

  • Loading branch information...
commit 4d15f225bede9da65169d0cb6791af2f1f97d2ff 1 parent c157820
@kthakore kthakore authored
Showing with 2,243 additions and 0 deletions.
  1. +2,243 −0 SDL_perl.supp
View
2,243 SDL_perl.supp
@@ -0,0 +1,2243 @@
+# This is a generated file, composed of the following suppression rules:
+# exp-ptrcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp debian.supp
+{
+ lib-X11-used-old-pointer-after-realloc-1
+ exp-ptrcheck:Heap
+ fun:strlen
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+}
+{
+ lib-X11-used-old-pointer-after-realloc-2
+ exp-ptrcheck:Heap
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+}
+
+{
+ ld-2.X-invalid-Add32/64-who-knows
+ exp-ptrcheck:Arith
+ obj:/*lib*/ld-2.*so*
+ obj:/*lib*/ld-2.*so*
+}
+
+{
+ ld-2.X possibly applying relocations
+ exp-ptrcheck:SorG
+ obj:/*lib*/ld-2.*so*
+ obj:/*lib*/ld-2.*so*
+}
+
+# I'm pretty sure this is a false positive caused by the sg_ stuff
+{
+ glibc realpath false positive
+ exp-ptrcheck:SorG
+ fun:realpath
+ fun:*
+}
+
+{
+ If I had to guess, inlined or nameless strlen etc in ld.so
+ exp-ptrcheck:Heap
+ obj:/*lib*/ld-2.*so*
+ obj:/*lib*/ld-2.*so*
+}
+
+{
+ I think this is glibc's ultra optimised getenv doing 2 byte reads
+ exp-ptrcheck:SorG
+ fun:getenv
+}
+
+{
+ Occurs on Fedora 7--9?
+ exp-ptrcheck:Heap
+ fun:_dl_fini
+ fun:exit
+ fun:(below main)
+}
+
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with XFree86 3.3.6)
+
+# Format of this file is:
+# {
+# name_of_suppression
+# tool_name:supp_kind
+# (optional extra info for some suppression types)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+#
+# For Memcheck, the supp_kinds are:
+#
+# Param Value1 Value2 Value4 Value8 Value16 Jump
+# Free Addr1 Addr2 Addr4 Addr8 Addr16
+# Cond (previously known as Value0)
+#
+# and the optional extra info is:
+# if Param: name of system call param
+
+##----------------------------------------------------------------------##
+
+{
+ X11-Cond-0
+ Memcheck:Cond
+ obj:*libXt.so.6.0
+ obj:*libXt.so.6.0
+ obj:*libXt.so.6.0
+}
+{
+ X11-Cond-1
+ Memcheck:Cond
+ fun:__rawmemchr
+ obj:*libXt.so.6.0
+ obj:*libXt.so.6.0
+}
+
+
+# Suppressions for XFree86-3.3.X
+
+{
+ X11-Addr4-1
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libX11.so.6.1
+}
+
+{
+ X11-Addr4-2
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-3
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-4
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-5
+ Memcheck:Addr4
+ fun:__rawmemchr
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-6
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXmu.so.6.0
+ obj:/usr/X11R6/lib/libXmu.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-7
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
+}
+
+{
+ X11-Param-1
+ Memcheck:Param
+ write(buf)
+ fun:__libc_write
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libX11.so.6.1
+}
+
+{
+ X11-Addr4-8
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libX11.so.6.1
+ obj:/usr/X11R6/lib/libXpm.so.4.11
+ obj:/usr/X11R6/lib/libXpm.so.4.11
+}
+
+{
+ X11-Addr4-8
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-9
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXaw.so.6.1
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-10
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXaw.so.6.1
+ obj:/usr/X11R6/lib/libXaw.so.6.1
+ obj:/usr/X11R6/lib/libXt.so.6.0
+}
+
+{
+ X11-Addr4-11
+ Memcheck:Addr4
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXt.so.6.0
+ obj:/usr/X11R6/lib/libXaw.so.6.1
+}
+
+
+
+##----------------------------------------------------------------------##
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with XFree86 4.1.0)
+
+# *** And a bunch of other stuff which is completely unrelated
+# to X. The default suppressions are a bit of a mess and could do
+# with a good tidying up.
+
+# Format of this file is:
+# {
+# name_of_suppression
+# tool_name:supp_kind
+# (optional extra info for some suppression types)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+#
+# For Memcheck, the supp_kinds are:
+#
+# Param Value1 Value2 Value4 Value8 Value16 Jump
+# Free Addr1 Addr2 Addr4 Addr8 Addr16
+# Cond (previously known as Value0)
+#
+# and the optional extra info is:
+# if Param: name of system call param
+
+# Resulting from R H 8.0
+{
+ *libc_write/libX11.so.6.2/*X11TransWrite(Param)
+ Memcheck:Param
+ write(buf)
+ fun:*libc_write
+ obj:/usr/*lib*/libX11.so*
+ fun:*X11TransWrite
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
+}
+
+{
+ libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
+ Memcheck:Value4
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
+ Memcheck:Cond
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+}
+
+{
+ struct with uninitialized paddings
+ Memcheck:Param
+ writev(vector[...])
+ fun:*_writev
+ fun:_X11TransSocketWritev
+ fun:_X11TransWritev
+ fun:*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_send_request
+ fun:_X*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_*
+ fun:_X*
+}
+
+{
+ another struct with uninitialized paddings
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransSocketWrite
+ fun:_IceTransWrite
+ fun:_IceWrite
+}
+
+{
+ Xorg 6.8.1 uninit _write* padding
+ Memcheck:Param
+ write(buf)
+ fun:*
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 uninit write padding
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 ICE uninit __write* padding
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransWrite
+ fun:_IceWrite
+ fun:IceFlush
+}
+
+{
+ Xorg 6.8.1 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ Xorg 6.9.0 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:do_writev
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ X on SUSE11 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 2
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 3
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+{
+ X on SUSE11 writev uninit padding 4
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/libc-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+
+
+# There's something strange about a % 127 in XftFontOpenInfo
+# (hashing) which gcc turns into a multiply by 33818641 and
+# some other guff instead. I don't understand it enough to
+# know if libXft is broken or if memcheck's value tracking is
+# inadequate here. Anyway, for the moment, suppress it.
+#
+# Use of uninitialised value of size 8
+# at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&,
+# QFont::Script) (qfontdatabase_x11.cpp:1942)
+# by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
+# QFontDef const&, int) (qfontdatabase.cpp:996)
+{
+ XftFontOpenInfo-umod-127-strangeness
+ Memcheck:Value8
+ obj:/usr/X11*/lib*/libXft.so*
+ obj:/usr/X11*/lib*/libXft.so*
+}
+{
+ XftFontOpenInfo-umod-127-strangeness-a-la-xorg
+ Memcheck:Value8
+ obj:/usr/lib*/libXft.so*
+ obj:/usr/lib*/libXft.so*
+}
+
+{
+ More X padding stuff
+ Memcheck:Param
+ writev(vector[...])
+ fun:*writev*
+ obj:/usr/X11*/lib*/libX11.so*
+ obj:/usr/X11*/lib*/libX11.so*
+}
+
+# Inlined strlen in libX11 on Ubuntu 9.10 amd64, unfortunately.
+# Invalid read of size 4
+# at 0x9B5CCE6: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B5D011: XGetAtomName (in /usr/lib/libX11.so.6.2.0)
+# by 0x86407C3: gdk_x11_xatom_to_atom_for_display
+# (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# by 0x8636817: ??? (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# Address 0x1a558e1c is 28 bytes inside a block of size 30 alloc'd
+# at 0x4C2552D: malloc (vg_replace_malloc.c:236)
+# by 0x9B642C0: _XUpdateAtomCache (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B647F1: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B81818: ??? (in /usr/lib/libX11.so.6.2.0)
+{
+ libX11.so.6.2.0/libX11.so.6.2.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+}
+
+##----------------------------------------------------------------------##
+# Completely inappropriate place, but ...
+
+{
+ ifort-9.X-on-i686-1
+ Memcheck:Addr4
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+{
+ ifort-9.X-on-amd64-1
+ Memcheck:Addr8
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+
+
+# zlib-1.2.x uses uninitialised memory in some tricky way which
+# apparently is harmless (it must amount to a vectorised while-loop,
+# nothing else makes sense). Fools Memcheck though. See the mentioned
+# URL for details.
+{
+ zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+
+##----------------------------------------------------------------------##
+
+## More general versions of some of the old X suppressions above
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+}
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXt*so*
+}
+
+{
+ Ubuntu804-hack-1
+ Memcheck:Overlap
+ fun:mempcpy
+ fun:_IO_default_xsputn
+ obj:/lib*/libc-2.*so*
+}
+#
+# Suppression patterns for ld, the dynamic loader.
+#
+
+# Suppress all data races triggered by ld.
+{
+ drd-ld
+ drd:ConflictingAccess
+ obj:/lib*/ld-*.so
+}
+
+#
+# Suppression patterns for libc.
+#
+
+# Suppress all data races where the topmost frame is inside libc.so. Although
+# this could hide some real data races, unfortunately this is the only way to
+# not report any false positives on stdio functions. The glibc functions
+# manipulating FILE objects use locking primitives that cannot be intercepted
+# easily. See also the definitions of _IO_lock_lock() etc. in the file
+# nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
+{
+ drd-libc-stdio
+ drd:ConflictingAccess
+ obj:/lib*/libc-*
+}
+
+#
+# Suppression patterns for libstdc++, the implementation of the standard C++
+# library included with the gcc compiler.
+#
+# Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
+# and their predecessors) contain an implementation of the std::string class
+# that triggers conflicting memory accesses. See also
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
+#
+
+# {
+# drd-libstdc++-std::string::string()
+# drd:ConflictingAccess
+# fun:_ZNSsC1ERKSs
+# }
+
+#
+# Suppression patterns for libpthread.
+#
+
+{
+ drd-libpthread-pthread_create
+ drd:ConflictingAccess
+ ...
+ fun:pthread_create*
+}
+{
+ drd-libpthread-pthread_join
+ drd:ConflictingAccess
+ fun:pthread_join
+ fun:pthread_join
+}
+{
+ drd-libpthread-__deallocate_stack
+ drd:ConflictingAccess
+ ...
+ fun:__deallocate_stack
+}
+{
+ drd-libpthread-__free_tcb
+ drd:ConflictingAccess
+ ...
+ fun:__free_tcb
+}
+{
+ drd-libpthread-pthread_detach
+ drd:ConflictingAccess
+ fun:pthread_detach
+ fun:pthread_detach
+}
+{
+ drd-libpthread-_Unwind_ForcedUnwind
+ drd:ConflictingAccess
+ ...
+ fun:_Unwind_ForcedUnwind
+}
+{
+ drd-libpthread-_Unwind_Resume
+ drd:ConflictingAccess
+ ...
+ fun:_Unwind_Resume
+}
+{
+ drd-libpthread-nanosleep
+ drd:ConflictingAccess
+ fun:nanosleep
+}
+
+#
+# Suppression patterns for libgomp.
+#
+
+# Unfortunately many statements in libgomp trigger conflicting accesses. It is
+# not clear to me which of these are safe and which ones not. See also
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
+{
+ drd-libgomp
+ drd:ConflictingAccess
+ obj:/usr/lib*/libgomp.so*
+}
+
+#
+# Suppression patterns for libX11.
+#
+
+{
+ drd-libX11-XCreateFontSet
+ drd:CondErr
+ fun:pthread_cond_init*
+ fun:_XReply
+ fun:XListFontsWithInfo
+ obj:/usr/lib*/libX11.so*
+ fun:XCreateOC
+ fun:XCreateFontSet
+}
+
+#
+# Suppression patterns for libxcb.
+#
+
+{
+ drd-libxcb-xcb_wait_for_reply
+ drd:CondErr
+ fun:pthread_cond_destroy*
+ fun:xcb_wait_for_reply
+}
+
+#
+# Suppression patterns for libglib.
+#
+
+{
+ drd-libglib-access-g_threads_got_initialized
+ drd:ConflictingAccess
+ ...
+ fun:g_slice_alloc
+ fun:g_ptr_array_sized_new
+}
+{
+ drd-libglib-access-g_threads_got_initialized
+ drd:ConflictingAccess
+ fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
+ fun:_ZN20QEventDispatcherGlibC1EP7QObject
+ obj:/usr/lib*/libQtCore.so.4.*
+ obj:/usr/lib*/libQtCore.so.4.*
+}
+{
+ drd-libglib-access-g_mem_initialized
+ drd:ConflictingAccess
+ fun:g_malloc0
+}
+{
+ drd-libglib-g_private_get_posix_impl
+ drd:ConflictingAccess
+ fun:g_private_get_posix_impl
+}
+{
+ drd-libglib-g_private_set_posix_impl
+ drd:ConflictingAccess
+ fun:g_private_set_posix_impl
+}
+{
+ drd-libglib-g_get_language_names
+ drd:ConflictingAccess
+ fun:g_slice_free_chain_with_offset
+}
+{
+ drd-libglib-g_main_context_new
+ drd:ConflictingAccess
+ fun:fcntl
+ obj:/usr/lib*/libglib-*.so*
+ fun:g_main_context_new
+}
+
+#
+# Suppression patterns for libQtCore.
+#
+
+{
+ drd-libQtCore-deref-that-calls-QThreadData-destructor
+ drd:ConflictingAccess
+ fun:_ZN11QThreadDataD1Ev
+ fun:_ZN11QThreadData5derefEv
+ obj:/usr/lib*/libQtCore.so.4.*
+}
+{
+ drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
+ drd:ConflictingAccess
+ obj:/usr/lib*/libQtCore.so.4.*
+ fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
+ fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
+}
+{
+ drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
+ drd:ConflictingAccess
+ fun:_ZN14QReadWriteLock12lockForWriteEv
+ fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
+ fun:_ZN7QObjectD2Ev
+}
+{
+ drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
+ drd:ConflictingAccess
+ fun:_ZN14QReadWriteLock12lockForWriteEv
+ fun:_ZN12QWriteLocker6relockEv
+ fun:_ZN12QWriteLockerC1EP14QReadWriteLock
+ fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
+ fun:_ZN7QObjectD2Ev
+ fun:_ZN24QAbstractEventDispatcherD2Ev
+ fun:_ZN20QEventDispatcherGlibD0Ev
+}
+{
+ drd-libQtCore-QMutexPool::get(void const*)
+ drd:ConflictingAccess
+ fun:_ZN10QMutexPool3getEPKv
+}
+
+#
+# Suppression patterns for libboost.
+#
+
+# Suppress the races on boost::once_flag::epoch and on
+# boost::detail::once_global_epoch. See also the source file
+# boost/thread/pthread/once.hpp in the Boost source tree.
+{
+ drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
+ drd:ConflictingAccess
+ ...
+ fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
+}
+{
+ drd-libboost-boost::detail::get_once_per_thread_epoch()
+ drd:ConflictingAccess
+ fun:_ZN5boost6detail25get_once_per_thread_epochEv
+}
+{
+ drd-libboost-boost::detail::get_current_thread_data()
+ drd:ConflictingAccess
+ ...
+ fun:_ZN5boost6detail23get_current_thread_dataEv
+}
+
+# FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
+# other stuff. They should be removed.
+
+##----------------------------------------------------------------------##
+# Suppressions for the Helgrind tool when using
+# a glibc-2.{3,4,5,6,7,8,9} system
+
+####################################################
+# glibc-2.X specific
+# These are generic cover-alls which catch a lot of stuff
+# in various combinations of ld, libc and libpthread
+#
+# Note this is heavyhanded and not very clever:
+#
+# - suppress anything that has its top frame in ld.so
+# That's fine, since it's mostly dynamic linking stuff,
+# which has various deliberate (harmless) races
+#
+# - suppress anything that has its top frame in libc.so.
+# This really isn't clever, since it could hide some
+# legitimate races. But the problem is, if we don't do
+# this, then loads of errors to do with stdio are reported, because
+# H fails to see glibc's internal locking/unlocking of FILE*s
+# as required by POSIX. A better solution is needed.
+
+#{
+# helgrind-glibc2X-001
+# Helgrind:Race
+# obj:/lib*/ld-2.*so*
+#}
+
+# helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
+
+{
+ helgrind-glibc2X-004
+ Helgrind:Race
+ obj:/lib*/libc-2.*so*
+}
+
+{
+ helgrind-glibc2X-005
+ Helgrind:Race
+ obj:/lib*/libpthread-2.*so*
+}
+
+# helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
+
+# helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
+
+# helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
+
+# helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
+
+# helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
+
+# helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
+
+# helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
+
+# These are very ugly. They are needed to suppress errors inside (eg)
+# NPTL's pthread_cond_signal. Why only one stack frame -- at least we
+# should see the wrapper calling the real functions, right?
+# Unfortunately, no: the real functions are handwritten assembly (in
+# the glibc-2.5 sources) and does not create a proper stack frame.
+# Therefore it's only one level of unwinding before we're back out in
+# user code rather than the 2 levels you'd expect.
+{
+ helgrind-glibc2X-101
+ Helgrind:Race
+ obj:/lib*/libpthread-2.*so*
+ fun:pthread_*
+}
+{
+ helgrind-glibc2X-102
+ Helgrind:Race
+ fun:mythread_wrapper
+ obj:/lib*/libpthread-2.*so*
+}
+{
+ helgrind-glibc2X-103
+ Helgrind:Race
+ fun:pthread_cond_*@@GLIBC_2.*
+}
+{
+ helgrind-glibc2X-104
+ Helgrind:Race
+ fun:__lll_mutex_*
+}
+{
+ helgrind-glibc2X-105
+ Helgrind:Race
+ fun:pthread_rwlock_*lock*
+}
+{
+ helgrind-glibc2X-106
+ Helgrind:Race
+ fun:__lll_lock_wait
+}
+{
+ helgrind-glibc2X-107
+ Helgrind:Race
+ obj:/lib*/libpthread-2.*so*
+ fun:sem_*
+}
+{
+ helgrind-glibc2X-108
+ Helgrind:Race
+ fun:clone
+}
+{
+ helgrind-glibc2X-109
+ Helgrind:Race
+ fun:start_thread
+}
+{
+ helgrind-glibc2X-110
+ Helgrind:Race
+ obj:/lib*/libc-2.*so*
+ fun:pthread_*
+}
+{
+ helgrind-glibc2X-111
+ Helgrind:Race
+ fun:__lll_*lock_*
+}
+{
+ helgrind-glibc2X-112
+ Helgrind:Race
+ fun:pthread_create_WRK
+ fun:pthread_create@*
+}
+{
+ helgrind-glibc2X-113
+ Helgrind:Race
+ fun:pthread_barrier_wait*
+}
+
+
+####################################################
+# qt4 specific (GNU mangling)
+#
+{
+ helgrind-qt4---QMutex::lock()-QMutex::lock()
+ Helgrind:Race
+ ...
+ fun:_ZN6QMutex4lockEv
+ fun:_ZN6QMutex4lockEv
+}
+
+{
+ helgrind-qt4---QMutex::unlock()-QMutex::unlock()
+ Helgrind:Race
+ ...
+ fun:_ZN6QMutex6unlockEv
+ fun:_ZN6QMutex6unlockEv
+}
+
+{
+ helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
+ Helgrind:Race
+ fun:pthread_setspecific
+ fun:_ZN14QThreadPrivate5startEPv
+}
+
+
+####################################################
+# Other stuff.
+#
+# pthread_exit apparently calls some kind of unwind
+# mechanism - maybe to remove some number of frames
+# from the thread's stack, so as to get back to the
+# outermost frame for the thread? Anyway..
+
+{
+ helgrind---*Unwind*-...-pthread_exit
+ Helgrind:Race
+ fun:*Unwind*
+ ...
+ fun:pthread_exit
+}
+
+{
+ helgrind---...-*Unwind*-*pthread_unwind*
+ Helgrind:Race
+ ...
+ fun:*Unwind*
+ fun:*pthread_unwind*
+}
+
+{
+ helgrind---...-*Unwind*-*pthread_unwind*
+ Helgrind:Race
+ ...
+ fun:_Unwind*
+ ...
+ fun:_Unwind_Backtrace
+}
+
+
+
+
+####################################################
+# To do with thread stack allocation and deallocation?
+#
+{
+ helgrind---free_stacks-__deallocate_stack
+ Helgrind:Race
+ fun:free_stacks
+ fun:__deallocate_stack
+}
+
+{
+ helgrind---__deallocate_stack-start_thread-clone
+ Helgrind:Race
+ fun:__deallocate_stack
+ fun:start_thread
+ fun:clone
+}
+
+
+####################################################
+# To do with pthread_{set,get}specific
+#
+{
+ helgrind---pthread_setspecific
+ Helgrind:Race
+ fun:pthread_setspecific
+}
+
+{
+ helgrind---pthread_getspecific
+ Helgrind:Race
+ fun:pthread_getspecific
+}
+
+
+####################################################
+# To do with dynamic linking
+#
+# helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
+
+
+####################################################
+# To do with GNU libgomp
+#
+{
+ helgrind---libgomp43-1
+ Helgrind:Race
+ fun:gomp_ordered_sync
+}
+
+{
+ helgrind---libgomp43-1
+ Helgrind:Race
+ fun:gomp_ordered_next
+}
+
+{
+ helgrind---libgomp43-1
+ Helgrind:Race
+ fun:gomp_ordered_last
+}
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with glibc 2.11.x
+
+# IMPORTANT: DO NOT EDIT glibc-2.X.supp, as it is as a generated
+# file. Instead edit glibc-2.X.supp.in.
+
+# Format of this file is:
+# {
+# name_of_suppression
+# tool_name:supp_kind
+# (optional extra info for some suppression types)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+#
+# For Memcheck, the supp_kinds are:
+#
+# Param Value1 Value2 Value4 Value8 Value16 Jump
+# Free Addr1 Addr2 Addr4 Addr8 Addr16
+# Cond (previously known as Value0)
+#
+# and the optional extra info is:
+# if Param: name of system call param
+
+##----------------------------------------------------------------------##
+##--- generic suppressions ---##
+##----------------------------------------------------------------------##
+
+{
+ dl-hack3-cond-0
+ Memcheck:Cond
+ fun:_dl_start
+ fun:_start
+}
+{
+ dl-hack3-cond-1
+ Memcheck:Cond
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+}
+{
+ dl-hack3-cond-2
+ Memcheck:Cond
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/libc-2.11*.so*
+}
+{
+ dl-hack3-cond-3
+ Memcheck:Cond
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/libc-2.11*.so*
+ obj:/lib*/libc-2.11*.so*
+}
+{
+ dl-hack3-cond-4
+ Memcheck:Cond
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/libdl-2.11*.so*
+}
+
+{
+ dl-hack4-64bit-addr-1
+ Memcheck:Addr8
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+}
+{
+ dl-hack4-64bit-addr-2
+ Memcheck:Addr8
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/libc-2.11*.so*
+}
+{
+ dl-hack4-64bit-addr-3
+ Memcheck:Addr8
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/ld-2.11*.so*
+ obj:/lib*/libdl-2.11*.so*
+}
+
+{
+ dl-hack5-32bit-addr-1
+ Memcheck:Addr4
+ obj:/lib*/ld-2.11*.so
+ obj:/lib*/ld-2.11*.so
+ obj:/lib*/ld-2.11*.so
+}
+{
+ dl-hack5-32bit-addr-3
+ Memcheck:Addr4
+ obj:/lib*/ld-2.11*.so
+ obj:/lib*/ld-2.11*.so
+ obj:/lib*/libdl-2.11*.so*
+}
+{
+ dl-hack5-32bit-addr-4
+ Memcheck:Addr4
+ obj:/lib*/ld-2.11*.so
+ obj:/lib*/libdl-2.11*.so*
+ obj:/lib*/ld-2.11*.so
+}
+
+
+##----------------------------------------------------------------------##
+##--- Misc ad-hoc hacks ---##
+##----------------------------------------------------------------------##
+{
+ glibc-2.5.x-on-SUSE-10.2-(PPC)-1
+ Memcheck:Cond
+ fun:_dl_start_final
+ fun:_dl_start
+ fun:_start
+}
+{
+ glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
+ Memcheck:Cond
+ fun:index
+ obj:*ld-2.11.*.so
+}
+{
+ glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
+ Memcheck:Addr4
+ fun:index
+ fun:expand_dynamic_string_token
+}
+{
+ glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
+ Memcheck:Addr4
+ fun:index
+ obj:*ld-2.11.*.so
+}
+{
+ glibc-2.3.5-on-SuSE-10.1-(PPC)-3
+ Memcheck:Addr4
+ fun:*wordcopy_fwd_dest_aligned*
+ fun:mem*cpy
+ obj:*lib*2.11.*.so
+}
+
+{
+ glibc-2.11-on-SUSE-10.3-(x86)
+ Memcheck:Addr4
+ obj:/lib/ld-2.11*.so
+ obj:/lib/ld-2.11*.so
+ obj:/lib/ld-2.11*.so
+}
+
+{
+ glibc24-64bit-padding-1a
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+ fun:get_mapping
+ fun:__nscd_get_map_ref
+ fun:nscd*
+}
+{
+ glibc24-64bit-padding-1b
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:__sendto_nocancel
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+}
+{
+ glibc24-64bit-padding-1c
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+ fun:__nscd_get_map_ref
+ fun:nscd_get*_r
+ fun:*nscd*
+ obj:/*libc-2.11.so
+}
+
+
+{
+ X11-64bit-padding-3a
+ Memcheck:Param
+ write(buf)
+ obj:/*libpthread-2.4.so*
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+}
+
+{
+ X11-64bit-padding-4a
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+}
+{
+ X11-64bit-padding-4b
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+ obj:/*libc-2.11.so
+}
+
+##----------------------------------------------------------------------##
+# MontaVista Linux 4.0.1 on ppc32
+{
+ MVL-401-linuxthreads-pthread_create
+ Memcheck:Param
+ write(buf)
+ fun:pthread_create
+}
+{
+ MVL-401-linuxthreads-pthread_create
+ Memcheck:Param
+ write(buf)
+ obj:/lib/libpthread-0.10.so
+ fun:pthread_create
+}
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with XFree86 4.1.0)
+
+# *** And a bunch of other stuff which is completely unrelated
+# to X. The default suppressions are a bit of a mess and could do
+# with a good tidying up.
+
+# Format of this file is:
+# {
+# name_of_suppression
+# tool_name:supp_kind
+# (optional extra info for some suppression types)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+#
+# For Memcheck, the supp_kinds are:
+#
+# Param Value1 Value2 Value4 Value8 Value16 Jump
+# Free Addr1 Addr2 Addr4 Addr8 Addr16
+# Cond (previously known as Value0)
+#
+# and the optional extra info is:
+# if Param: name of system call param
+
+# Resulting from R H 8.0
+{
+ *libc_write/libX11.so.6.2/*X11TransWrite(Param)
+ Memcheck:Param
+ write(buf)
+ fun:*libc_write
+ obj:/usr/*lib*/libX11.so*
+ fun:*X11TransWrite
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
+ obj:/usr/*lib*/libXmu.so*
+}
+
+{
+ libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXt.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
+ Memcheck:Value4
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+{
+ libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXt.so*
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libXaw.so*
+ obj:/usr/*lib*/libXaw.so*
+}
+
+{
+ libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
+ Memcheck:Cond
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+ obj:/usr/*lib*/libXpm.so.4.11
+}
+
+{
+ struct with uninitialized paddings
+ Memcheck:Param
+ writev(vector[...])
+ fun:*_writev
+ fun:_X11TransSocketWritev
+ fun:_X11TransWritev
+ fun:*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_send_request
+ fun:_X*
+}
+
+{
+ struct with uninitialized paddings - libxcb
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/*.so
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ obj:/usr/lib*/libxcb.so.1.0.0
+ fun:xcb_*
+ fun:_X*
+}
+
+{
+ another struct with uninitialized paddings
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransSocketWrite
+ fun:_IceTransWrite
+ fun:_IceWrite
+}
+
+{
+ Xorg 6.8.1 uninit _write* padding
+ Memcheck:Param
+ write(buf)
+ fun:*
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 uninit write padding
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:_X11TransWrite
+ obj:/usr/*lib*/libX11.so*
+}
+
+{
+ Xorg 6.8.1 ICE uninit __write* padding
+ Memcheck:Param
+ write(buf)
+ obj:*
+ fun:_IceTransWrite
+ fun:_IceWrite
+ fun:IceFlush
+}
+
+{
+ Xorg 6.8.1 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ Xorg 6.9.0 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:do_writev
+ fun:writev
+ obj:/usr/*lib*/libX11.so*
+ fun:_X11TransWritev
+ fun:_XSend
+}
+
+{
+ X on SUSE11 writev uninit padding
+ Memcheck:Param
+ writev(vector[...])
+ fun:writev
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 2
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libxcb.so*
+ obj:/usr/lib*/libxcb.so*
+}
+{
+ X on SUSE11 writev uninit padding 3
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/ld-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+{
+ X on SUSE11 writev uninit padding 4
+ Memcheck:Param
+ writev(vector[...])
+ obj:/lib*/libc-2.*.so*
+ obj:/usr/lib*/libORBit*.so*
+ obj:/usr/lib*/libORBit*.so*
+}
+
+
+# There's something strange about a % 127 in XftFontOpenInfo
+# (hashing) which gcc turns into a multiply by 33818641 and
+# some other guff instead. I don't understand it enough to
+# know if libXft is broken or if memcheck's value tracking is
+# inadequate here. Anyway, for the moment, suppress it.
+#
+# Use of uninitialised value of size 8
+# at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
+# by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&,
+# QFont::Script) (qfontdatabase_x11.cpp:1942)
+# by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
+# QFontDef const&, int) (qfontdatabase.cpp:996)
+{
+ XftFontOpenInfo-umod-127-strangeness
+ Memcheck:Value8
+ obj:/usr/X11*/lib*/libXft.so*
+ obj:/usr/X11*/lib*/libXft.so*
+}
+{
+ XftFontOpenInfo-umod-127-strangeness-a-la-xorg
+ Memcheck:Value8
+ obj:/usr/lib*/libXft.so*
+ obj:/usr/lib*/libXft.so*
+}
+
+{
+ More X padding stuff
+ Memcheck:Param
+ writev(vector[...])
+ fun:*writev*
+ obj:/usr/X11*/lib*/libX11.so*
+ obj:/usr/X11*/lib*/libX11.so*
+}
+
+# Inlined strlen in libX11 on Ubuntu 9.10 amd64, unfortunately.
+# Invalid read of size 4
+# at 0x9B5CCE6: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B5D011: XGetAtomName (in /usr/lib/libX11.so.6.2.0)
+# by 0x86407C3: gdk_x11_xatom_to_atom_for_display
+# (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# by 0x8636817: ??? (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
+# Address 0x1a558e1c is 28 bytes inside a block of size 30 alloc'd
+# at 0x4C2552D: malloc (vg_replace_malloc.c:236)
+# by 0x9B642C0: _XUpdateAtomCache (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B647F1: ??? (in /usr/lib/libX11.so.6.2.0)
+# by 0x9B81818: ??? (in /usr/lib/libX11.so.6.2.0)
+{
+ libX11.so.6.2.0/libX11.so.6.2.0(Addr4)
+ Memcheck:Addr4
+ obj:/usr/*lib*/libX11.so*
+ obj:/usr/*lib*/libX11.so*
+}
+
+##----------------------------------------------------------------------##
+# Completely inappropriate place, but ...
+
+{
+ ifort-9.X-on-i686-1
+ Memcheck:Addr4
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+{
+ ifort-9.X-on-amd64-1
+ Memcheck:Addr8
+ fun:unaligned_bigint
+ fun:hash
+ fun:for__add_to_lf_table
+}
+
+
+# zlib-1.2.x uses uninitialised memory in some tricky way which
+# apparently is harmless (it must amount to a vectorised while-loop,
+# nothing else makes sense). Fools Memcheck though. See the mentioned
+# URL for details.
+{
+ zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value8
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+{
+ zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ ...
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+{
+ zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Value4
+ obj:/*lib*/libz.so.1.2.*
+ fun:deflate
+}
+
+
+##----------------------------------------------------------------------##
+
+## More general versions of some of the old X suppressions above
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+}
+{
+ Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
+ Memcheck:Cond
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXaw*so*
+ obj:/usr/*lib*/libXt*so*
+}
+
+{
+ Ubuntu804-hack-1
+ Memcheck:Overlap
+ fun:mempcpy
+ fun:_IO_default_xsputn
+ obj:/lib*/libc-2.*so*
+}
+##
+## Debian-specific suppressions
+##
+
+{
+ Debian libc6 (2.3.x) stripped dynamic linker
+ Memcheck:Cond
+ obj:/lib/ld-2.3.*.so
+ obj:/lib/ld-2.3.*.so
+ obj:/lib/ld-2.3.*.so
+ obj:/lib/ld-2.3.*.so
+ obj:/lib/ld-2.3.*.so
+}
+
+{
+ Debian libc6 (2.4.x) stripped dynamic linker
+ Memcheck:Cond
+ obj:/lib/ld-2.4.so
+ obj:/lib/ld-2.4.so
+ obj:/lib/ld-2.4.so
+ obj:/lib/ld-2.4.so
+ obj:/lib/ld-2.4.so
+}
+
+{
+ Debian libc6 (2.5.x) stripped dynamic linker
+ Memcheck:Cond
+ obj:/lib/ld-2.5.so
+ obj:/lib/ld-2.5.so
+ obj:/lib/ld-2.5.so
+ obj:/lib/ld-2.5.so
+ obj:/lib/ld-2.5.so
+}
+
+{
+ strchr/libc-2.3.2.so/_dl_catch_error(Cond)
+ Memcheck:Cond
+ fun:strchr
+ obj:*libc-2.3.2.so
+ fun:_dl_catch_error
+ obj:*libc-2.3.2.so
+}
+
+{
+ "Xlib does not zero out unused bytes in the protocol stream"; see http://keithp.com/~keithp/talks/usenix2003/html/net.html
+ Memcheck:Param
+ writev(vector[...])
+ fun:vgAllRoadsLeadToRome_writev
+ fun:__writev
+ obj:/usr/X11R6/lib/libX11.so.6.2
+ fun:_X11TransWritev
+}
+
+{
+ Debian_dlopen
+ Memcheck:Cond
+ fun:_dl_relocate_object
+ fun:dl_open_worker
+ fun:_dl_catch_error
+ fun:__GI__dl_open
+}
+
+{
+ Debian_dlopen2
+ Memcheck:Addr1
+ obj:/lib/ld-2.3.2.so
+ fun:_dl_map_object
+ fun:dl_open_worker
+ fun:_dl_catch_error
+}
+
+{
+ Debian_dlopen3
+ Memcheck:Addr1
+ obj:/lib/ld-2.3.2.so
+ fun:_dl_map_object
+ obj:/lib/ld-2.3.2.so
+ fun:_dl_catch_error
+}
+{
+ Debian_dlopen4
+ Memcheck:Addr1
+ obj:/lib/ld-2.3.2.so
+ fun:_dl_check_map_versions
+ fun:dl_open_worker
+ fun:_dl_catch_error
+}
+{
+ Debian_gcc_supp
+ Memcheck:Addr4
+ obj:/lib/libgcc_s.so.1
+ fun:__dl_iterate_phdr
+ fun:_Unwind_Find_FDE
+ obj:/lib/libgcc_s.so.1
+}
+
+{
+ Debian zlib1g suppression
+ Memcheck:Cond
+ obj:/usr/lib/libz.so.1.2.2
+ obj:/usr/lib/libz.so.1.2.2
+ fun:deflate
+ fun:main
+}
+
+# Glib stores pointers in an integral type. Bug#231989
+{
+ glib type registry
+ Memcheck:Leak
+ fun:calloc
+ fun:g_malloc0
+ fun:type_node_any_new_W
+}
+
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+
+{
+ Debian rpmatch (calloc) static allocations
+ Memcheck:Leak
+ fun:calloc
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (calloc) static allocations
+ Memcheck:Leak
+ fun:calloc
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (calloc) static allocations
+ Memcheck:Leak
+ fun:calloc
+ obj:/lib/tls/libc-2.3.6.so
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc - realloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ fun:realloc
+ obj:/lib/tls/libc-2.3.6.so
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+{
+ Debian rpmatch (malloc) static allocations
+ Memcheck:Leak
+ fun:malloc
+ fun:regcomp
+ fun:rpmatch
+ fun:main
+}
+
+#
+# This is a valgrind suppression file that should be used when using python
+#
+# You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER
+# to use the preferred suppressions with Py_ADDRESS_IN_RANGE.
+#
+# If you do not want to recompile Python, you can uncomment
+# suppressions for PyObject_Free and PyObject_Realloc.
+#
+# See Misc/README.valgrind in the python source for more information.
+
+# all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Addr4
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
+ ADDRESS_IN_RANGE/Invalid read of size 4
+ Memcheck:Value4
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+{
+ ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+ Memcheck:Cond
+ fun:Py_ADDRESS_IN_RANGE
+}
+
+###{
+### ADDRESS_IN_RANGE/Invalid read of size 4
+### Memcheck:Addr4
+### fun:PyObject_Free
+###}
+###
+###{
+### ADDRESS_IN_RANGE/Invalid read of size 4
+### Memcheck:Value4
+### fun:PyObject_Free
+###}
+###
+###{
+### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+### Memcheck:Cond
+### fun:PyObject_Free
+###}
+
+###{
+### ADDRESS_IN_RANGE/Invalid read of size 4
+### Memcheck:Addr4
+### fun:PyObject_Realloc
+###}
+###
+###{
+### ADDRESS_IN_RANGE/Invalid read of size 4
+### Memcheck:Value4
+### fun:PyObject_Realloc
+###}
+###
+###{
+### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
+### Memcheck:Cond
+### fun:PyObject_Realloc
+###}
+
+###
+### All the suppressions below are for errors that occur within libraries
+### that Python uses. The problems to not appear to be related to Python's
+### use of the libraries.
+###
+{
+ GDBM problems, see test_gdbm
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:gdbm_open
+
+}
+
+###
+### These occur from somewhere within the SSL, when running
+### test_socket_sll. They are too general to leave on by default.
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Cond
+### fun:memset
+###}
+###{
+### somewhere in SSL stuff
+### Memcheck:Value4
+### fun:memset
+###}
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Cond
+### fun:MD5_Update
+###}
+###
+###{
+### somewhere in SSL stuff
+### Memcheck:Value4
+### fun:MD5_Update
+###}
+
+#
+# All of these problems come from using test_socket_ssl
+#
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_bin2bn
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_num_bits_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:BN_num_bits_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_mod_exp_mont_word
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BN_mod_exp_mont
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Param
+ write(buf)
+ fun:write
+ obj:/usr/lib/libcrypto.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:RSA_verify
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:RSA_verify
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:DES_set_key_unchecked
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:DES_encrypt2
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ obj:/usr/lib/libssl.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ obj:/usr/lib/libssl.so.0.9.7
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:BUF_MEM_grow_clean
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:memcpy
+ fun:ssl3_read_bytes
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Cond
+ fun:SHA1_Update
+}
+
+{
+ from test_socket_ssl
+ Memcheck:Value4
+ fun:SHA1_Update
+}
+
+{
+ Debian libc6 (2.9.x) stripped dynamic linker
+ Memcheck:Cond
+ obj:/lib/ld-2.9.so
+ obj:/lib/ld-2.9.so
+ obj:/lib/ld-2.9.so
+ obj:/lib/ld-2.9.so
+ obj:/lib/ld-2.9.so
+
+}
+{
+ Debian libc6 (2.10.x) stripped dynamic linker
+ Memcheck:Cond
+ fun:index
+ fun:expand_dynamic_string_token
+ fun:_dl_map_object
+ fun:map_doit
+ fun:_dl_catch_error
+ fun:do_preload
+ fun:dl_main
+ fun:_dl_sysdep_start
+ fun:_dl_start
+ obj:/lib/ld-2.10.1.so
+}
+{
+ Debian libc6 (2.10.x) stripped dynamic linker
+ Memcheck:Cond
+ fun:_dl_relocate_object
+ fun:dl_main
+ fun:_dl_sysdep_start
+ fun:_dl_start
+ obj:/lib/ld-2.10.1.so
+}
+
+
+##Perl supress
+#
+{
+ Perl library
+ Memcheck:Cond
+ obj:*/perl5.12.0
+}

0 comments on commit 4d15f22

Please sign in to comment.
Something went wrong with that request. Please try again.