AC_SUBST(DEFAULT_SUPP)
-libc=""
+GLIBC_VERSION=""
AC_EGREP_CPP([GLIBC_22], [
#include <features.h>
#endif
#endif
],
-libc="2.2")
+GLIBC_VERSION="2.2")
AC_EGREP_CPP([GLIBC_23], [
#include <features.h>
#endif
#endif
],
-libc="2.3")
+GLIBC_VERSION="2.3")
AC_EGREP_CPP([GLIBC_24], [
#include <features.h>
#endif
#endif
],
-libc="2.4")
+GLIBC_VERSION="2.4")
AC_EGREP_CPP([GLIBC_25], [
#include <features.h>
#endif
#endif
],
-libc="2.5")
+GLIBC_VERSION="2.5")
AC_EGREP_CPP([GLIBC_26], [
#include <features.h>
#endif
#endif
],
-libc="2.6")
+GLIBC_VERSION="2.6")
AC_EGREP_CPP([GLIBC_27], [
#include <features.h>
#endif
#endif
],
-libc="2.7")
+GLIBC_VERSION="2.7")
+
+AC_EGREP_CPP([GLIBC_28], [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 8)
+ GLIBC_28
+ #endif
+#endif
+],
+GLIBC_VERSION="2.8")
AC_EGREP_CPP([AIX5_LIBC], [
#include <standards.h>
AIX5_LIBC
#endif
],
-libc="aix5")
+GLIBC_VERSION="aix5")
-AC_MSG_CHECKING([the libc version])
+AC_MSG_CHECKING([the GLIBC_VERSION version])
-case "${libc}" in
+case "${GLIBC_VERSION}" in
2.2)
AC_MSG_RESULT(2.2 family)
AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
2.7)
AC_MSG_RESULT(2.7 family)
AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
- DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.8)
+ AC_MSG_RESULT(2.8 family)
+ AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
+
aix5)
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
*)
AC_MSG_RESULT(unsupported version)
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.7])
- AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 libc])
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.8])
+ AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
;;
esac
+AC_SUBST(GLIBC_VERSION)
# We don't know how to detect the X client library version
# (detecting the server version is easy, but no help). So we
Makefile
valgrind.spec
valgrind.pc
+ glibc-2.X.supp
docs/Makefile
docs/lib/Makefile
docs/images/Makefile
--- /dev/null
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with glibc @GLIBC_VERSION@.x
+
+# 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
+
+{
+ dl-hack1
+ Memcheck:Cond
+ fun:_dl_start
+ fun:_start
+}
+
+{
+ dl-hack2
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+}
+
+{
+ dl-hack3-1
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack3-2
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/libc-@GLIBC_VERSION@*.so*
+}
+
+{
+ dl-hack4-64bit-1
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack4-64bit-2
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/libc-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack4-64bit-3
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/libdl-@GLIBC_VERSION@*.so*
+}
+
+
+
+##----------------------------------------------------------------------##
+{
+ 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
+}