From: Dirk Mueller Date: Thu, 12 Oct 2006 08:17:49 +0000 (+0000) Subject: glibc 2.5 support. this is actually cheap so far, X-Git-Tag: svn/VALGRIND_3_3_0~657 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ecc0610b6a58d967eb0dcbc6f567bcea3c18494;p=thirdparty%2Fvalgrind.git glibc 2.5 support. this is actually cheap so far, given that the glibc 2.5 release tarball doesn't have a 2.5 version - it is still labeled as 2.4. However, I believe that they will eventually notice this bug and fix it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6210 --- diff --git a/configure.in b/configure.in index d342e09ed8..89c4d1604a 100644 --- a/configure.in +++ b/configure.in @@ -374,6 +374,16 @@ AC_EGREP_CPP([GLIBC_24], [ ], glibc="2.4") +AC_EGREP_CPP([GLIBC_25], [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 5) + GLIBC_25 + #endif +#endif +], +glibc="2.5") + AC_MSG_CHECKING([the glibc version]) case "${glibc}" in @@ -395,9 +405,15 @@ case "${glibc}" in DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}" ;; + 2.5) + AC_MSG_RESULT(2.5 family) + AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x]) + DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}" + ;; + *) AC_MSG_RESULT(unsupported version) - AC_MSG_ERROR([Valgrind requires glibc version 2.2, 2.3 or 2.4]) + AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.5]) ;; esac diff --git a/glibc-2.5.supp b/glibc-2.5.supp new file mode 100644 index 0000000000..94493a9247 --- /dev/null +++ b/glibc-2.5.supp @@ -0,0 +1,246 @@ + +##----------------------------------------------------------------------## + +# Errors to suppress by default with glibc 2.4.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 +# 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) + +##----------------------------------------------------------------------## +## Suppressions for Fedora Core 5 on ppc32/amd64 (glibc-2.3.90) + +{ + Fedora-Core-5-hack1 + Memcheck:Cond + fun:_dl_start + fun:_start +} + +{ + Fedora-Core-5-hack2 + Memcheck:Cond + obj:/lib*/ld-2.3.90.so + obj:/lib*/ld-2.3.90.so + obj:/lib*/ld-2.3.90.so + obj:/lib*/ld-2.3.90.so +} + +{ + Fedora-Core-5-hack2a + Memcheck:Cond + obj:/lib*/ld-2.4*so + obj:/lib*/ld-2.4*so + obj:/lib*/ld-2.4*so + obj:/lib*/ld-2.4*so +} + +{ + Fedora-Core-5-hack3 + Memcheck:Cond + obj:/lib*/ld-2.3.90.so + obj:/lib*/ld-2.3.90.so + obj:/lib*/ld-2.3.90.so + obj:/lib*/libc-2.3.90.so +} + +{ + Fedora-Core-5-__strcpy_chk-64bit-hack-TODO-fix-this-properly + Memcheck:Addr8 + fun:__strcpy_chk + obj:/usr/lib64/libX11.so.6.2.0 + obj:/usr/lib64/libX11.so.6.2.0 +} + +{ + Fedora-Core-5-hack3-ld24 + Memcheck:Cond + obj:/lib*/ld-2.4*so* + obj:/lib*/ld-2.4*so* + obj:/lib*/ld-2.4*so* +} + +{ + Fedora-Core-5-yet-another-ppc32-hack + Memcheck:Addr4 + fun:_wordcopy_fwd_dest_aligned + fun:mempcpy + obj:/lib*/libc-2.4*so* +} + +##----------------------------------------------------------------------## +{ + glibc-2.3.x-on-SUSE-10.1-(PPC)-1 + Memcheck:Cond + fun:_dl_start_final + fun:_dl_start + fun:_start +} +{ + glibc-2.3.x-on-SUSE-10.1-(PPC)-2a + Memcheck:Cond + fun:index + obj:*ld-2.3.*.so +} +{ + glibc-2.3.x-on-SuSE-10.1-(PPC)-2b + Memcheck:Addr4 + fun:index + fun:expand_dynamic_string_token +} +{ + glibc-2.3.5-on-SuSE-10.1-(PPC)-2c + Memcheck:Addr4 + fun:index + obj:*ld-2.3.*.so +} +{ + glibc-2.3.5-on-SuSE-10.1-(PPC)-3 + Memcheck:Addr4 + fun:*wordcopy_fwd_dest_aligned* + fun:mem*cpy + obj:*lib*2.3.*.so +} +{ + index-not-intercepted-early-enough-HACK-4 + Memcheck:Cond + fun:index + fun:expand_dynamic_string_token +} + + +##----------------------------------------------------------------------## +## Various structure padding things on amd64 SuSE 10.1 +## +{ + X11-64bit-padding-1a + Memcheck:Param + write(buf) + fun:__write_nocancel + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* + fun:X* +} +{ + X11-64bit-padding-1b + Memcheck:Param + write(buf) + fun:__write_nocancel + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* + fun:_X* +} +{ + X11-64bit-padding-1c + Memcheck:Param + write(buf) + fun:__write_nocancel + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* +} +{ + X11-64bit-padding-1d + Memcheck:Param + write(buf) + fun:__write_nocancel + obj:/usr/X*/libICE.so* + obj:/usr/X*/libICE.so* + obj:/usr/X*/libICE.so* +} + + +{ + X11-64bit-padding-2a + Memcheck:Param + writev(vector[...]) + fun:do_writev + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* +} +{ + X11-64bit-padding-2b + Memcheck:Param + writev(vector[...]) + fun:do_writev + fun:writev + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.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-2.4.so + obj:/*libc-2.4.so + obj:/*libc-2.4.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-2.4.so +} + + +{ + X11-64bit-padding-3a + Memcheck:Param + write(buf) + obj:/*libpthread-2.4.so* + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* + obj:/usr/X*/libX11.so* +} + +{ + X11-64bit-padding-4a + Memcheck:Param + socketcall.sendto(msg) + fun:send + obj:/*libc-2.4.so + obj:/*libc-2.4.so + obj:/*libc-2.4.so +} +{ + X11-64bit-padding-4b + Memcheck:Param + socketcall.send(msg) + fun:send + obj:/*libc-2.4.so + obj:/*libc-2.4.so + obj:/*libc-2.4.so +}