##----------------------------------------------------------------------## # Errors to suppress by default with glibc @GLIBC_VERSION@.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-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* } { dl-hack3-cond-2 Memcheck:Cond obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/libc-@GLIBC_VERSION@*.so* } { dl-hack3-cond-3 Memcheck:Cond obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/libc-@GLIBC_VERSION@*.so* obj:*/lib*/libc-@GLIBC_VERSION@*.so* } { dl-hack3-cond-4 Memcheck:Cond obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/libdl-@GLIBC_VERSION@*.so* } { dl-hack4-64bit-addr-1 Memcheck:Addr8 obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* } { dl-hack4-64bit-addr-2 Memcheck:Addr8 obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/libc-@GLIBC_VERSION@*.so* } { dl-hack4-64bit-addr-3 Memcheck:Addr8 obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.so* obj:*/lib*/libdl-@GLIBC_VERSION@*.so* } { dl-hack5-32bit-addr-1 Memcheck:Addr4 obj:*/lib*/ld-@GLIBC_VERSION@*.so obj:*/lib*/ld-@GLIBC_VERSION@*.so obj:*/lib*/ld-@GLIBC_VERSION@*.so } { dl-hack5-32bit-addr-3 Memcheck:Addr4 obj:*/lib*/ld-@GLIBC_VERSION@*.so obj:*/lib*/ld-@GLIBC_VERSION@*.so obj:*/lib*/libdl-@GLIBC_VERSION@*.so* } { dl-hack5-32bit-addr-4 Memcheck:Addr4 obj:*/lib*/ld-@GLIBC_VERSION@*.so obj:*/lib*/libdl-@GLIBC_VERSION@*.so* obj:*/lib*/ld-@GLIBC_VERSION@*.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-@GLIBC_VERSION@.*.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-@GLIBC_VERSION@.*.so } { glibc-2.3.5-on-SuSE-10.1-(PPC)-3 Memcheck:Addr4 fun:*wordcopy_fwd_dest_aligned* fun:mem*cpy obj:*lib*@GLIBC_VERSION@.*.so } { glibc-@GLIBC_VERSION@-on-SUSE-10.3-(x86) Memcheck:Addr4 obj:*/lib/ld-@GLIBC_VERSION@*.so obj:*/lib/ld-@GLIBC_VERSION@*.so obj:*/lib/ld-@GLIBC_VERSION@*.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-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.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-@GLIBC_VERSION@*.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-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.so } { X11-64bit-padding-4b Memcheck:Param socketcall.send(msg) fun:send obj:/*libc-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.so obj:/*libc-@GLIBC_VERSION@*.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 } ##----------------------------------------------------------------------## # Ubuntu 10.04 on ARM (Thumb). Not sure why this is necessary. { U1004-ARM-_dl_relocate_object Memcheck:Cond fun:_dl_relocate_object } # glibc ld.so has an optimization when resolving a symbol that checks # whether or not the upper 128 bits of the ymm registers are zero. If # so it uses "cheaper" instructions to save/restore them using the xmm # registers. If those upper 128 bits contain undefined values memcheck # will issue an Conditional jump or move depends on uninitialised value(s) # warning whenever trying to resolve a symbol. { dl-trampoline-sse-avx Memcheck:Cond fun:_dl_runtime_resolve_avx_slow } # The main thread dynamic thread vector, DTV, which contains pointers # to thread local variables, isn't freed. There are a couple of call # patterns that can cause it to be extended. { dtv-addr-tail Memcheck:Leak match-leak-kinds: possible,reachable fun:malloc fun:tls_get_addr_tail* fun:__tls_get_addr } { dtv-addr-resize Memcheck:Leak match-leak-kinds: possible,reachable fun:malloc fun:_dl_resize_dtv fun:_dl_update_slotinfo fun:update_get_addr fun:__tls_get_addr } { dtv-addr-init Memcheck:Leak match-leak-kinds: possible,reachable fun:malloc fun:allocate_dtv_entry fun:allocate_and_init fun:tls_get_addr_tail* fun:__tls_get_addr }