Accepting request 132873 from devel:tools

- update to 3.8.0:
* Support for MIPS32 platforms running Linux.  Valgrind has been
  tested on MIPS32 and MIPS32r2 platforms running different Debian
  Squeeze and MeeGo distributions.  Both little-endian and big-endian
  cores are supported.  The tools Memcheck, Massif and Lackey have
  been tested and are known to work. See README.mips for more details.
* Preliminary support for Android running on x86.
* Preliminary (as-yet largely unusable) support for MacOSX 10.8.
* Support for Intel AVX instructions and for AES instructions.  This
  support is available only for 64 bit code.
* Support for POWER Decimal Floating Point instructions.
* Non-libc malloc implementations are now supported.  This is useful
  for tools that replace malloc (Memcheck, Massif, DRD, Helgrind).
  Using the new option --soname-synonyms, such tools can be informed
  that the malloc implementation is either linked statically into the
  executable, or is present in some other shared library different
  from libc.so.  This makes it possible to process statically linked
  programs, and programs using other malloc libraries, for example
  TCMalloc or JEMalloc.
* For tools that provide their own replacement for malloc et al, the
  option --redzone-size=<number> allows users to specify the size of
  the padding blocks (redzones) added before and after each client
  allocated block.  Smaller redzones decrease the memory needed by
  Valgrind.  Bigger redzones increase the chance to detect blocks
  overrun or underrun.  Prior to this change, the redzone size was
  hardwired to 16 bytes in Memcheck.
* Memcheck:
  - The leak_check GDB server monitor command now can
    control the maximum nr of loss records to output.
  - Reduction of memory use for applications allocating

OBS-URL: https://build.opensuse.org/request/show/132873
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/valgrind?expand=0&rev=70
This commit is contained in:
Stephan Kulow 2012-09-13 05:10:12 +00:00 committed by Git OBS Bridge
commit 189a0085e0
8 changed files with 154 additions and 112 deletions

View File

@ -1,37 +0,0 @@
add support for glibc 2.15 and glibc 2.16
------------------------------------------------------------------------
Index: configure.in
===================================================================
--- configure.in.orig
+++ configure.in
@@ -775,6 +775,20 @@ case "${GLIBC_VERSION}" in
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.15)
+ AC_MSG_RESULT(2.15 family)
+ AC_DEFINE([GLIBC_2_15], 1, [Define to 1 if you're using glibc 2.15.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}"
+ ;;
+ 2.16)
+ AC_MSG_RESULT(2.16 family)
+ AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.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}"
+ ;;
darwin)
AC_MSG_RESULT(Darwin)
AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
@@ -788,7 +802,7 @@ case "${GLIBC_VERSION}" in
*)
AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
AC_MSG_ERROR([or Darwin libc])
;;
esac

View File

@ -8,7 +8,7 @@
#include "priv_misc.h" /* dinfo_zalloc/free */
#include "priv_d3basics.h" /* ML_(pp_GX) */
@@ -1253,6 +1254,132 @@
@@ -1260,6 +1261,132 @@
#endif /* defined(VGO_linux) || defined(VGO_darwin) */
@ -141,7 +141,7 @@
/*------------------------------------------------------------*/
/*--- ---*/
/*--- TOP LEVEL: QUERYING EXISTING DEBUG INFO ---*/
@@ -1388,8 +1515,19 @@
@@ -1418,8 +1545,19 @@
PtrdiffT offset;
search_all_symtabs ( a, &di, &sno, match_anywhere_in_sym, findText );
@ -164,7 +164,7 @@
VG_(demangle) ( do_cxx_demangling, do_z_demangling,
--- coregrind/m_scheduler/scheduler.c
+++ coregrind/m_scheduler/scheduler.c
@@ -1669,6 +1669,16 @@
@@ -1873,6 +1873,16 @@
goto my_default;
}
@ -183,9 +183,9 @@
if (os_client_request(tid, arg)) {
--- coregrind/pub_core_debuginfo.h
+++ coregrind/pub_core_debuginfo.h
@@ -93,6 +93,12 @@
@@ -99,6 +99,12 @@
extern
Bool VG_(get_fnname_no_cxx_demangle) ( Addr a, Char* buf, Int nbuf );
Bool VG_(get_inst_offset_in_function)( Addr a, /*OUT*/PtrdiffT* offset );
+/* Register/deregister symbols created by JITs. */
+extern
@ -198,7 +198,7 @@
D3UnwindRegs holds the current register values, and is
--- include/valgrind.h
+++ include/valgrind.h
@@ -3664,6 +3664,10 @@
@@ -4443,6 +4443,10 @@
/* Querying of debug info. */
VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701,
@ -209,7 +209,7 @@
/* Disable/enable error reporting level. Takes a single
Word arg which is the delta to this thread's error
disablement indicator. Hence 1 disables or further
@@ -3828,6 +3832,19 @@
@@ -4607,6 +4611,19 @@
_qyy_arg1, _qyy_arg2, \
_qyy_arg3, 0)

View File

@ -1,28 +0,0 @@
GCC 4.8 emits TZCNT (== REP; BSF), expecting that older CPUs behave
like BSF and on newer CPUs as TZCNT.
This patch makes the intrstructions known to valgrind.
Cf. https://bugs.kde.org/show_bug.cgi?id=295808
--- VEX/priv/guest_amd64_toIR.c.orig 2011-10-26 23:24:49.000000000 +0200
+++ VEX/priv/guest_amd64_toIR.c 2012-08-17 11:38:20.000000000 +0200
@@ -17946,11 +17946,17 @@ DisResult disInstr_AMD64_WRK (
/* =-=-=-=-=-=-=-=-=- BSF/BSR -=-=-=-=-=-=-=-=-=-= */
case 0xBC: /* BSF Gv,Ev */
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) goto decode_failure;
+ /* Treat TZCNT (= F3 0F BC = REP; BSF) as BSF
+ as required for old cpus - and for new ones as
+ valgrind doesn't handle TZCNT yet. */
delta = dis_bs_E_G ( vbi, pfx, sz, delta, True );
break;
case 0xBD: /* BSR Gv,Ev */
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) goto decode_failure;
+ /* Treat LZCNT (= F3 0F BD = REP; BSR) as BSR
+ as required for old cpus - and for new ones as
+ valgrind doesn't handle LZCNT yet. */
delta = dis_bs_E_G ( vbi, pfx, sz, delta, False );
break;

View File

@ -1,26 +0,0 @@
diff -Nur valgrind-3.7.0.orig/coregrind/Makefile.am valgrind-3.7.0/coregrind/Makefile.am
--- valgrind-3.7.0.orig/coregrind/Makefile.am 2011-10-27 12:55:06.000000000 +0200
+++ valgrind-3.7.0/coregrind/Makefile.am 2012-01-06 17:23:48.717115986 +0100
@@ -495,7 +495,8 @@
m_gdbserver/powerpc-altivec64l.xml
# so as to make sure these get copied into the install tree
-pkglib_DATA = $(GDBSERVER_XML_FILES)
+vgdatadir = $(pkglibdir)
+vgdata_DATA = $(GDBSERVER_XML_FILES)
# so as to make sure these get copied into the tarball
EXTRA_DIST += $(GDBSERVER_XML_FILES)
diff -Nur valgrind-3.7.0.orig/Makefile.am valgrind-3.7.0/Makefile.am
--- valgrind-3.7.0.orig/Makefile.am 2011-10-26 23:24:45.000000000 +0200
+++ valgrind-3.7.0/Makefile.am 2012-01-06 17:23:17.445114847 +0100
@@ -61,7 +61,8 @@
# default.supp, as it is built from the base .supp files at compile-time.
dist_noinst_DATA = $(SUPP_FILES)
-pkglib_DATA = default.supp
+vgdatadir = $(pkglibdir)
+vgdata_DATA = default.supp
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = valgrind.pc

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d62c0330f1481fe2c593249192fa68ff454c19c34343978cc9ce91aa324cbf6
size 6624216

3
valgrind-3.8.0.tar.bz2 Normal file
View File

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

View File

@ -1,3 +1,119 @@
-------------------------------------------------------------------
Wed Sep 5 15:19:09 UTC 2012 - dmueller@suse.com
- update to 3.8.0:
* Support for MIPS32 platforms running Linux. Valgrind has been
tested on MIPS32 and MIPS32r2 platforms running different Debian
Squeeze and MeeGo distributions. Both little-endian and big-endian
cores are supported. The tools Memcheck, Massif and Lackey have
been tested and are known to work. See README.mips for more details.
* Preliminary support for Android running on x86.
* Preliminary (as-yet largely unusable) support for MacOSX 10.8.
* Support for Intel AVX instructions and for AES instructions. This
support is available only for 64 bit code.
* Support for POWER Decimal Floating Point instructions.
* Non-libc malloc implementations are now supported. This is useful
for tools that replace malloc (Memcheck, Massif, DRD, Helgrind).
Using the new option --soname-synonyms, such tools can be informed
that the malloc implementation is either linked statically into the
executable, or is present in some other shared library different
from libc.so. This makes it possible to process statically linked
programs, and programs using other malloc libraries, for example
TCMalloc or JEMalloc.
* For tools that provide their own replacement for malloc et al, the
option --redzone-size=<number> allows users to specify the size of
the padding blocks (redzones) added before and after each client
allocated block. Smaller redzones decrease the memory needed by
Valgrind. Bigger redzones increase the chance to detect blocks
overrun or underrun. Prior to this change, the redzone size was
hardwired to 16 bytes in Memcheck.
* Memcheck:
- The leak_check GDB server monitor command now can
control the maximum nr of loss records to output.
- Reduction of memory use for applications allocating
many blocks and/or having many partially defined bytes.
- Addition of GDB server monitor command 'block_list' that lists
the addresses/sizes of the blocks of a leak search loss record.
- Addition of GDB server monitor command 'who_points_at' that lists
the locations pointing at a block.
- If a redzone size > 0 is given, VALGRIND_MALLOCLIKE_BLOCK now will
detect an invalid access of these redzones, by marking them
noaccess. Similarly, if a redzone size is given for a memory
pool, VALGRIND_MEMPOOL_ALLOC will mark the redzones no access.
This still allows to find some bugs if the user has forgotten to
mark the pool superblock noaccess.
- Performance of memory leak check has been improved, especially in
cases where there are many leaked blocks and/or many suppression
rules used to suppress leak reports.
- Reduced noise (false positive) level on MacOSX 10.6/10.7, due to
more precise analysis, which is important for LLVM/Clang
generated code. This is at the cost of somewhat reduced
performance. Note there is no change to analysis precision or
costs on Linux targets.
* DRD:
- Added even more facilities that can help finding the cause of a data
race, namely the command-line option --ptrace-addr and the macro
DRD_STOP_TRACING_VAR(x). More information can be found in the manual.
- Fixed a subtle bug that could cause false positive data race reports.
* The C++ demangler has been updated so as to work well with C++
compiled by up to at least g++ 4.6.
* Tool developers can make replacement/wrapping more flexible thanks
to the new option --soname-synonyms. This was reported above, but
in fact is very general and applies to all function
replacement/wrapping, not just to malloc-family functions.
* Round-robin scheduling of threads can be selected, using the new
option --fair-sched= yes. Prior to this change, the pipe-based
thread serialisation mechanism (which is still the default) could
give very unfair scheduling. --fair-sched=yes improves
responsiveness of interactive multithreaded applications, and
improves repeatability of results from the thread checkers Helgrind
and DRD.
* For tool developers: support to run Valgrind on Valgrind has been
improved. We can now routinely Valgrind on Helgrind or Memcheck.
* gdbserver now shows the float shadow registers as integer
rather than float values, as the shadow values are mostly
used as bit patterns.
* Increased limit for the --num-callers command line flag to 500.
* Performance improvements for error matching when there are many
suppression records in use.
* Improved support for DWARF4 debugging information (bug 284184).
* Initial support for DWZ compressed Dwarf debug info.
* Improved control over the IR optimiser's handling of the tradeoff
between performance and precision of exceptions. Specifically,
--vex-iropt-precise-memory-exns has been removed and replaced by
--vex-iropt-register-updates, with extended functionality. This
allows the Valgrind gdbserver to always show up to date register
values to GDB.
* Modest performance gains through the use of translation chaining for
JIT-generated code.
-------------------------------------------------------------------
Fri Aug 17 09:39:39 UTC 2012 - burnus@net-b.de

View File

@ -33,17 +33,12 @@ Summary: Memory Management Debugger
License: GPL-2.0+
Group: Development/Tools/Debuggers
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Version: 3.7.0
Version: 3.8.0
Release: 0
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: glibc.diff
# added automake 1.11.2 patch https://bugs.kde.org/show_bug.cgi?id=290719 algrind-3.7.0-automake-1.11.2.patch
Patch3: valgrind-3.7.0-automake-1.11.2.patch
# added GCC 4.8 patch https://bugs.kde.org/show_bug.cgi?id=295808
Patch4: tzcnt-lzcnt-inst.diff
# during building the major version of glibc is built into the suppression file
%define glibc_main_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f1)
%define glibc_major_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f2)
@ -54,7 +49,7 @@ Provides: valgrind-devel = %version
%endif
Provides: callgrind = %version
Obsoletes: callgrind < %version
ExclusiveArch: %ix86 x86_64 ppc ppc64 s390x armv7hl
ExclusiveArch: %ix86 x86_64 ppc ppc64 s390x armv7l armv7hl
%if %suse_version > 1100
%define building_docs 1
%else
@ -141,9 +136,6 @@ Authors:
cd VEX
cd ..
%patch1
%patch2
%patch3 -p1
%patch4
%build
%ifarch %arm
@ -194,7 +186,7 @@ cp -a README* NEWS AUTHORS COPYING COPYING.DOCS $RPM_BUILD_ROOT/%_defaultdocdir/
%ifarch ppc64
%_libdir/valgrind/*-ppc64-linux
%endif
%ifarch s390 s390x
%ifarch s390x
%_libdir/valgrind/*-s390x-linux
%endif
%ifarch %arm
@ -239,6 +231,31 @@ cp -a README* NEWS AUTHORS COPYING COPYING.DOCS $RPM_BUILD_ROOT/%_defaultdocdir/
%_libdir/valgrind/powerpc-altivec32l.xml
%_libdir/valgrind/powerpc-altivec64l-valgrind.xml
%_libdir/valgrind/powerpc-altivec64l.xml
%_libdir/valgrind/64bit-avx-valgrind-s*.xml
%_libdir/valgrind/64bit-avx.xml
%_libdir/valgrind/amd64-avx-coresse-valgrind.xml
%_libdir/valgrind/amd64-avx-coresse.xml
%_libdir/valgrind/amd64-avx-linux-valgrind.xml
%_libdir/valgrind/amd64-avx-linux.xml
%_libdir/valgrind/mips-cp0-valgrind-s*.xml
%_libdir/valgrind/mips-cp0.xml
%_libdir/valgrind/mips-cpu-valgrind-s*.xml
%_libdir/valgrind/mips-cpu.xml
%_libdir/valgrind/mips-fpu-valgrind-s*.xml
%_libdir/valgrind/mips-fpu.xml
%_libdir/valgrind/mips-linux-valgrind.xml
%_libdir/valgrind/mips-linux.xml
%_libdir/valgrind/power-core-valgrind-s*.xml
%_libdir/valgrind/s390-acr-valgrind-s*.xml
%_libdir/valgrind/s390-acr.xml
%_libdir/valgrind/s390-fpr-valgrind-s*.xml
%_libdir/valgrind/s390-fpr.xml
%_libdir/valgrind/s390x-core64-valgrind-s*.xml
%_libdir/valgrind/s390x-core64.xml
%_libdir/valgrind/s390x-generic-valgrind.xml
%_libdir/valgrind/s390x-generic.xml
%_libdir/valgrind/s390x-linux64-valgrind-s*.xml
%_libdir/valgrind/s390x-linux64.xml
%if %suse_version > 1100