Summary: Tool for finding memory management bugs in programs Name: valgrind Version: 3.3.0 Release: 3 Epoch: 1 Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 Patch1: valgrind-3.3.0-cachegrind-improvements.patch Patch2: valgrind-3.3.0-pkg-config.patch Patch3: valgrind-3.3.0-power5+-6.patch Patch4: valgrind-3.3.0-openat.patch Patch5: valgrind-3.3.0-helgrind-p_b_w.patch Patch6: valgrind-3.3.0-glibc27-dlhack.patch Patch7: valgrind-3.3.0-glibc28.patch Patch8: valgrind-3.3.0-syscalls1.patch Patch9: valgrind-3.3.0-syscalls2.patch License: GPLv2 URL: http://www.valgrind.org/ Group: Development/Debuggers BuildRoot: %{_tmppath}/%{name}-root Obsoletes: valgrind-callgrind %ifarch x86_64 ppc64 # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif BuildRequires: glibc-devel >= 2.8 ExclusiveArch: %{ix86} x86_64 ppc ppc64 %ifarch %{ix86} %define valarch x86 %define valsecarch %{nil} %endif %ifarch x86_64 %define valarch amd64 %define valsecarch x86 %endif %ifarch ppc %define valarch ppc32 %define valsecarch ppc64 %endif %ifarch ppc64 %define valarch ppc64 %define valsecarch ppc32 %endif # Disable build root strip policy %define __spec_install_post /usr/lib/rpm/brp-compress || : # Disable -debuginfo package generation %define debug_package %{nil} %description Valgrind is a tool to help you find memory-management problems in your programs. When a program is run under Valgrind's supervision, all reads and writes of memory are checked, and calls to malloc/new/free/delete are intercepted. As a result, Valgrind can detect a lot of problems that are otherwise very hard to find/diagnose. %package devel Summary: Development files for valgrind Group: Development/Debuggers Requires: valgrind = %{epoch}:%{version}-%{release} %description devel Header files and libraries for development of valgrind aware programs or valgrind plugins. %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %build %ifarch x86_64 ppc64 # Ugly hack - libgcc 32-bit package might not be installed mkdir -p libgcc/32 touch libgcc/32/libgcc_s.a touch libgcc/libgcc_s_32.a %configure CC="gcc -B `pwd`/libgcc/" GDB=%{_bindir}/gdb %else %configure GDB=%{_bindir}/gdb %endif # Force a specific set of default suppressions echo -n > default.supp for file in xfree-4.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.8.supp; do cat $file >> default.supp done make %{?_smp_mflags} # Ensure there are no unexpected file descriptors open, # the testsuite otherwise fails. cat > close_fds.c < #include int main (int argc, char *const argv[]) { int i, j = sysconf (_SC_OPEN_MAX); if (j < 0) exit (1); for (i = 3; i < j; ++i) close (i); execvp (argv[1], argv + 1); exit (1); } EOF gcc $RPM_OPT_FLAGS -o close_fds close_fds.c for i in `find . -type f \( -name *-amd64-linux -o -name *-x86-linux -o -name *-ppc*-linux \)`; do case "`file $i`" in *ELF*executable*statically\ linked*) objcopy -R .debug_loc -R .debug_frame -R .debug_ranges $i esac done # test make check || : echo ===============TESTING=================== ./close_fds make regtest || : echo ===============END TESTING=============== %install rm -rf $RPM_BUILD_ROOT %makeinstall mkdir docs.installed mv $RPM_BUILD_ROOT%{_datadir}/doc/valgrind/* docs.installed/ rm -f docs.installed/*.ps %if "%{valsecarch}" != "" %ifarch ppc ln -sf ../../lib64/valgrind/%{valsecarch}-linux $RPM_BUILD_ROOT%{_libdir}/valgrind/%{valsecarch}-linux %else rm -rf $RPM_BUILD_ROOT%{_libdir}/valgrind/%{valsecarch}-linux || : ln -sf ../../lib/valgrind/%{valsecarch}-linux $RPM_BUILD_ROOT%{_libdir}/valgrind/%{valsecarch}-linux %endif %endif %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc ACKNOWLEDGEMENTS COPYING NEWS README_* %doc docs.installed/html docs.installed/*.pdf %{_bindir}/* %dir %{_libdir}/valgrind %dir %{_libdir}/valgrind/%{valarch}-linux %if "%{valsecarch}" != "" %{_libdir}/valgrind/%{valsecarch}-linux %endif %{_libdir}/valgrind/%{valarch}-linux/*[^a] %{_libdir}/valgrind/%{valarch}-linux/*[^.]a %{_libdir}/valgrind/*.supp %{_mandir}/man1/valgrind* %files devel %defattr(-,root,root) %{_includedir}/valgrind %dir %{_libdir}/valgrind %dir %{_libdir}/valgrind/%{valarch}-linux %{_libdir}/valgrind/%{valarch}-linux/*.a %{_libdir}/pkgconfig/* %changelog * Wed Apr 16 2008 Jakub Jelinek 3.3.0-3 - add suppressions for glibc 2.8 - add a bunch of syscall wrappers (#441709) * Mon Mar 3 2008 Jakub Jelinek 3.3.0-2 - add _dl_start suppression for ppc/ppc64 * Mon Mar 3 2008 Jakub Jelinek 3.3.0-1 - update to 3.3.0 - split off devel bits into valgrind-devel subpackage * 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) - update License tag * Fri Aug 3 2007 Jakub Jelinek 3.2.3-5 - add ppc64-linux symlink in valgrind ppc.rpm, so that when rpm prefers 32-bit binaries over 64-bit ones 32-bit /usr/bin/valgrind can find 64-bit valgrind helper binaries (#249773) - power5+ and power6 support (#240762) * Thu Jun 28 2007 Jakub Jelinek 3.2.3-4 - pass GDB=%{_prefix}/gdb to configure to fix default --db-command (#220840) * Wed Jun 27 2007 Jakub Jelinek 3.2.3-3 - add suppressions for glibc >= 2.6 - avoid valgrind internal error if io_destroy syscall is passed a bogus argument * Tue Feb 13 2007 Jakub Jelinek 3.2.3-2 - fix valgrind.pc again * Tue Feb 13 2007 Jakub Jelinek 3.2.3-1 - update to 3.2.3 * Wed Nov 8 2006 Jakub Jelinek 3.2.1-7 - some cachegrind improvements (Ulrich Drepper) * Mon Nov 6 2006 Jakub Jelinek 3.2.1-6 - fix valgrind.pc (#213149) - handle Intel Core2 cache sizes in cachegrind (Ulrich Drepper) * Wed Oct 25 2006 Jakub Jelinek 3.2.1-5 - fix valgrind on ppc/ppc64 where PAGESIZE is 64K (#211598) * Sun Oct 1 2006 Jakub Jelinek 3.2.1-4 - adjust for glibc-2.5 * Wed Sep 27 2006 Jakub Jelinek 3.2.1-3 - another DW_CFA_set_loc handling fix * Tue Sep 26 2006 Jakub Jelinek 3.2.1-2 - fix openat handling (#208097) - fix DW_CFA_set_loc handling * Tue Sep 19 2006 Jakub Jelinek 3.2.1-1 - update to 3.2.1 bugfix release - SSE3 emulation fixes, reduce memcheck false positive rate, 4 dozens of bugfixes * Mon Aug 21 2006 Jakub Jelinek 3.2.0-5 - handle the new i686/x86_64 nops (#203273) * Fri Jul 28 2006 Jeremy Katz - 1:3.2.0-4 - rebuild to bring ppc back * Wed Jul 12 2006 Jesse Keating - 1:3.2.0-3.1 - rebuild * Fri Jun 16 2006 Jakub Jelinek 3.2.0-3 - handle [sg]et_robust_list syscall on ppc{32,64} * Fri Jun 16 2006 Jakub Jelinek 3.2.0-2 - fix ppc64 symlink to 32-bit valgrind libdir - handle a few extra ppc64 syscalls * Thu Jun 15 2006 Jakub Jelinek 3.2.0-1 - update to 3.2.0 - ppc64 support * Fri May 26 2006 Jakub Jelinek 3.1.1-3 - handle [sg]et_robust_list syscalls on i?86/x86_64 - handle *at syscalls on ppc - ensure on x86_64 both 32-bit and 64-bit glibc{,-devel} are installed in the buildroot (#191820) * Wed Apr 12 2006 Jakub Jelinek 3.1.1-2 - handle many syscalls that were unhandled before, especially on ppc * Mon Apr 3 2006 Jakub Jelinek 3.1.1-1 - upgrade to 3.1.1 - many bugfixes * Mon Mar 13 2006 Jakub Jelinek 3.1.0-2 - add support for DW_CFA_val_offset{,_sf}, DW_CFA_def_cfa_sf and skip over DW_CFA_val_expression quietly - adjust libc/ld.so filenames in glibc-2.4.supp for glibc 2.4 release * Mon Jan 9 2006 Jakub Jelinek 3.1.0-1 - upgrade to 3.1.0 (#174582) - many bugfixes, ppc32 support * Thu Oct 13 2005 Jakub Jelinek 3.0.1-2 - remove Obsoletes for valgrind-callgrind, as it has been ported to valgrind 3.0.x already * Sun Sep 11 2005 Jakub Jelinek 3.0.1-1 - upgrade to 3.0.1 - many bugfixes - handle xattr syscalls on x86-64 (Ulrich Drepper) * Fri Aug 12 2005 Jakub Jelinek 3.0.0-3 - fix amd64 handling of cwtd instruction - fix amd64 handling of e.g. sarb $0x4,val(%rip) - speedup amd64 insn decoding * Fri Aug 12 2005 Jakub Jelinek 3.0.0-2 - lower x86_64 stage2 base from 112TB down to 450GB, so that valgrind works even on 2.4.x kernels. Still way better than 1.75GB that stock valgrind allows * Fri Aug 12 2005 Jakub Jelinek 3.0.0-1 - upgrade to 3.0.0 - x86_64 support - temporarily obsolete valgrind-callgrind, as it has not been ported yet * Tue Jul 12 2005 Jakub Jelinek 2.4.0-3 - build some insn tests with -mmmx, -msse or -msse2 (#161572) - handle glibc-2.3.90 the same way as 2.3.[0-5] * Wed Mar 30 2005 Jakub Jelinek 2.4.0-2 - resurrect the non-upstreamed part of valgrind_h patch - remove 2.1.2-4G patch, seems to be upstreamed - resurrect passing -fno-builtin in memcheck tests * Sun Mar 27 2005 Colin Walters 2.4.0-1 - New upstream version - Update valgrind-2.2.0-regtest.patch to 2.4.0; required minor massaging - Disable valgrind-2.1.2-4G.patch for now; Not going to touch this, and Fedora does not ship 4G kernel by default anymore - Remove upstreamed valgrind-2.2.0.ioctls.patch - Remove obsolete valgrind-2.2.0-warnings.patch; Code is no longer present - Remove upstreamed valgrind-2.2.0-valgrind_h.patch - Remove obsolete valgrind-2.2.0-unnest.patch and valgrind-2.0.0-pthread-stacksize.patch; valgrind no longer includes its own pthread library * Thu Mar 17 2005 Jakub Jelinek 2.2.0-10 - rebuilt with GCC 4 * Tue Feb 8 2005 Jakub Jelinek 2.2.0-8 - avoid unnecessary use of nested functions for pthread_once cleanup * Mon Dec 6 2004 Jakub Jelinek 2.2.0-7 - update URL (#141873) * Tue Nov 16 2004 Jakub Jelinek 2.2.0-6 - act as if NVALGRIND is defined when using in non-m32/i386 programs (#138923) - remove weak from VALGRIND_PRINTF*, make it static and add unused attribute * Mon Nov 8 2004 Jakub Jelinek 2.2.0-4 - fix a printout and possible problem with local variable usage around setjmp (#138254) * Tue Oct 5 2004 Jakub Jelinek 2.2.0-3 - remove workaround for buggy old makes (#134563) * Fri Oct 1 2004 Jakub Jelinek 2.2.0-2 - handle some more ioctls (Peter Jones, #131967) * Thu Sep 2 2004 Jakub Jelinek 2.2.0-1 - update to 2.2.0 * Thu Jul 22 2004 Jakub Jelinek 2.1.2-3 - fix packaging of documentation * Tue Jul 20 2004 Jakub Jelinek 2.1.2-2 - allow tracing of 32-bit binaries on x86-64 * Tue Jul 20 2004 Jakub Jelinek 2.1.2-1 - update to 2.1.2 - run make regtest as part of package build - use glibc-2.3 suppressions instead of glibc-2.2 suppressions * Thu Apr 29 2004 Colin Walters 2.0.0-1 - update to 2.0.0 * Tue Feb 25 2003 Jeff Johnson 1.9.4-0.20030228 - update to 1.9.4 from CVS. - dwarf patch from Graydon Hoare. - sysinfo patch from Graydon Hoare, take 1. * Fri Feb 14 2003 Jeff Johnson 1.9.3-6.20030207 - add return codes to syscalls. - fix: set errno after syscalls. * Tue Feb 11 2003 Graydon Hoare 1.9.3-5.20030207 - add handling for separate debug info (+fix). - handle blocking readv/writev correctly. - comment out 4 overly zealous pthread checks. * Tue Feb 11 2003 Jeff Johnson 1.9.3-4.20030207 - move _pthread_desc to vg_include.h. - implement pthread_mutex_timedlock(). - implement pthread_barrier_wait(). * Mon Feb 10 2003 Jeff Johnson 1.9.3-3.20030207 - import all(afaik) missing functionality from linuxthreads. * Sun Feb 9 2003 Jeff Johnson 1.9.3-2.20030207 - import more missing functionality from linuxthreads in glibc-2.3.1. * Sat Feb 8 2003 Jeff Johnson 1.9.3-1.20030207 - start fixing nptl test cases. * Fri Feb 7 2003 Jeff Johnson 1.9.3-0.20030207 - build against current 1.9.3 with nptl hacks. * Tue Oct 15 2002 Alexander Larsson - Update to 1.0.4 * Fri Aug 9 2002 Alexander Larsson - Update to 1.0.0 * Wed Jul 3 2002 Alexander Larsson - Update to pre4. * Tue Jun 18 2002 Alexander Larsson - Add threadkeys and extra suppressions patches. Bump epoch. * Mon Jun 17 2002 Alexander Larsson - Updated to 1.0pre1 * Tue May 28 2002 Alex Larsson - Updated to 20020524. Added GLIBC_PRIVATE patch * Thu May 9 2002 Jonathan Blandford - add missing symbol __pthread_clock_settime * Wed May 8 2002 Alex Larsson - Update to 20020508 * Mon May 6 2002 Alex Larsson - Update to 20020503b * Thu May 2 2002 Alex Larsson - update to new snapshot * Mon Apr 29 2002 Alex Larsson 20020428-1 - update to new snapshot * Fri Apr 26 2002 Jeremy Katz 20020426-1 - update to new snapshot * Thu Apr 25 2002 Alex Larsson 20020424-5 - Added stack patch. Commented out other patches. * Wed Apr 24 2002 Nalin Dahyabhai 20020424-4 - filter out GLIBC_PRIVATE requires, add preload patch * Wed Apr 24 2002 Alex Larsson 20020424-3 - Make glibc 2.2 and XFree86 4 the default supressions * Wed Apr 24 2002 Alex Larsson 20020424-2 - Added patch that includes atomic.h * Wed Apr 24 2002 Alex Larsson 20020424-1 - Initial build