##----------------------------------------------------------------------##

# Errors to suppress by default with glibc @GLIBC_MAJOR@.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_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
}
{
   dl-hack3-cond-2
   Memcheck:Cond
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/libc-@GLIBC_MAJOR@*.so*
}
{
   dl-hack3-cond-3
   Memcheck:Cond
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/libc-@GLIBC_MAJOR@*.so*
   obj:/lib*/libc-@GLIBC_MAJOR@*.so*
}
{
   dl-hack3-cond-4
   Memcheck:Cond
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/libdl-@GLIBC_MAJOR@*.so*
}

{
   dl-hack4-64bit-addr-1
   Memcheck:Addr8
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
}
{
   dl-hack4-64bit-addr-2
   Memcheck:Addr8
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/libc-@GLIBC_MAJOR@*.so*
}
{
   dl-hack4-64bit-addr-3
   Memcheck:Addr8
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.so*
   obj:/lib*/libdl-@GLIBC_MAJOR@*.so*
}

{
   dl-hack5-32bit-addr-1
   Memcheck:Addr4
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
}
{
   dl-hack5-32bit-addr-3
   Memcheck:Addr4
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
   obj:/lib*/libdl-@GLIBC_MAJOR@*.so*
}
{
   dl-hack5-32bit-addr-4
   Memcheck:Addr4
   obj:/lib*/ld-@GLIBC_MAJOR@*.so
   obj:/lib*/libdl-@GLIBC_MAJOR@*.so*
   obj:/lib*/ld-@GLIBC_MAJOR@*.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_MAJOR@.*.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_MAJOR@.*.so
}
{
   glibc-2.3.5-on-SuSE-10.1-(PPC)-3
   Memcheck:Addr4
   fun:*wordcopy_fwd_dest_aligned*
   fun:mem*cpy
   obj:*lib*@GLIBC_MAJOR@.*.so
}

{
   glibc-@GLIBC_MAJOR@-on-SUSE-10.3-(x86)
   Memcheck:Addr4
   obj:/lib/ld-@GLIBC_MAJOR@*.so
   obj:/lib/ld-@GLIBC_MAJOR@*.so
   obj:/lib/ld-@GLIBC_MAJOR@*.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_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.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_MAJOR@.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_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.so
}
{
   X11-64bit-padding-4b
   Memcheck:Param
   socketcall.send(msg)
   fun:send
   obj:/*libc-@GLIBC_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.so
   obj:/*libc-@GLIBC_MAJOR@.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
}