diff --git a/valgrind-3.2.3-glibc2_7.patch b/valgrind-3.2.3-glibc2_7.patch new file mode 100644 index 0000000..4728eb4 --- /dev/null +++ b/valgrind-3.2.3-glibc2_7.patch @@ -0,0 +1,323 @@ +--- valgrind-3.2.3/configure.in.jj 2007-06-27 12:22:59.000000000 +0200 ++++ valgrind-3.2.3/configure.in 2007-06-27 16:03:45.000000000 +0200 +@@ -361,6 +361,16 @@ AC_EGREP_CPP([GLIBC_26], [ + ], + glibc="2.6") + ++AC_EGREP_CPP([GLIBC_27], [ ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 7) ++ GLIBC_27 ++ #endif ++#endif ++], ++glibc="2.7") ++ + AC_MSG_CHECKING([the glibc version]) + + case "${glibc}" in +@@ -388,9 +398,15 @@ case "${glibc}" in + DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}" + ;; + ++ 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}" ++ ;; ++ + *) + AC_MSG_RESULT(unsupported version) +- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.6]) ++ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.7]) + ;; + esac + +--- valgrind-3.2.3/config.h.in.jj 2007-01-02 15:55:38.000000000 +0100 ++++ valgrind-3.2.3/config.h.in 2007-06-27 16:08:37.000000000 +0200 +@@ -18,6 +18,9 @@ + /* Define to 1 if you're using glibc 2.6.x */ + #undef GLIBC_2_6 + ++/* Define to 1 if you're using glibc 2.7.x */ ++#undef GLIBC_2_7 ++ + /* Define to 1 if as supports mtocrf/mfocrf. */ + #undef HAVE_AS_PPC_MFTOCRF + +--- valgrind-3.2.3/configure.jj 2007-06-27 12:22:59.000000000 +0200 ++++ valgrind-3.2.3/configure 2007-06-27 16:08:16.000000000 +0200 +@@ -4413,6 +4413,28 @@ fi + rm -f conftest* + + ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef __GNU_LIBRARY__ ++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 7) ++ GLIBC_27 ++ #endif ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "GLIBC_27" >/dev/null 2>&1; then ++ glibc="2.7" ++fi ++rm -f conftest* ++ ++ + { echo "$as_me:$LINENO: checking the glibc version" >&5 + echo $ECHO_N "checking the glibc version... $ECHO_C" >&6; } + +@@ -4472,11 +4494,22 @@ _ACEOF + DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}" + ;; + ++ 2.7) ++ echo "$as_me:$LINENO: result: 2.7 family" >&5 ++echo "${ECHO_T}2.7 family" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define GLIBC_2_7 1 ++_ACEOF ++ ++ DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}" ++ ;; ++ + *) + { echo "$as_me:$LINENO: result: unsupported version" >&5 + echo "${ECHO_T}unsupported version" >&6; } +- { { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.6" >&5 +-echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.6" >&2;} ++ { { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.7" >&5 ++echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.7" >&2;} + { (exit 1); exit 1; }; } + ;; + esac +--- valgrind-3.2.3/glibc-2.7.supp.jj 2007-06-27 16:09:55.000000000 +0200 ++++ valgrind-3.2.3/glibc-2.7.supp 2007-06-27 16:10:20.000000000 +0200 +@@ -0,0 +1,216 @@ ++ ++##----------------------------------------------------------------------## ++ ++# Errors to suppress by default with glibc 2.7.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) ++ ++{ ++ dl-hack1 ++ Memcheck:Cond ++ fun:_dl_start ++ fun:_start ++} ++ ++{ ++ dl-hack2 ++ Memcheck:Cond ++ obj:/lib*/ld-2.7*.so ++ obj:/lib*/ld-2.7*.so ++ obj:/lib*/ld-2.7*.so ++ obj:/lib*/ld-2.7*.so ++} ++ ++{ ++ dl-hack3 ++ Memcheck:Cond ++ obj:/lib*/ld-2.7*.so ++ obj:/lib*/ld-2.7*.so ++ obj:/lib*/ld-2.7*.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-2.7*.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-2.7*.so ++} ++{ ++ glibc-2.3.5-on-SuSE-10.1-(PPC)-3 ++ Memcheck:Addr4 ++ fun:*wordcopy_fwd_dest_aligned* ++ fun:mem*cpy ++ obj:*lib*2.7*.so ++} ++ ++##----------------------------------------------------------------------## ++## Various structure padding things on SUSE 10.2 ++## ++{ ++ X11-64bit-padding-1a ++ Memcheck:Param ++ write(buf) ++ fun:__write_nocancel ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++ fun:X* ++} ++{ ++ X11-64bit-padding-1b ++ Memcheck:Param ++ write(buf) ++ fun:__write_nocancel ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++ fun:_X* ++} ++{ ++ X11-64bit-padding-1c ++ Memcheck:Param ++ write(buf) ++ fun:__write_nocancel ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++} ++{ ++ X11-64bit-padding-1d ++ Memcheck:Param ++ write(buf) ++ fun:__write_nocancel ++ obj:/usr/lib*/libICE.so* ++ obj:/usr/lib*/libICE.so* ++ obj:/usr/lib*/libICE.so* ++} ++{ ++ X11-64bit-padding-2a ++ Memcheck:Param ++ writev(vector[...]) ++ fun:do_writev ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/libX11.so* ++} ++{ ++ X11-64bit-padding-2b ++ Memcheck:Param ++ writev(vector[...]) ++ fun:do_writev ++ fun:writev ++ obj:/usr/lib*/libX11.so* ++ obj:/usr/lib*/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.7*.so ++ obj:/*libc-2.7*.so ++ obj:/*libc-2.7*.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.7*.so ++} ++ ++ ++{ ++ X11-64bit-padding-3a ++ Memcheck:Param ++ write(buf) ++ obj:/*libpthread-2.7*.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-2.7*.so ++ obj:/*libc-2.7*.so ++ obj:/*libc-2.7*.so ++} ++{ ++ X11-64bit-padding-4b ++ Memcheck:Param ++ socketcall.send(msg) ++ fun:send ++ obj:/*libc-2.7*.so ++ obj:/*libc-2.7*.so ++ obj:/*libc-2.7*.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 ++} diff --git a/valgrind.spec b/valgrind.spec index e8b7b02..9ec0802 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -1,7 +1,7 @@ Summary: Tool for finding memory management bugs in programs Name: valgrind Version: 3.2.3 -Release: 6 +Release: 7 Epoch: 1 Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 Patch1: valgrind-3.2.3-openat.patch @@ -12,6 +12,7 @@ Patch5: valgrind-3.2.3-io_destroy.patch Patch6: valgrind-3.2.3-power5+-6.patch Patch7: valgrind-3.2.3-private-futex.patch Patch8: valgrind-3.2.3-x86_64-nops.patch +Patch9: valgrind-3.2.3-glibc2_7.patch License: GPLv2 URL: http://www.valgrind.org/ Group: Development/Debuggers @@ -48,6 +49,7 @@ find/diagnose. %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 %build %ifarch x86_64 ppc64 @@ -62,7 +64,7 @@ touch libgcc/libgcc_s_32.a # Force a specific set of default suppressions echo -n > default.supp -for file in glibc-2.6.supp xfree-4.supp ; do +for file in glibc-2.7.supp xfree-4.supp ; do cat $file >> default.supp done @@ -135,6 +137,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/valgrind* %changelog +* Thu Oct 18 2007 Jakub Jelinek 3.2.3-7 +- add suppressions for glibc >= 2.7 + * Fri Aug 31 2007 Jakub Jelinek 3.2.3-6 - handle new x86_64 nops (#256801, KDE#148447) - add support for private futexes (KDE#146781)