- 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
This commit is contained in:
Dirk Mueller 2010-10-13 11:43:20 +00:00 committed by Git OBS Bridge
parent 74442d7fd1
commit a3155bc151
9 changed files with 101 additions and 336 deletions

View File

@ -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)

View File

@ -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) =

View File

@ -1,43 +0,0 @@
--- configure.in
+++ configure.in
@@ -656,6 +656,17 @@
],
GLIBC_VERSION="2.10")
+AC_EGREP_CPP([GLIBC_211], [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 11)
+ GLIBC_211
+ #endif
+#endif
+],
+GLIBC_VERSION="2.11")
+
+
AC_EGREP_CPP([AIX5_LIBC], [
#include <standards.h>
#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])
;;

View File

@ -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;
}

View File

@ -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 ) ) {

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:743a5132bbebc247169aefae6e17657677fdf0961aba1668dd4ee7028d27ba80
size 5482423

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:457913240401bf61b8b72d5b4d7573d589553dec43a5d5724bc012a95282c736
size 5187901

View File

@ -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 <valgrind/valgrind.h>, <valgrind/memcheck.h> and
<valgrind/drd.h> 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

View File

@ -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)