Files
ftmemsim-valgrind/glibc-2.2.supp
Nicholas Nethercote 991367c922 Merge in the COMPVBITS branch to the trunk. This is a big change to
Memcheck, replacing the 9-bits-per-byte shadow memory representation to a
2-bits-per-byte representation (with possibly a little more on the side) by
taking advantage of the fact that extremely few memory bytes are partially
defined.

For the SPEC2k benchmarks with "test" inputs, this speeds up Memcheck by a
(geometric mean) factor of 1.20, and reduces the size of shadow memory by a
(geometric mean) factor of 4.26.

At the same time, Addrcheck is removed.  It hadn't worked for quite some
time, and with these improvements in Memcheck its raisons-d'etre have
shrivelled so much that it's not worth the effort to keep around.  Hooray!

Nb: this code hasn't been tested on PPC.  If things go wrong, look first in
the fast stack-handling functions (eg. mc_new_mem_stack_160,
MC_(helperc_MAKE_STACK_UNINIT)).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5791
2006-03-27 11:37:07 +00:00

600 lines
11 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
# Free Addr1 Addr2 Addr4 Addr8 Addr16
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
#-------- 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
}
#-------- 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
}
#-------- Threading bugs?
# glibc 'knows' that destroying a locked mutex will unlock it
{
pthread_error/pthread_mutex_destroy/__closedir
core:PThread
fun:pthread_error
fun:pthread_mutex_destroy
fun:__closedir
}
{
pthread_error/pthread_mutex_destroy/_IO_default_finish
core:PThread
fun:pthread_error
fun:pthread_mutex_destroy
fun:_IO_default_finish*
}
{
pthread_mutex_unlock/_IO_funlockfile
core:PThread
fun:pthread_mutex_unlock
fun:_IO_funlockfile
}
# 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
}