ftmemsim-valgrind/glibc-2.2.supp
Nicholas Nethercote d162731a2c Completely overhauled the internals of Memcheck's error handling. All the
different error kinds were reusing the same struct for storing their
details.  Each one used some but not all the fields, and the AddrInfo was
similar, and it was very confusing.

So I changed MC_Error and AddrInfo to be tagged unions, like Vex's IRExpr and
IRStmt types.  The resulting code is a little more verbose but much easier
to understand.  I also split up several error kinds, which also made things
simpler.  The user-visible behaviour is identical except for a couple of
very minor things that I've documented in the NEWS file for the 3.3.0
release.

Ideally I'd get rid of the Addr and Char* fields in the core Error type,
which are not always used, and do them similarly within tools.  But that
would require changing the core/tool interface, so I'm leaving it for the
moment.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6402
2006-12-16 00:54:12 +00:00

580 lines
10 KiB
Plaintext

##----------------------------------------------------------------------##
# Errors to suppress by default with glibc 2.2.4 / 2.2.5
# 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
#-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2)
{
__GI___stpcpy/*
Memcheck:Cond
fun:__GI___stpcpy
fun:*
}
{
strlen/__GI__dl_open/dlopen_doit
Memcheck:Cond
fun:strlen
fun:__GI__dl_open
fun:dlopen_doit
}
{
strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym
Memcheck:Cond
fun:_dl_signal_cerror
fun:_dl_lookup_symbol_internal
fun:do_dlsym
}
#-------- For R H 8.0
{
elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond)
Memcheck:Cond
fun:elf_dynamic_do_rel.7
fun:_dl_relocate_object_internal
fun:dl_open_worker
}
#-------- For R H 7.3 on i686
{
_dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond)
Memcheck:Cond
fun:_dl_relocate_object*
obj:*libc-2.2.?.so
fun:_dl_catch_error*
}
{
_dl_relocate_object_internal
Memcheck:Cond
fun:_dl_relocate_object_internal
}
{
index/*-2.2.5.so/*-2.2.5.so
Memcheck:Cond
fun:index
obj:*-2.2.5.so
obj:*-2.2.5.so
}
{
Red Hat 7.3 #4
Memcheck:Cond
fun:strlen
fun:dl_main
fun:_dl_sysdep_start
}
#-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
{
__stpcpy/*
Memcheck:Cond
fun:__stpcpy
fun:*
}
{
strlen/decompose_rpath/_dl_map_object
Memcheck:Cond
fun:strlen
fun:decompose_rpath
fun:_dl_map_object
}
{
strlen/_dl_sym/dlsym_doit
Memcheck:Cond
fun:strlen
fun:_dl_sym
fun:dlsym_doit
}
{
trecurse/__gconv_release_shlib(Addr4)
Memcheck:Addr4
fun:trecurse
fun:__gconv_release_shlib
}
{
do_release_shlib/trecurse(Addr4)
Memcheck:Addr4
fun:do_release_shlib
fun:trecurse
}
#-------- R H Limbo (glibc-2.2.90) stuff
{
elf_dynamic_do_rela.8/_dl_relocate_object_internal
Memcheck:Cond
fun:elf_dynamic_do_rela.8
fun:_dl_relocate_object_internal
}
{
__strnlen/_nl_make_l10nflist(Cond)
Memcheck:Cond
fun:__strnlen
fun:_nl_make_l10nflist
}
{
__strnlen/*vfprintf*
Memcheck:Cond
fun:__strnlen
fun:*vfprintf*
}
{
libXaw.so.7.0(Cond)
Memcheck:Cond
obj:*libXaw.so.7.0
}
#-------- Suppress errors appearing as a result of calling
#-------- __libc_freeres()
{
__twalk/*(Addr4)
Memcheck:Addr4
fun:__twalk
}
{
do_release_shlib/__twalk(Addr4)
Memcheck:Addr4
fun:do_release_shlib
fun:__twalk
}
{
__libc_freeres/free_mem/free(Free)
Memcheck:Free
fun:free
fun:free_mem
fun:__libc_freeres
}
#-------- Data races
{
_dl_lookup_symbol/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_symbol
fun:fixup
fun:_dl_runtime_resolve
}
{
_dl_lookup_symbol_internal/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_symbol_internal
fun:fixup
fun:_dl_runtime_resolve
}
{
_dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_versioned_symbol
fun:fixup
fun:_dl_runtime_resolve
}
{
_dl_lookup_versioned_symbol_internal/fixup/_dl_runtime_resolve
Helgrind:Eraser
fun:_dl_lookup_versioned_symbol_internal
fun:fixup
fun:_dl_runtime_resolve
}
{
_dl_fini/exit/__libc_start_main
Helgrind:Eraser
fun:_dl_fini
fun:exit
fun:__libc_start_main
}
{
_dl_map_object_deps/dl_open_worker/_dl_catch_error/_dl_open
Helgrind:Eraser
fun:_dl_map_object_deps
fun:dl_open_worker
fun:_dl_catch_error
fun:_dl_open
}
{
_dl_map_object_deps_internal/dl_open_worker/_dl_catch_error_internal/_dl_open
Helgrind:Eraser
fun:_dl_map_object_deps_internal
fun:dl_open_worker
fun:_dl_catch_error_internal
fun:_dl_open
}
# even more glibc suppressions ?
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
Memcheck:Cond
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
}
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
Memcheck:Value4
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
}
##### glibc 2.2.5 stuff perhaps?
##### suppressions for coolo
{
strchr/dl_open_worker(Cond)
Memcheck:Cond
fun:strchr
fun:dl_open_worker
}
{
__rawmemchr(Cond)
Memcheck:Cond
fun:__rawmemchr
}
{
_IO_vfprintf/__strnlen(Cond)
Memcheck:Cond
fun:__strnlen
fun:_IO_vfprintf
}
{
__strchrnul/gethostbyname*(Cond)
Memcheck:Cond
fun:__strchrnul
fun:gethostbyname*
}
##----
{
strlen/*dl_map_object*(Cond)
Memcheck:Cond
fun:strlen
fun:*dl_map_object*
}
{
strlen/*dl_open_worker*(Cond)
Memcheck:Cond
fun:strlen
fun:*dl_open_worker*
}
{
*rawmemchr*/*nss*(Cond)
Memcheck:Cond
fun:*rawmemchr*
fun:*nss*
}
{
*strchrnul*/*nss*(Cond)
Memcheck:Cond
fun:*strchrnul*
fun:*nss*
}
# gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
# on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in
# __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45)
# (glibc-2.2.4) to read and write below %esp. Hence the following
# two:
{
__mpn_construct_double/*(Addr4)
Memcheck:Addr4
fun:__mpn_construct_double
fun:*
}
{
__mpn_construct_double/*(Addr8)
Memcheck:Addr8
fun:__mpn_construct_double
fun:*
}
# More of the same (gcc bug, I'm pretty sure)
{
__fabs/*(Addr4)
Memcheck:Addr4
fun:__fabs
fun:*
}
{
__fabs/*(Addr8)
Memcheck:Addr8
fun:__fabs
fun:*
}
# Not sure what this is about ... but anyway
{
pthread_sighandler/*(Addr4)
Memcheck:Addr4
fun:pthread_sighandler
fun:*
}
# More glibc stuff, AFAICS
{
__strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
Memcheck:Cond
fun:__strnlen
fun:__argz_stringify
fun:_nl_make_l10nflist
}
#--------------
{
_dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
Memcheck:Cond
fun:_dl_relocate_object*
fun:dl_open_worker
fun:_dl_catch_error*
}
{
_dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
Memcheck:Cond
fun:_dl_relocate_object
obj:*libc-2.2.?.so
fun:_dl_catch_error
}
{
_dl_relocate_object/dl_main(Cond)
Memcheck:Cond
fun:_dl_relocate_object
fun:dl_main
}
{
_dl_relocate_object_internal/dl_main(Cond)
Memcheck:Cond
fun:_dl_relocate_object_internal
fun:dl_main
}
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
Memcheck:Cond
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
}
{
_dl_start/ld-2.2.4.so(Cond)
Memcheck:Cond
fun:_dl_start
obj:/lib/ld-2.2.4.so
}
#-------- glibc 2.2.5/ Debian 3.0
{
_dl_start(Cond)
Memcheck:Cond
fun:_dl_start
}
{
_dl_start(Cond)
Memcheck:Cond
fun:_dl_relocate_object
}
#-------------------
{
socketcall.connect(serv_addr)/connect/*
Memcheck:Param
socketcall.connect(serv_addr)
fun:connect
fun:*
}
{
socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
Memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
}
#----------------------
{
write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param)
Memcheck:Param
write(buf)
fun:write
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
}
{
write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
Memcheck:Param
write(buf)
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
}
#{
# llseek(result)/lseek64/_IO_file_seek(Param)
# Param
# llseek(result)
# fun:lseek64
# fun:_IO_file_seek
#}
{
writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
Memcheck:Param
writev(vector[...])
fun:__writev
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
}
#----------------
{
__rawmemchr/libXt.so.6.0/libXt.so.6.0
Memcheck:Cond
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
{
libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
Memcheck:Cond
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
## Bug in PRE(sys_clone), really. Some args are not used.
{
LinuxThread clone use (child_tidptr)
Memcheck:Param
clone(child_tidptr)
fun:clone
fun:__pthread_initialize_manager
fun:pthread_create@@GLIBC_2.2.5
}
## LinuxThreads manager writes messages containing undefined bytes
{
LinuxThreads: write/pthread_create
Memcheck:Param
write(buf)
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThreads: write/pthread_create
Memcheck:Param
write(buf)
fun:write
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThreads: write/pthread_onexit_process
Memcheck:Param
write(buf)
fun:write
fun:pthread_onexit_process
fun:exit
}
{
LinuxThreads: write/pthread_join
Memcheck:Param
write(buf)
fun:write
fun:pthread_join
}
{
LinuxThreads: write/pthread_create
Memcheck:Param
write(buf)
fun:write
fun:pthread_create@@GLIBC_2.2.5
}
{
LinuxThreads: write/__pthread_initialize_manager/pthread_create
Memcheck:Param
write(buf)
fun:write
fun:__pthread_initialize_manager
fun:pthread_create@@GLIBC_2.2.5
}
## LinuxThreads leaks the stack and TLS data for the manager thread
{
LinuxThreads: leaks stack of manager thread
Memcheck:Leak
fun:malloc
fun:__pthread_initialize_manager
fun:pthread_create@@GLIBC_2.1
}
{
LinuxThreads: leaks TLS data for manager thread
Memcheck:Leak
fun:calloc
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}
{
LinuxThreads: leaks TLS data for manager thread
Memcheck:Leak
fun:memalign
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}
{
LinuxThreads: leaks stack of manager thread
Memcheck:Leak
fun:malloc
fun:__pthread_initialize_manager
fun:pthread_create@@GLIBC_2.2.5
}
{
LinuxThreads: leaks TLS data for manager thread
Memcheck:Leak
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls_storage
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}
{
LinuxThreads: leaks TLS data for manager thread
Memcheck:Leak
fun:memalign
fun:_dl_allocate_tls_storage
fun:_dl_allocate_tls
fun:__pthread_initialize_minimal
}