From a3155bc1511d29c8f11101875be66019e74bb31aabfe36f0cedf9262197c5ffa Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 13 Oct 2010 11:43:20 +0000 Subject: [PATCH] - update to 3.6.0 snapshot: - Valgrind runs much faster when the --smc-check=all option is given. - Cachegrind has a new processing script, cg_diff, which finds the difference between two profiles. It's very useful for evaluating the performance effects of a change in a program. Related to this change, the meaning of cg_annotate's (rarely-used) --threshold option has changed; this is unlikely to affect many people, if you do use it please see the user manual for details. - Callgrind now can do branch prediction simulation, similar to Cachegrind. In addition, it optionally can count the number of executed global bus events. Both can be used for a better approximation of a "Cycle Estimation" as derived event (you need to update the event formula in KCachegrind yourself). - Cachegrind and Callgrind now refer to the LL (last-level) cache rather than the L2 cache. This is to accommodate machines with three levels of caches -- if Cachegrind/Callgrind auto-detects the cache configuration of such a machine it will run the simulation as if the L2 cache isn't present. This means the results are less likely to match the true result for the machine, but Cachegrind/Callgrind's results are already only approximate, and should not be considered authoritative. The results are still useful for giving a general idea about a program's locality. - Massif has a new option, --pages-as-heap, which is disabled by default. When enabled, instead of tracking allocations at the level of heap blocks (as allocated with malloc/new/new[]), it instead tracks memory allocations at the level of memory pages (as mapped by mmap, brk, etc). Each mapped page is treated as its own block. Interpreting the page-level output is harder than the heap-level output, but this option is useful if you want to account for every byte of memory used by a program. - Added new memcheck command-line option --show-possibly-lost. OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=17 --- bigger-default-stack.diff | 101 ------------------------------- bnc558964.diff | 89 --------------------------- glibc-211.diff | 43 ------------- jit-register-unregister.diff | 71 ++++++++++------------ prefer-cfi.diff | 46 -------------- valgrind-3.5.0.tar.bz2 | 3 - valgrind-3.5.90.svn11414.tar.bz2 | 3 + valgrind.changes | 56 +++++++++++++++++ valgrind.spec | 25 +++----- 9 files changed, 101 insertions(+), 336 deletions(-) delete mode 100644 bigger-default-stack.diff delete mode 100644 bnc558964.diff delete mode 100644 glibc-211.diff delete mode 100644 prefer-cfi.diff delete mode 100644 valgrind-3.5.0.tar.bz2 create mode 100644 valgrind-3.5.90.svn11414.tar.bz2 diff --git a/bigger-default-stack.diff b/bigger-default-stack.diff deleted file mode 100644 index d88fce3..0000000 --- a/bigger-default-stack.diff +++ /dev/null @@ -1,101 +0,0 @@ ------------------------------------------------------------------------- -r11215 | sewardj | 2010-07-21 11:49:27 +0200 (Mi, 21. Jul 2010) | 6 Zeilen - -Increase Valgrind's (per-thread) stack size from 64kB to 1MB, -so as to avoid demangler crashes on very long names. Fixes -#197988 (possibly only temporary; the demangler could overflow -the stack again, given extremely long names.) - - ------------------------------------------------------------------------- -Index: coregrind/pub_core_aspacemgr.h -=================================================================== ---- coregrind/pub_core_aspacemgr.h (Revision 11214) -+++ coregrind/pub_core_aspacemgr.h (Revision 11215) -@@ -373,10 +373,10 @@ extern Bool VG_(am_relocate_nooverlap_cl - - #if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) - # define VG_STACK_GUARD_SZB 65536 // 1 or 16 pages --# define VG_STACK_ACTIVE_SZB 131072 // 2 or 32 pages -+# define VG_STACK_ACTIVE_SZB (4096 * 256) // 1Mb - #else - # define VG_STACK_GUARD_SZB 8192 // 2 pages --# define VG_STACK_ACTIVE_SZB 65536 // 16 pages -+# define VG_STACK_ACTIVE_SZB (4096 * 256) // 1Mb - #endif - - typedef ------------------------------------------------------------------------- -r11343 | sewardj | 2010-09-08 10:30:31 +0200 (Mi, 08. Sep 2010) | 7 Zeilen - -Don't scan the entire Valgrind stack to check for impending -stack-overflow situations. This causes an immense number of L2 misses -which are completely pointless, and the recent increase of the -Valgrind per-thread stack size from 64k to 1M greatly aggravates the -situation. - - ------------------------------------------------------------------------- -Index: coregrind/m_aspacemgr/aspacemgr-common.c -=================================================================== ---- coregrind/m_aspacemgr/aspacemgr-common.c (Revision 11342) -+++ coregrind/m_aspacemgr/aspacemgr-common.c (Revision 11343) -@@ -432,15 +432,18 @@ VgStack* VG_(am_alloc_VgStack)( /*OUT*/A - /* Figure out how many bytes of the stack's active area have not - been used. Used for estimating if we are close to overflowing it. */ - --Int VG_(am_get_VgStack_unused_szB)( VgStack* stack ) -+SizeT VG_(am_get_VgStack_unused_szB)( VgStack* stack, SizeT limit ) - { -- Int i; -+ SizeT i; - UInt* p; - - p = (UInt*)&stack->bytes[VG_STACK_GUARD_SZB]; -- for (i = 0; i < VG_STACK_ACTIVE_SZB/sizeof(UInt); i++) -+ for (i = 0; i < VG_STACK_ACTIVE_SZB/sizeof(UInt); i++) { - if (p[i] != 0xDEADBEEF) - break; -+ if (i * sizeof(UInt) >= limit) -+ break; -+ } - - return i * sizeof(UInt); - } -Index: coregrind/m_scheduler/scheduler.c -=================================================================== ---- coregrind/m_scheduler/scheduler.c (Revision 11342) -+++ coregrind/m_scheduler/scheduler.c (Revision 11343) -@@ -1753,9 +1753,11 @@ void VG_(sanity_check_general) ( Bool fo - stack - = (VgStack*) - VG_(get_ThreadState)(tid)->os_state.valgrind_stack_base; -+ SizeT limit -+ = 4096; // Let's say. Checking more causes lots of L2 misses. - remains -- = VG_(am_get_VgStack_unused_szB)(stack); -- if (remains < VKI_PAGE_SIZE) -+ = VG_(am_get_VgStack_unused_szB)(stack, limit); -+ if (remains < limit) - VG_(message)(Vg_DebugMsg, - "WARNING: Thread %d is within %ld bytes " - "of running out of stack!\n", -Index: coregrind/pub_core_aspacemgr.h -=================================================================== ---- coregrind/pub_core_aspacemgr.h (Revision 11342) -+++ coregrind/pub_core_aspacemgr.h (Revision 11343) -@@ -396,10 +396,10 @@ typedef - - extern VgStack* VG_(am_alloc_VgStack)( /*OUT*/Addr* initial_sp ); - --/* Figure out how many bytes of the stack's active area have not -- been used. Used for estimating if we are close to overflowing it. */ -- --extern Int VG_(am_get_VgStack_unused_szB)( VgStack* stack ); -+/* Figure out how many bytes of the stack's active area have not been -+ used. Used for estimating if we are close to overflowing it. If -+ the free area is larger than 'limit', just return 'limit'. */ -+extern SizeT VG_(am_get_VgStack_unused_szB)( VgStack* stack, SizeT limit ); - - // DDD: this is ugly - #if defined(VGO_darwin) diff --git a/bnc558964.diff b/bnc558964.diff deleted file mode 100644 index 9521a53..0000000 --- a/bnc558964.diff +++ /dev/null @@ -1,89 +0,0 @@ ---- coregrind/m_syswrap/priv_syswrap-linux.h -+++ coregrind/m_syswrap/priv_syswrap-linux.h -@@ -116,6 +116,7 @@ - DECL_TEMPLATE(linux, sys_get_mempolicy); - - DECL_TEMPLATE(linux, sys_inotify_init); -+DECL_TEMPLATE(linux, sys_inotify_init1); - DECL_TEMPLATE(linux, sys_inotify_add_watch); - DECL_TEMPLATE(linux, sys_inotify_rm_watch); - ---- coregrind/m_syswrap/syswrap-amd64-linux.c -+++ coregrind/m_syswrap/syswrap-amd64-linux.c -@@ -1374,8 +1374,8 @@ - LINX_(__NR_eventfd2, sys_eventfd2), // 290 - LINXY(__NR_epoll_create1, sys_epoll_create1), // 291 - // (__NR_dup3, sys_ni_syscall) // 292 -- LINXY(__NR_pipe2, sys_pipe2) // 293 -- // (__NR_inotify_init1, sys_ni_syscall) // 294 -+ LINXY(__NR_pipe2, sys_pipe2), // 293 -+ LINXY(__NR_inotify_init1, sys_inotify_init1) // 294 - }; - - const UInt ML_(syscall_table_size) = ---- coregrind/m_syswrap/syswrap-linux.c -+++ coregrind/m_syswrap/syswrap-linux.c -@@ -1526,6 +1526,24 @@ - } - } - -+PRE(sys_inotify_init1) -+{ -+ PRINT("sys_inotify_init ( %ld )", ARG1); -+ PRE_REG_READ1(long, "inotify_init", int, flag); -+} -+ -+POST(sys_inotify_init1) -+{ -+ vg_assert(SUCCESS); -+ if (!ML_(fd_allowed)(RES, "inotify_init", tid, True)) { -+ VG_(close)(RES); -+ SET_STATUS_Failure( VKI_EMFILE ); -+ } else { -+ if (VG_(clo_track_fds)) -+ ML_(record_fd_open_nameless) (tid, RES); -+ } -+} -+ - PRE(sys_inotify_add_watch) - { - PRINT( "sys_inotify_add_watch ( %ld, %#lx, %lx )", ARG1,ARG2,ARG3); ---- coregrind/m_syswrap/syswrap-ppc32-linux.c -+++ coregrind/m_syswrap/syswrap-ppc32-linux.c -@@ -1866,8 +1866,8 @@ - LINX_(__NR_eventfd2, sys_eventfd2), // 314 - LINXY(__NR_epoll_create1, sys_epoll_create1), // 315 - // (__NR_dup3, sys_ni_syscall) // 316 -- LINXY(__NR_pipe2, sys_pipe2) // 317 -- // (__NR_inotify_init1, sys_ni_syscall) // 318 -+ LINXY(__NR_pipe2, sys_pipe2), // 317 -+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318 - }; - - const UInt ML_(syscall_table_size) = ---- coregrind/m_syswrap/syswrap-ppc64-linux.c -+++ coregrind/m_syswrap/syswrap-ppc64-linux.c -@@ -1506,8 +1506,8 @@ - LINX_(__NR_eventfd2, sys_eventfd2), // 314 - LINXY(__NR_epoll_create1, sys_epoll_create1), // 315 - // (__NR_dup3, sys_ni_syscall) // 316 -- LINXY(__NR_pipe2, sys_pipe2) // 317 -- // (__NR_inotify_init1, sys_ni_syscall) // 318 -+ LINXY(__NR_pipe2, sys_pipe2), // 317 -+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318 - }; - - const UInt ML_(syscall_table_size) = ---- coregrind/m_syswrap/syswrap-x86-linux.c -+++ coregrind/m_syswrap/syswrap-x86-linux.c -@@ -2253,8 +2253,8 @@ - LINXY(__NR_epoll_create1, sys_epoll_create1), // 329 - - // (__NR_dup3, sys_ni_syscall) // 330 -- LINXY(__NR_pipe2, sys_pipe2) // 331 -- // (__NR_inotify_init1, sys_ni_syscall) // 332 -+ LINXY(__NR_pipe2, sys_pipe2), // 331 -+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 332 - }; - - const UInt ML_(syscall_table_size) = diff --git a/glibc-211.diff b/glibc-211.diff deleted file mode 100644 index ecf36bc..0000000 --- a/glibc-211.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- configure.in -+++ configure.in -@@ -656,6 +656,17 @@ - ], - GLIBC_VERSION="2.10") - -+AC_EGREP_CPP([GLIBC_211], [ -+#include -+#ifdef __GNU_LIBRARY__ -+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 11) -+ GLIBC_211 -+ #endif -+#endif -+], -+GLIBC_VERSION="2.11") -+ -+ - AC_EGREP_CPP([AIX5_LIBC], [ - #include - #if defined(_AIXVERSION_510) || defined(_AIXVERSION_520) || defined(_AIXVERSION_530) -@@ -742,6 +753,13 @@ - DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" - ;; -+ 2.11) -+ AC_MSG_RESULT(2.11 family) -+ AC_DEFINE([GLIBC_2_11], 1, [Define to 1 if you're using glibc 2.11.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]) -@@ -755,7 +773,7 @@ - - *) - AC_MSG_RESULT(unsupported version) -- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.10]) -+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.11]) - AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION]) - AC_MSG_ERROR([or Darwin libc]) - ;; diff --git a/jit-register-unregister.diff b/jit-register-unregister.diff index 5042c43..7b71d09 100644 --- a/jit-register-unregister.diff +++ b/jit-register-unregister.diff @@ -1,22 +1,21 @@ -Index: include/valgrind.h -=================================================================== ---- include/valgrind.h (revision 10894) -+++ include/valgrind.h (working copy) -@@ -3648,7 +3648,11 @@ - VG_USERREQ__STACK_CHANGE = 0x1503, +--- include/valgrind.h ++++ include/valgrind.h +@@ -4306,7 +4306,12 @@ typedef + VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601, - /* Wine support */ -- VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601 -+ VG_USERREQ__LOAD_PDB_DEBUGINFO = 0x1601, + /* Querying of debug info. */ +- VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701 ++ VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701, + + /* JIT support */ -+ VG_USERREQ__JIT_REGISTER_MAP = 0x1701, -+ VG_USERREQ__JIT_UNREGISTER_MAP = 0x1702 ++ VG_USERREQ__JIT_REGISTER_MAP = 0x1702, ++ VG_USERREQ__JIT_UNREGISTER_MAP = 0x1703 ++ } Vg_ClientRequest; #if !defined(__GNUC__) -@@ -4009,7 +4013,21 @@ - fd, ptr, total_size, delta, 0); \ +@@ -4758,6 +4763,19 @@ VALGRIND_PRINTF_BACKTRACE(const char *fo + addr, buf64, 0, 0, 0); \ } +#define VALGRIND_JIT_REGISTER_MAP(name, start, end) \ @@ -25,23 +24,19 @@ Index: include/valgrind.h + VG_USERREQ__JIT_REGISTER_MAP, \ + name, start, end, 0, 0); \ + } - ++ +#define VALGRIND_JIT_UNREGISTER_MAP(name, start) \ + {unsigned int _qzz_res; \ + VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \ + VG_USERREQ__JIT_REGISTER_MAP, \ + start, 0, 0, 0, 0); \ + } -+ -+ + #undef PLAT_x86_linux #undef PLAT_amd64_linux - #undef PLAT_ppc32_linux -Index: coregrind/m_debuginfo/debuginfo.c -=================================================================== ---- coregrind/m_debuginfo/debuginfo.c (revision 10894) -+++ coregrind/m_debuginfo/debuginfo.c (working copy) -@@ -47,6 +47,7 @@ +--- coregrind/m_debuginfo/debuginfo.c ++++ coregrind/m_debuginfo/debuginfo.c +@@ -48,6 +48,7 @@ #include "pub_core_oset.h" #include "pub_core_stacktrace.h" // VG_(get_StackTrace) XXX: circular dependency #include "pub_core_ume.h" @@ -49,7 +44,7 @@ Index: coregrind/m_debuginfo/debuginfo.c #include "priv_misc.h" /* dinfo_zalloc/free */ #include "priv_d3basics.h" /* ML_(pp_GX) */ -@@ -1131,6 +1132,132 @@ +@@ -1201,6 +1202,132 @@ ULong VG_(di_aix5_notify_segchange)( #endif /* defined(VGO_aix5) */ @@ -182,7 +177,7 @@ Index: coregrind/m_debuginfo/debuginfo.c /*------------------------------------------------------------*/ /*--- ---*/ /*--- TOP LEVEL: QUERYING EXISTING DEBUG INFO ---*/ -@@ -1263,8 +1390,19 @@ +@@ -1336,8 +1463,19 @@ Bool get_sym_name ( Bool do_cxx_demangli PtrdiffT offset; search_all_symtabs ( a, &di, &sno, match_anywhere_in_sym, findText ); @@ -203,26 +198,24 @@ Index: coregrind/m_debuginfo/debuginfo.c VG_(demangle) ( do_cxx_demangling, do_z_demangling, di->symtab[sno].name, buf, nbuf ); -Index: coregrind/pub_core_debuginfo.h -=================================================================== ---- coregrind/pub_core_debuginfo.h (revision 10894) -+++ coregrind/pub_core_debuginfo.h (working copy) -@@ -106,6 +106,10 @@ +--- coregrind/pub_core_debuginfo.h ++++ coregrind/pub_core_debuginfo.h +@@ -106,6 +106,12 @@ Bool VG_(get_fnname_raw) ( Addr a, Char* extern Bool VG_(get_fnname_no_cxx_demangle) ( Addr a, Char* buf, Int nbuf ); +/* Register/deregister symbols created by JITs. */ -+extern void VG_(register_jited_code)( Char* name, Addr start, SizeT len ); -+extern void VG_(unregister_jited_code)( Addr start ); ++extern ++void VG_(register_jited_code)( Char* name, Addr start, SizeT len ); + - /* Use DWARF2/3 CFA information to do one step of stack unwinding. */ - extern Bool VG_(use_CF_info) ( /*MOD*/Addr* ipP, - /*MOD*/Addr* spP, -Index: coregrind/m_scheduler/scheduler.c -=================================================================== ---- coregrind/m_scheduler/scheduler.c (revision 10894) -+++ coregrind/m_scheduler/scheduler.c (working copy) -@@ -1478,6 +1478,16 @@ ++extern ++void VG_(unregister_jited_code)( Addr start ); + + /* Use DWARF2/3 CFA information to do one step of stack unwinding. + D3UnwindRegs holds the current register values, and is +--- coregrind/m_scheduler/scheduler.c ++++ coregrind/m_scheduler/scheduler.c +@@ -1585,6 +1585,16 @@ void do_client_request ( ThreadId tid ) goto my_default; } diff --git a/prefer-cfi.diff b/prefer-cfi.diff deleted file mode 100644 index 79cc155..0000000 --- a/prefer-cfi.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- coregrind/m_stacktrace.c -+++ coregrind/m_stacktrace.c -@@ -153,11 +153,18 @@ - /* Try to derive a new (ip,sp,fp) triple from the current - set. */ - -- /* On x86, first try the old-fashioned method of following the -- %ebp-chain. Code which doesn't use this (that is, compiled -- with -fomit-frame-pointer) is not ABI compliant and so -- relatively rare. Besides, trying the CFI first almost always -- fails, and is expensive. */ -+ /* That didn't work out, so see if there is any CF info to hand -+ which can be used. */ -+ if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) { -+ if (0 == ip || 1 == ip) break; -+ if (sps) sps[i] = sp; -+ if (fps) fps[i] = fp; -+ ips[i++] = ip - 1; /* -1: refer to calling insn, not the RA */ -+ if (debug) -+ VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]); -+ ip = ip - 1; /* as per comment at the head of this loop */ -+ continue; -+ } - /* Deal with frames resulting from functions which begin "pushl% - ebp ; movl %esp, %ebp" which is the ABI-mandated preamble. */ - if (fp_min <= fp && -@@ -183,19 +190,6 @@ - ip = ip - 1; /* as per comment at the head of this loop */ - continue; - } -- -- /* That didn't work out, so see if there is any CF info to hand -- which can be used. */ -- if ( VG_(use_CF_info)( &ip, &sp, &fp, fp_min, fp_max ) ) { -- if (0 == ip || 1 == ip) break; -- if (sps) sps[i] = sp; -- if (fps) fps[i] = fp; -- ips[i++] = ip - 1; /* -1: refer to calling insn, not the RA */ -- if (debug) -- VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]); -- ip = ip - 1; /* as per comment at the head of this loop */ -- continue; -- } - - /* And, similarly, try for MSVC FPO unwind info. */ - if ( VG_(use_FPO_info)( &ip, &sp, &fp, fp_min, fp_max ) ) { diff --git a/valgrind-3.5.0.tar.bz2 b/valgrind-3.5.0.tar.bz2 deleted file mode 100644 index f089c28..0000000 --- a/valgrind-3.5.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:743a5132bbebc247169aefae6e17657677fdf0961aba1668dd4ee7028d27ba80 -size 5482423 diff --git a/valgrind-3.5.90.svn11414.tar.bz2 b/valgrind-3.5.90.svn11414.tar.bz2 new file mode 100644 index 0000000..207541e --- /dev/null +++ b/valgrind-3.5.90.svn11414.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:457913240401bf61b8b72d5b4d7573d589553dec43a5d5724bc012a95282c736 +size 5187901 diff --git a/valgrind.changes b/valgrind.changes index 91d6c95..3e95760 100644 --- a/valgrind.changes +++ b/valgrind.changes @@ -1,3 +1,59 @@ +------------------------------------------------------------------- +Wed Oct 13 13:42:05 CEST 2010 - dmueller@suse.de + +- update to 3.6.0 snapshot: + - Valgrind runs much faster when the --smc-check=all option is given. + + - Cachegrind has a new processing script, cg_diff, which finds the + difference between two profiles. It's very useful for evaluating the + performance effects of a change in a program. + + Related to this change, the meaning of cg_annotate's (rarely-used) + --threshold option has changed; this is unlikely to affect many people, if + you do use it please see the user manual for details. + + - Callgrind now can do branch prediction simulation, similar to Cachegrind. + In addition, it optionally can count the number of executed global bus events. + Both can be used for a better approximation of a "Cycle Estimation" as + derived event (you need to update the event formula in KCachegrind yourself). + + - Cachegrind and Callgrind now refer to the LL (last-level) cache rather + than the L2 cache. This is to accommodate machines with three levels of + caches -- if Cachegrind/Callgrind auto-detects the cache configuration of + such a machine it will run the simulation as if the L2 cache isn't + present. This means the results are less likely to match the true result + for the machine, but Cachegrind/Callgrind's results are already only + approximate, and should not be considered authoritative. The results are + still useful for giving a general idea about a program's locality. + + - Massif has a new option, --pages-as-heap, which is disabled by default. + When enabled, instead of tracking allocations at the level of heap blocks + (as allocated with malloc/new/new[]), it instead tracks memory allocations + at the level of memory pages (as mapped by mmap, brk, etc). Each mapped + page is treated as its own block. Interpreting the page-level output is + harder than the heap-level output, but this option is useful if you want + to account for every byte of memory used by a program. + + - Added new memcheck command-line option --show-possibly-lost. + + - Support for analyzing programs running under Wine with has been improved. + The header files , and + can now be used in Windows-programs compiled with MinGW + or one of the Microsoft Visual Studio compilers. + + - DRD does now have two new command-line options: --free-is-write and + --trace-alloc. The former allows to detect reading from already freed + memory, and the latter allows to trace all memory allocations and + deallocations. + + - Several new annotations have been added in DRD: custom barrier + implementations can now be annotated and benign races on static variables + too. + + - The happens before / happens after annotations in DRD have been made more + powerful such that these can now also be used to annotate e.g. a smart + pointer implementation. + ------------------------------------------------------------------- Thu Sep 23 13:16:16 CEST 2010 - dmueller@suse.de diff --git a/valgrind.spec b/valgrind.spec index d669d08..4928214 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -18,7 +18,7 @@ Name: valgrind -BuildRequires: gcc-c++ glibc-devel-32bit xorg-x11-devel +BuildRequires: gcc-c++ glibc-devel-32bit xorg-x11-devel docbook-xsl-stylesheets docbook_4 libxslt %ifarch x86_64 ppc64 BuildRequires: gcc-32bit %endif @@ -27,17 +27,13 @@ License: GPLv2 Group: Development/Tools/Debuggers Summary: Valgrind Suite of Tools for Debugging and Profiling BuildRoot: %{_tmppath}/%{name}-%{version}-build -Version: 3.5.0 -Release: 12 +Version: 3.5.90.svn11414 +Release: 1 Source0: %{name}-%{version}.tar.bz2 # svn di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_5_0 svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_5_BRANCH > 3_5_BRANCH.diff # svn di svn://svn.valgrind.org/vex/tags/VEX_3_5_0 svn://svn.valgrind.org/vex/branches/VEX_3_5_BRANCH > VEX_3_5_BRANCH.diff Patch1: jit-register-unregister.diff Patch2: deprecated.diff -Patch3: glibc-211.diff -Patch4: bnc558964.diff -Patch5: prefer-cfi.diff -Patch6: bigger-default-stack.diff Provides: callgrind = %version Obsoletes: callgrind < %version ExclusiveArch: %ix86 x86_64 ppc ppc64 @@ -121,13 +117,8 @@ Authors: cd VEX cd .. %patch1 -%patch2 -%patch3 -%patch4 -%if %suse_version >= 1120 -%patch5 -%endif -%patch6 +# probably no longer needed, kept around already for a long time (2010-10-12) +#%patch2 %build export CFLAGS="$RPM_OPT_FLAGS" @@ -136,6 +127,10 @@ autoreconf -fi export GDB=/usr/bin/gdb %configure make %{?jobs:-j%jobs} +pushd docs + #make all-docs + make FAQ.txt man-pages html-docs +popd %install make DESTDIR=$RPM_BUILD_ROOT install @@ -147,7 +142,7 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages %doc README* NEWS AUTHORS COPYING COPYING.DOCS /usr/bin/* %_libdir/valgrind -%doc %_mandir/*/* + %doc %_mandir/*/* %files devel %defattr(-,root,root)