From b0b37de5538df1f00855073fffcb467a5c0de4af100dd4a924945b1b85878593 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 5 Sep 2012 15:11:33 +0000 Subject: [PATCH 1/3] OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=78 --- valgrind-3.7.0.tar.bz2 | 3 --- valgrind-3.8.0.tar.bz2 | 3 +++ valgrind.spec | 40 +++++++++++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 12 deletions(-) delete mode 100644 valgrind-3.7.0.tar.bz2 create mode 100644 valgrind-3.8.0.tar.bz2 diff --git a/valgrind-3.7.0.tar.bz2 b/valgrind-3.7.0.tar.bz2 deleted file mode 100644 index de16982..0000000 --- a/valgrind-3.7.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d62c0330f1481fe2c593249192fa68ff454c19c34343978cc9ce91aa324cbf6 -size 6624216 diff --git a/valgrind-3.8.0.tar.bz2 b/valgrind-3.8.0.tar.bz2 new file mode 100644 index 0000000..b5e6517 --- /dev/null +++ b/valgrind-3.8.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd16585f209712642ab6baa2b5c57ec1b879ab2ac4653828d82bb7f86ba7208c +size 7961355 diff --git a/valgrind.spec b/valgrind.spec index c988a89..6085759 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -33,7 +33,7 @@ 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 @@ -42,8 +42,6 @@ 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 +52,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 @@ -140,10 +138,9 @@ Authors: %setup -q -n %{name}-%{version} cd VEX cd .. -%patch1 -%patch2 -%patch3 -p1 -%patch4 +#%patch1 +#%patch2 +#%patch3 -p1 %build %ifarch %arm @@ -194,7 +191,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 +236,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 From 7e02f994a63996c3042366057f3f5f83f48dbc9b6650c496f30730ed59edafa0 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 5 Sep 2012 15:20:05 +0000 Subject: [PATCH 2/3] - 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= 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/package/show/devel:tools/valgrind?expand=0&rev=79 --- jit-register-unregister.diff | 14 ++--- valgrind.changes | 116 +++++++++++++++++++++++++++++++++++ valgrind.spec | 7 +-- 3 files changed, 124 insertions(+), 13 deletions(-) diff --git a/jit-register-unregister.diff b/jit-register-unregister.diff index a8193aa..13a9a06 100644 --- a/jit-register-unregister.diff +++ b/jit-register-unregister.diff @@ -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) diff --git a/valgrind.changes b/valgrind.changes index 553e4c9..696a15d 100644 --- a/valgrind.changes +++ b/valgrind.changes @@ -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= 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 diff --git a/valgrind.spec b/valgrind.spec index 6085759..a5e2d7a 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -39,9 +39,6 @@ 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 # 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) @@ -138,9 +135,7 @@ Authors: %setup -q -n %{name}-%{version} cd VEX cd .. -#%patch1 -#%patch2 -#%patch3 -p1 +%patch1 %build %ifarch %arm From a824941b946364c8d40319ef21c590c1cfe007675dd7715bf273e1707cf627d6 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 5 Sep 2012 23:59:16 +0000 Subject: [PATCH 3/3] OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=80 --- glibc.diff | 37 ---------------------------- tzcnt-lzcnt-inst.diff | 28 --------------------- valgrind-3.7.0-automake-1.11.2.patch | 26 ------------------- 3 files changed, 91 deletions(-) delete mode 100644 glibc.diff delete mode 100644 tzcnt-lzcnt-inst.diff delete mode 100644 valgrind-3.7.0-automake-1.11.2.patch diff --git a/glibc.diff b/glibc.diff deleted file mode 100644 index 5ebdce4..0000000 --- a/glibc.diff +++ /dev/null @@ -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 diff --git a/tzcnt-lzcnt-inst.diff b/tzcnt-lzcnt-inst.diff deleted file mode 100644 index 55af851..0000000 --- a/tzcnt-lzcnt-inst.diff +++ /dev/null @@ -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; - diff --git a/valgrind-3.7.0-automake-1.11.2.patch b/valgrind-3.7.0-automake-1.11.2.patch deleted file mode 100644 index 74fcdfb..0000000 --- a/valgrind-3.7.0-automake-1.11.2.patch +++ /dev/null @@ -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