]> sourceware.org Git - valgrind.git/commitdiff
Update version to 3.23.0.GIT, split NEWS files and create NEWS.older
authorPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 1 Nov 2023 09:56:39 +0000 (10:56 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 1 Nov 2023 09:56:39 +0000 (10:56 +0100)
NEWS
NEWS.old
NEWS.older [new file with mode: 0644]
configure.ac

diff --git a/NEWS b/NEWS
index f11da4be88687b8768268953253ddba13184bedf..14be314581a691d547f3ab73bb312a5fec060c0d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,34 @@
+Release 3.23.0 (?? Apr 2024)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
+AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
+AMD64/macOS 10.13 and nanoMIPS/Linux.
+
+* ==================== CORE CHANGES ===================
+
+* ================== PLATFORM CHANGES =================
+
+* ==================== TOOL CHANGES ===================
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed above.
+
+(3.23.0.RC1: ?? Apr 2024)
+
 Release 3.22.0 (31 Oct 2023)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -475,4432 +506,3 @@ where XXXXXX is the bug number as listed above.
 
 (3.19.0.RC1: 02 Apr 2022)
 (3.19.0.RC2: 08 Apr 2022)
-
-
-Release 3.18.0 (15 Oct 2021)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
-AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
-AMD64/macOS 10.13 and nanoMIPS/Linux.
-
-* ==================== CORE CHANGES ===================
-
-* The libiberty demangler has been updated, which brings support for
-  Rust v0 name demangling. [Update: alas, due to a bug, this support
-  isn't working in 3.18.0.]
-
-* __libc_freeres isn't called anymore after the program recieves a
-  fatal signal. Causing some internal glibc resources to hang around,
-  but preventing any crashes after the program has ended.
-
-* The DWARF reader is now very much faster at startup when just
-  --read-inline-info=yes (the default in most cases) is given.
-
-* glibc 2.34, which moved various functions from libpthread.so into
-  libc.so, is now supported.
-
-* ================== PLATFORM CHANGES =================
-
-* arm64:
-
-  - v8.2 scalar and vector FABD, FACGE, FACGT and FADD.
-  - v8.2 FP compare & conditional compare instructions.
-  - Zero variants of v8.2 FP compare instructions.
-
-* s390:
-
-  - Support the miscellaneous-instruction-extensions facility 3 and
-    the vector-enhancements facility 2.  This enables programs
-    compiled with "-march=arch13" or "-march=z15" to be executed
-    under Valgrind.
-
-* ppc64:
-
-  - ISA 3.1 support is now complete
-  - ISA 3.0 support for the darn instruction added.
-  - ISA 3.0 support for the vector system call instruction scv added.
-  - ISA 3.0 support for the copy, paste and cpabort instructions added.
-* Support for X86/FreeBSD and AMD64/FreeBSD has been added.
-
-* ==================== OTHER CHANGES ====================
-
-* Memcheck on amd64: minor fixes to remove some false positive
-  undef-value errors
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-208531  [PATCH]: FreeBSD support for valgrind
-368960  WARNING: unhandled amd64-linux syscall: 163 (acct)
-407589  [Linux] Add support for C11 aligned_alloc() and GNU reallocarray()
-423963  Error in child thread when CLONE_PIDFD is used
-426148  crash with "impossible happened" when running BPF CO-RE programs
-429375  PPC ISA 3.1 support is missing, part 9
-431157  PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2
-431306  Update demangler to support Rust v0 name mangling
-432387  s390x: z15 instructions support
-433437  FreeBSD support, part 1
-433438  FreeBSD support, part 2
-433439  FreeBSD support, part 3
-433469  FreeBSD support, part 4
-433473  FreeBSD support, part 5
-433477  FreeBSD support, part 6
-433479  FreeBSD support, part 7
-433504  FreeBSD support, part 8
-433506  FreeBSD support, part 9
-433507  FreeBSD support, part 10
-433508  FreeBSD support, part 11
-433510  FreeBSD support, part 12
-433801  PPC ISA 3.1 support is missing, part 10 (ISA 3.1 support complete)
-433863  s390x: memcheck/tests/s390x/{cds,cs,csg} failures
-434296  s390x: False-positive memcheck diagnostics from vector string
-        instructions
-434840  PPC64 darn instruction not supported
-435665  PPC ISA 3.0 copy, paste, cpabort instructions are not supported 
-435908  valgrind tries to fetch from deubginfod for files which already
-        have debug information
-438871  unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2
-439046  valgrind is unusably large when linked with lld
-439090  Implement close_range(2)
-439326  Valgrind 3.17.0 won't compile with Intel 2021 oneAPI compilers
-439590  glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so*
-440670  unhandled ppc64le-linux syscall: 252 statfs64 and 253 fstatfs64
-440906  Fix impossible constraint issue in P10 testcase.
-441512  Remove a unneeded / unnecessary prefix check.
-441534  Update the expected output for test_isa_3_1_VRT.
-442061  very slow execution under Fedora 34 (readdwarf3)
-443031  Gcc -many change requires explicit .machine directives
-443033  Add support for the ISA 3.0 mcrxrx instruction
-443034  Sraw, srawi, srad, sradi, mfs
-443178  Powerpc, test jm-mfspr expected output needs to be updated.
-443179  Need new test for the lxvx and stxvx instructions on ISA 2.07 and
-        ISA 3.0 systems.
-443180  The subnormal test and the ISA 3.0 test generate compiler warnings
-443314  In the latest GIT version, Valgrind with "--trace-flags" crashes
-        at "al" register
-443605  Don't call final_tidyup (__libc_freeres) on FatalSignal
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-(3.18.0.RC1: 12 Oct 2021)
-(3.18.0:     15 Oct 2021)
-
-
-
-Release 3.17.0 (19 Mar 2021)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.17.0 fixes a number of bugs and adds some functional changes: support for
-GCC 11, Clang 11, DWARF5 debuginfo, the 'debuginfod' debuginfo server, and
-some new instructions for Arm64, S390 and POWER.  There are also some tool
-updates.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
-support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
-
-* ==================== CORE CHANGES ===================
-
-* DWARF version 5 support.  Valgrind can now read DWARF version 5 debuginfo as
-  produced by GCC 11.
-
-* Valgrind now supports debuginfod, an HTTP server for distributing ELF/DWARF
-  debugging information. When a debuginfo file cannot be found locally,
-  Valgrind is able to query debuginfod servers for the file using its
-  build-id. See the user manual for more information about debuginfod support.
-
-* ================== PLATFORM CHANGES =================
-
-* arm64:
-
-  - Inaccuracies resulting from double-rounding in the simulation of
-    floating-point multiply-add/subtract instructions have been fixed.  These
-    should now behave exactly as the hardware does.
-
-  - Partial support for the ARM v8.2 instruction set.  v8.2 support work is
-    ongoing.  Support for the half-word variants of at least the following
-    instructions has been added:
-       FABS <Hd>, <Hn>
-       FABS <Vd>.<T>, <Vn>.<T>
-       FNEG <Hd>, <Hn>
-       FNEG <Vd>.<T>, <Vn>.<T>
-       FSQRT <Hd>, <Hn>
-       FSQRT <Vd>.<T>, <Vn>.<T>
-       FADDP
-
-* s390:
-
-  - Implement the new instructions/features that were added to z/Architecture
-    with the vector-enhancements facility 1.  Also cover the instructions from
-    the vector-packed-decimal facility that are defined outside the chapter
-    "Vector Decimal Instructions", but not the ones from that chapter itself.
-
-    For a detailed list of newly supported instructions see the updates to
-    `docs/internals/s390-opcodes.csv'.
-
-    Since the miscellaneous instruction extensions facility 2 was already
-    added in Valgrind 3.16.0, this completes the support necessary to run
-    general programs built with `--march=z14' under Valgrind.  The
-    vector-packed-decimal facility is currently not exploited by the standard
-    toolchain and libraries.
-
-* ppc64:
-
-  - Various bug fixes.  Fix for the sync field to limit setting just two of
-    the two bits in the L-field. Fix the write size for the stxsibx and
-    stxsihx instructions.  Fix the modsw and modsd instructions.
-
-  - Partial support for ISA 3.1 has been added.  Support for the VSX PCV mask
-    instructions, bfloat16 GER instructions, and bfloat16 to/from float 32-bit
-    conversion instructions are still missing.
-
-* ==================== TOOL CHANGES ====================
-
-* General tool changes
-
-  - All the tools and their vgpreload libraries are now installed under
-    libexec because they cannot be executed directly and should be run through
-    the valgrind executable. This should be an internal, not user visible,
-    change, but might impact valgrind packagers.
-
-  - The --track-fds option now respects -q, --quiet and won't output anything
-    if no file descriptors are leaked. It also won't report the standard stdin
-    (0), stdout (1) or stderr (2) descriptors as being leaked with
-    --trace-fds=yes anymore. To track whether the standard file descriptors
-    are still open at the end of the program run use --trace-fds=all.
-
-* DHAT:
-
-  - DHAT has been extended, with two new modes of operation. The new
-    --mode=copy flag triggers copy profiling, which records calls to memcpy,
-    strcpy, and similar functions. The new --mode=ad-hoc flag triggers ad hoc
-    profiling, which records calls to the DHAT_AD_HOC_EVENT client request in
-    the new dhat/dhat.h file. This is useful for learning more about hot code
-    paths. See the user manual for more information about the new modes.
-
-  - Because of these changes, DHAT's file format has changed. DHAT output
-    files produced with earlier versions of DHAT will not work with this
-    version of DHAT's viewer, and DHAT output files produced with this version
-    of DHAT will not work with earlier versions of DHAT's viewer.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-140178  open("/proc/self/exe", ...); doesn't quite work
-140939 --track-fds reports leakage of stdout/in/err and doesn't respect -q
-217695  malloc/calloc/realloc/memalign failure doesn't set errno to ENOMEM
-338633  gdbserver_tests/nlcontrolc.vgtest hangs on arm64
-345077  linux syscall execveat support (linux 3.19)
-361770  Missing F_ADD_SEALS
-369029  handle linux syscalls sched_getattr and sched_setattr
-384729  __libc_freeres inhibits cross-platform valgrind
-388787  Support for C++17 new/delete
-391853  Makefile.all.am:L247 and @SOLARIS_UNDEF_LARGESOURCE@ being empty
-396656  Warnings while reading debug info
-397605  ioctl FICLONE mishandled
-401416  Compile failure with openmpi 4.0
-408663  Suppression file for musl libc
-404076  s390x: z14 vector instructions not implemented
-410743  shmat() calls for 32-bit programs fail when running in 64-bit valgrind
-        (actually affected all x86 and nanomips regardless of host bitness)
-413547  regression test does not check for Arm 64 features.
-414268  Enable AArch64 feature detection and decoding for v8.x instructions
-415293  Incorrect call-graph tracking due to new _dl_runtime_resolve_xsave*
-422174  unhandled instruction bytes: 0x48 0xE9 (REX prefixed JMP instruction)
-422261  platform selection fails for unqualified client name
-422623  epoll_ctl warns for uninitialized padding on non-amd64 64bit arches
-423021  PPC:  Add missing ISA 3.0 documentation link and HWCAPS test.
-423195  PPC ISA 3.1 support is missing, part 1
-423361  Adds io_uring support on arm64/aarch64 (and all other arches)
-424012  crash with readv/writev having invalid but not NULL arg2 iovec
-424298  amd64: Implement RDSEED
-425232  PPC ISA 3.1 support is missing, part 2
-425820  Failure to recognize vpcmpeqq as a dependency breaking idiom.
-426014  arm64: implement fmadd and fmsub as Iop_MAdd/Sub
-426123  PPC ISA 3.1 support is missing, part 3
-426144  Fix "condition variable has not been initialized" on Fedora 33.
-427400  PPC ISA 3.1 support is missing, part 4
-427401  PPC ISA 3.1 support is missing, part 5
-427404  PPC ISA 3.1 support is missing, part 6
-427870  lmw, lswi and related PowerPC insns aren't allowed on ppc64le
-427787  Support new faccessat2 linux syscall (439)
-427969  debuginfo section duplicates a section in the main ELF file
-428035  drd: Unbreak the musl build
-428648  s390_emit_load_mem panics due to 20-bit offset for vector load
-428716  cppcheck detects potential leak in VEX/useful/smchash.c
-428909  helgrind: need to intercept duplicate libc definitions for Fedora 33
-429352  PPC ISA 3.1 support is missing, part 7
-429354  PPC ISA 3.1 support is missing, part 8
-429692  unhandled ppc64le-linux syscall: 147 (getsid)
-429864  s390x: C++ atomic test_and_set yields false-positive memcheck
-        diagnostics
-429952  Errors when building regtest with clang
-430354  ppc stxsibx and stxsihx instructions write too much data
-430429  valgrind.h doesn't compile on s390x with clang
-430485  expr_is_guardable doesn't handle Iex_Qop
-431556  Complete arm64 FADDP v8.2 instruction support
-432102  Add support for DWARF5 as produced by GCC11
-432161  Addition of arm64 v8.2 FADDP, FNEG and FSQRT
-432381  drd: Process STACK_REGISTER client requests
-432552  [AArch64] invalid error emitted for pre-decremented byte/hword addresses
-432672  vg_regtest: test-specific environment variables not reset between tests
-432809  VEX should support REX.W + POPF
-432861  PPC modsw and modsd give incorrect results for 1 mod 12
-432870  gdbserver_tests:nlcontrolc hangs with newest glibc2.33 x86-64
-432215  Add debuginfod functionality
-433323  Use pkglibexecdir as vglibdir
-433500  DRD regtest faulures when libstdc++ and libgcc debuginfo are installed
-433629  valgrind/README has type "abd" instead of "and"
-433641  Rust std::sys::unix::fs::try_statx Syscall param fstatat(file_name)
-433898  arm64: Handle sp, lr, fp as DwReg in CfiExpr
-434193  GCC 9+ inlined strcmp causes "Conditional jump or move [..] value" report
-n-i-bz  helgrind: If hg_cli__realloc fails, return NULL.
-n-i-bz  arm64 front end: avoid Memcheck false positives relating to CPUID
-
-(3.17.0.RC1: 13 Mar 2021)
-(3.17.0.RC2: 17 Mar 2021)
-(3.17.0:     19 Mar 2021)
-
-
-
-Release 3.16.1 (22 June 2020)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.16.1 fixes two critical bugs discovered after 3.16.0 was frozen.  It also
-fixes character encoding problems in the documentation HTML.
-
-422677  PPC sync instruction L field should only be 2 bits in ISA 3.0
-422715  32-bit x86: vex: the `impossible' happened: expr_is_guardable: unhandled expr
-
-(3.16.1, 22 June 2020, 36d6727e1d768333a536f274491e5879cab2c2f7)
-
-
-
-Release 3.16.0 (27 May 2020)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.16.0 is a feature release with many improvements and the usual collection of
-bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
-support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
-
-* ==================== CORE CHANGES ===================
-
-* It is now possible to dynamically change the value of many command line
-  options while your program (or its children) are running under Valgrind.
-
-  To see the list of dynamically changeable options, run
-     "valgrind --help-dyn-options".
-
-  You can change the options from the shell by using vgdb to launch
-  the monitor command "v.clo <clo option>...".
-  The same monitor command can be used from a gdb connected
-  to the valgrind gdbserver.
-  Your program can also change the dynamically changeable options using
-  the client request VALGRIND_CLO_CHANGE(option).
-
-* ================== PLATFORM CHANGES =================
-
-* MIPS: preliminary support for nanoMIPS instruction set has been added.
-
-* ==================== TOOL CHANGES ====================
-
-* DHAT:
-
-  - The implicit memcpy done by each call to realloc now counts towards the
-    read and write counts of resized heap blocks, making those counts higher
-    and more accurate.
-
-* Cachegrind:
-
-  - cg_annotate's --auto and --show-percs options now default to 'yes', because
-    they are usually wanted.
-
-* Callgrind:
-
-  - callgrind_annotate's --auto and --show-percs options now default to 'yes',
-    because they are usually wanted.
-
-  - The command option --collect-systime has been enhanced to specify
-    the unit used to record the elapsed time spent during system calls.
-    The command option now accepts the values no|yes|msec|usec|nsec,
-    where yes is a synonym of msec.  When giving the value nsec, the
-    system cpu time of system calls is also recorded.
-
-* Memcheck:
-
-  - Several memcheck options are now dynamically changeable.
-    Use  valgrind --help-dyn-options  to list them.
-
-  - The release 3.15 introduced a backward incompatible change for
-    some suppression entries related to preadv and pwritev syscalls.
-    When reading a suppression entry using the unsupported 3.14 format,
-    valgrind will now produce a warning to say the suppression entry will not
-    work, and suggest the needed change.
-
-  - Significantly fewer false positive errors on optimised code generated by
-    Clang and GCC.  In particular, Memcheck now deals better with the
-    situation where the compiler will transform C-level "A && B" into "B && A"
-    under certain circumstances (in which the transformation is valid).
-    Handling of integer equality/non-equality checks on partially defined
-    values is also improved on some architectures.
-
-* exp-sgcheck:
-
-  - The exprimental Stack and Global Array Checking tool has been removed.
-    It only ever worked on x86 and amd64, and even on those it had a
-    high false positive rate and was slow.  An alternative for detecting
-    stack and global array overruns is using the AddressSanitizer (ASAN)
-    facility of the GCC and Clang compilers, which require you to rebuild
-    your code with -fsanitize=address.
-
-* ==================== OTHER CHANGES ====================
-
-* New and modified GDB server monitor features:
-
-  - Option -T tells vgdb to output a timestamp in the vgdb information messages.
-
-  - The gdbserver monitor commands that require an address and an optional
-    length argument now accepts the alternate 'C like' syntax "address[length]".
-    For example, the memcheck command "monitor who_points_at 0x12345678 120"
-    can now also be given as "monitor who_points_at 0x12345678[120]".
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-343099  Linux setns syscall wrapper missing, unhandled syscall: 308
-        == 368923 WARNING: unhandled arm64-linux syscall: 268 (setns)
-        == 369031 WARNING: unhandled amd64-linux syscall: 308 (setns)
-385386  Assertion failed "szB >= CACHE_ENTRY_SIZE" at m_debuginfo/image.c:517
-400162  Patch: Guard against __GLIBC_PREREQ for musl libc
-400593  In Coregrind, use statx for some internal syscalls if [f]stat[64] fail
-400872  Add nanoMIPS support to Valgrind
-403212  drd/tests/trylock hangs on FreeBSD
-404406  s390x: z14 miscellaneous instructions not implemented
-405201  Incorrect size of struct vki_siginfo on 64-bit Linux architectures
-406561  mcinfcallWSRU gdbserver_test fails on ppc64
-406824  Unsupported baseline
-407218  Add support for the copy_file_range syscall
-407307  Intercept stpcpy also in ld.so for arm64
-407376  Update Xen support to 4.12 (4.13, actually) and add more coverage
-        == 390553
-407764  drd cond_post_wait gets wrong (?) condition on s390x z13 system
-408009  Expose rdrand and f16c even on avx if host cpu supports them
-408091  Missing pkey syscalls
-408414  Add support for missing for preadv2 and pwritev2 syscalls
-409141  Valgrind hangs when SIGKILLed
-409206  Support for Linux PPS and PTP ioctls
-409367  exit_group() after signal to thread waiting in futex() causes hangs
-409429  amd64: recognize 'cmpeq' variants as a dependency breaking idiom
-409780  References to non-existent configure.in
-410556  Add support for BLKIO{MIN,OPT} and BLKALIGNOFF ioctls
-410599  Non-deterministic behaviour of pth_self_kill_15_other test
-410757  discrepancy for preadv2/pwritev2 syscalls across different versions
-411134  Allow the user to change a set of command line options during execution
-411451  amd64->IR of bt/btc/bts/btr with immediate clears zero flag
-412344  Problem setting mips flags with specific paths
-412408  unhandled arm-linux syscall: 124 - adjtime - on arm-linux
-413119  Ioctl wrapper for DRM_IOCTL_I915_GEM_MMAP
-413330  avx-1 test fails on AMD EPYC 7401P 24-Core Processor
-413603  callgrind_annotate/cg_annotate truncate function names at '#'
-414565  Specific use case bug found in SysRes VG_(do_sys_sigprocmask)
-415136  ARMv8.1 Compare-and-Swap instructions are not supported
-415757  vex x86->IR: 0x66 0xF 0xCE 0x4F (bswapw)
-416239  valgrind crashes when handling clock_adjtime
-416285  Use prlimit64 in VG_(getrlimit) and VG_(setrlimit)
-416286  DRD reports "conflicting load" error on std::mutex::lock()
-416301  s390x: "compare and signal" not supported
-416387  finit_module and bpf syscalls are unhandled on arm64
-416464  Fix false reports for uninitialized memory for PR_CAPBSET_READ/DROP
-416667  gcc10 ppc64le impossible constraint in 'asm' in test_isa.
-416753  new 32bit time syscalls for 2038+
-417075  pwritev(vector[...]) suppression ignored
-        417075 is not fixed, but incompatible supp entries are detected
-        and a warning is produced for these.
-417187  [MIPS] Conditional branch problem since 'grail' changes
-417238  Test memcheck/tests/vbit-test fails on mips64 BE
-417266  Make memcheck/tests/linux/sigqueue usable with musl
-417281  s390x: /bin/true segfaults with "grail" enabled
-417427  commit to fix vki_siginfo_t definition created numerous regression
-        errors on ppc64
-417452  s390_insn_store_emit: dst->tag for HRcVec128
-417578  Add suppressions for glibc DTV leaks
-417906  clone with CLONE_VFORK and no CLONE_VM fails
-418004  Grail code additions break ppc64.
-418435  s390x: spurious "Conditional jump or move depends on uninitialised [..]"
-418997  s390x: Support Iex_ITE for float and vector types
-419503  s390x: Avoid modifying registers returned from isel functions
-421321  gcc10 arm64 build needs __getauxval for linking with libgcc
-421570  std_mutex fails on Arm v8.1 h/w
-434035  vgdb might crash if valgrind is killed
-n-i-bz  Fix minor one time leaks in dhat.
-n-i-bz  Add --run-cxx-freeres=no in outer args to avoid inner crashes.
-n-i-bz  Add support for the Linux io_uring system calls
-n-i-bz  sys_statx: don't complain if both |filename| and |buf| are NULL.
-n-i-bz  Fix non-glibc build of test suite with s390x_features
-n-i-bz  MinGW, include/valgrind.h: Fix detection of 64-bit mode
-423195  PPC ISA 3.1 support is missing, part 1
-
-(3.16.0.RC1:  18 May 2020, git 6052ee66a0cf5234e8e2a2b49a8760226bc13b92)
-(3.16.0.RC2:  19 May 2020, git 940ec1ca69a09f7fdae3e800b7359f85c13c4b37)
-(3.16.0:      27 May 2020, git bf5e647edb9e96cbd5c57cc944984402eeee296d)
-
-
-
-Release 3.15.0 (12 April 2019)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.15.0 is a feature release with many improvements and the usual collection of
-bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
-support for X86/macOS 10.13 and AMD64/macOS 10.13.
-
-* ==================== CORE CHANGES ===================
-
-* The XTree Massif output format now makes use of the information obtained
-  when specifying --read-inline-info=yes.
-
-* amd64 (x86_64): the RDRAND and F16C insn set extensions are now supported.
-
-* ==================== TOOL CHANGES ====================
-
-* DHAT: 
-
-  - DHAT been thoroughly overhauled, improved, and given a GUI.  As a result,
-    it has been promoted from an experimental tool to a regular tool.  Run it
-    with --tool=dhat instead of --tool=exp-dhat.
-
-  - DHAT now prints only minimal data when the program ends, instead writing
-    the bulk of the profiling data to a file.  As a result, the --show-top-n
-    and --sort-by options have been removed.
-    
-  - Profile results can be viewed with the new viewer, dh_view.html.  When
-    a run ends, a short message is printed, explaining how to view the result.
-    
-  - See the documentation for more details.
-
-* Cachegrind:
-
-  - cg_annotate has a new option, --show-percs, which prints percentages next
-    to all event counts.
-
-* Callgrind:
-
-  - callgrind_annotate has a new option, --show-percs, which prints percentages
-    next to all event counts.
-
-  - callgrind_annotate now inserts commas in call counts, and
-    sort the caller/callee lists in the call tree.
-
-* Massif:
-
-  - The default value for --read-inline-info is now "yes" on
-    Linux/Android/Solaris. It is still "no" on other OS.
-
-* Memcheck:
-
-  - The option --xtree-leak=yes (to output leak result in xtree format)
-    automatically activates the option --show-leak-kinds=all, as xtree
-    visualisation tools such as kcachegrind can in any case select what kind
-    of leak to visualise.
-
-  - There has been further work to avoid false positives.  In particular,
-    integer equality on partially defined inputs (C == and !=) is now handled
-    better.
-
-* ==================== OTHER CHANGES ====================
-
-* The new option --show-error-list=no|yes displays, at the end of the run, the
-  list of detected errors and the used suppressions.  Prior to this change,
-  showing this information could only be done by specifying "-v -v", but that
-  also produced a lot of other possibly-non-useful messages.  The option -s is
-  equivalent to --show-error-list=yes.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-385411  s390x: z13 vector floating-point instructions not implemented
-397187  z13 vector register support for vgdb gdbserver
-398183  Vex errors with _mm256_shuffle_epi8/vpshufb
-398870  Please add support for instruction vcvtps2ph
-399287  amd64 front end: Illegal Instruction vcmptrueps
-399301  Use inlined frames in Massif XTree output. 
-399322  Improve callgrind_annotate output
-399444  VEX/priv/guest_s390_toIR.c:17407: (style) Mismatching assignment [..]
-400164  helgrind test encounters mips x-compiler warnings and assembler error
-400490  s390x: VRs allocated as if separate from FPRs
-400491  s390x: Operand of LOCH treated as unsigned integer
-400975  Compile error: error: '-mips64r2' conflicts with the other architecture
-        options, which specify a mips64 processor
-401112  LLVM 5.0 generates comparison against partially initialized data
-401277  More bugs in z13 support
-401454  Add a --show-percs option to cg_annotate and callgrind_annotate.
-401578  drd: crashes sometimes on fork()
-401627  memcheck errors with glibc avx2 optimized wcsncmp
-401822  none/tests/ppc64/jm-vmx fails and produces assembler warnings
-401827  none/tests/ppc64/test_isa_2_06_part3 failure on ppc64le (xvrsqrtesp)
-401828  none/tests/ppc64/test_isa_2_06_part1 failure on ppc64le (fcfids and
-        fcfidus)
-402006  mark helper regs defined in final_tidyup before freeres_wrapper call
-402048  WARNING: unhandled ppc64[be|le]-linux syscall: 26 (ptrace)
-402123  invalid assembler opcodes for mips32r2
-402134  assertion fail in mc_translate.c (noteTmpUsesIn) Iex_VECRET on arm64
-402327  Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x13 (DW_OP_drop)
-402341  drd/tests/tsan_thread_wrappers_pthread.h:369: suspicious code ?
-402351  mips64 libvexmultiarch_test fails on s390x
-402369  Overhaul DHAT
-402395  coregrind/vgdb-invoker-solaris.c: 2 * poor error checking
-402480  Do not use %rsp in clobber list
-402481  vbit-test fails on x86 for Iop_CmpEQ64 iselInt64Expr Sar64
-402515  Implement new option --show-error-list=no|yes / -s
-402519  POWER 3.0 addex instruction incorrectly implemented
-402781  Redo the cache used to process indirect branch targets
-403123  vex amd64->IR:0xF3 0x48 0xF 0xAE 0xD3 (wrfsbase)
-403552  s390x: wrong facility bit checked for vector facility
-404054  memcheck powerpc subfe x, x, x initializes x to 0 or -1 based on CA
-404638  Add VG_(replaceIndexXA)
-404843  s390x: backtrace sometimes ends prematurely
-404888  autotools cleanup series
-405079  unhandled ppc64le-linux syscall: 131 (quotactl)
-405182  Valgrind fails to build with Clang
-405205  filter_libc: remove the line holding the futex syscall error entirely
-405356  PPC64, xvcvsxdsp, xvcvuxdsp are supposed to write the 32-bit result to
-        the upper and lower 32-bits of the 64-bit result
-405362  PPC64, vmsummbm instruction doesn't handle overflow case correctly
-405363  PPC64, xvcvdpsxws, xvcvdpuxws, do not handle NaN arguments correctly.
-405365  PPC64, function _get_maxmin_fp_NaN() doesn't handle QNaN, SNaN case
-        correctly.
-405403  s390x disassembler cannot be used on x86
-405430  Use gcc -Wimplicit-fallthrough=2 by default if available
-405458  MIPS mkFormVEC arguments swapped?
-405716  drd: Fix an integer overflow in the stack margin calculation
-405722  Support arm64 core dump
-405733  PPC64, xvcvdpsp should write 32-bit result to upper and lower 32-bits
-        of the 64-bit destination field.
-405734  PPC64, vrlwnm, vrlwmi, vrldrm, vrldmi do not work properly when me < mb
-405782  "VEX temporary storage exhausted" when attempting to debug slic3r-pe
-406198  none/tests/ppc64/test_isa_3_0_other test sporadically including CA
-        bit in output.
-406256  PPC64, vector floating point instructions don't handle subnormal
-        according to VSCR[NJ] bit setting.
-406352  cachegrind/callgrind fails ann tests because of missing a.c
-406354  dhat is broken on x86 (32bit)
-406355  mcsignopass, mcsigpass, mcbreak fail due to difference in gdb output
-406357  gdbserver_tests fails because of gdb output change
-406360  memcheck/tests/libstdc++.supp needs more supression variants
-406422  none/tests/amd64-linux/map_32bits.vgtest fails too easily
-406465  arm64 insn selector fails on "t0 = <expr>" where <expr> has type Ity_F16
-407340  PPC64, does not support the vlogefp, vexptefp instructions.
-n-i-bz  add syswrap for PTRACE_GET|SET_THREAD_AREA on amd64.
-n-i-bz  Fix callgrind_annotate non deterministic order for equal total
-n-i-bz  callgrind_annotate --threshold=100 does not print all functions.
-n-i-bz  callgrind_annotate Use of uninitialized value in numeric gt (>)
-n-i-bz  amd64 (x86_64): RDRAND and F16C insn set extensions are supported
-
-(3.15.0.RC1:  8 April 2019, git ce94d674de5b99df173aad4c3ee48fc2a92e5d9c)
-(3.15.0.RC2: 11 April 2019, git 0c8be9bbede189ec580ec270521811766429595f)
-(3.15.0:     14 April 2019, git 270037da8b508954f0f7d703a0bebf5364eec548)
-
-
-
-Release 3.14.0 (9 October 2018)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.14.0 is a feature release with many improvements and the usual collection of
-bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
-support for X86/macOS 10.13, AMD64/macOS 10.13.
-
-* ==================== CORE CHANGES ===================
-
-* The new option --keep-debuginfo=no|yes (default no) can be used to retain
-  debug info for unloaded code.  This allows saved stack traces (e.g. for
-  memory leaks) to include file/line info for code that has been dlclose'd (or
-  similar).  See the user manual for more information and known limitations.
-
-* Ability to specify suppressions based on source file name and line number.
-
-* Majorly overhauled register allocator.  No end-user changes, but the JIT
-  generates code a bit more quickly now.
-
-* ================== PLATFORM CHANGES =================
-
-* Preliminary support for macOS 10.13 has been added.
-
-* mips: support for MIPS32/MIPS64 Revision 6 has been added.
-
-* mips: support for MIPS SIMD architecture (MSA) has been added.
-
-* mips: support for MIPS N32 ABI has been added.
-
-* s390: partial support for vector instructions (integer and string) has been
-  added.
-
-* ==================== TOOL CHANGES ====================
-
-* Helgrind: Addition of a flag
-  --delta-stacktrace=no|yes [yes on linux amd64/x86]
-  which specifies how full history stack traces should be computed.
-  Setting this to =yes can speed up Helgrind by 25% when using
-  --history-level=full.
-
-* Memcheck: reduced false positive rate for optimised code created by Clang 6
-  / LLVM 6 on x86, amd64 and arm64.  In particular, Memcheck analyses code
-  blocks more carefully to determine where it can avoid expensive definedness
-  checks without loss of precision.  This is controlled by the flag
-  --expensive-definedness-checks=no|auto|yes [auto].
-
-* ==================== OTHER CHANGES ====================
-
-* Valgrind is now buildable with link-time optimisation (LTO).  A new
-  configure option --enable-lto=yes allows building Valgrind with LTO.  If the
-  toolchain supports it, this produces a smaller/faster Valgrind (up to 10%).
-  Note that if you are doing Valgrind development, --enable-lto=yes massively
-  slows down the build process.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-79362   Debug info is lost for .so files when they are dlclose'd
-208052  strlcpy error when n = 0
-255603  exp-sgcheck Assertion '!already_present' failed
-338252  building valgrind with -flto (link time optimisation) fails
-345763  MIPS N32 ABI support
-368913  WARNING: unhandled arm64-linux syscall: 117 (ptrace)
-        == 388664  unhandled arm64-linux syscall: 117  (ptrace)
-372347  Replacement problem of the additional c++14/c++17 new/delete operators
-373069  memcheck/tests/leak_cpp_interior fails with GCC 5.1+
-376257  helgrind history full speed up using a cached stack
-379373  Fix syscall param msg->desc.port.name points to uninitialised byte(s)
-        on macOS 10.12
-379748  Fix missing pselect syscall (OS X 10.11)
-379754  Fix missing syscall ulock_wait (OS X 10.12)
-380397  s390x: __GI_strcspn() replacemenet needed
-381162  possible array overrun in VEX register allocator
-381272  ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
-381274  powerpc too chatty even with --sigill-diagnostics=no
-381289  epoll_pwait can have a NULL sigmask
-381553  VEX register allocator v3
-381556  arm64: Handle feature registers access on 4.11 Linux kernel or later
-381769  Use ucontext_t instead of struct ucontext
-381805  arm32 needs ld.so index hardwire for new glibc security fixes
-382256  gz compiler flag test doesn't work for gold
-382407  vg_perf needs "--terse" command line option
-382515  "Assertion 'di->have_dinfo' failed." on wine's dlls/mscoree/tests/[..]
-382563  MIPS MSA ASE support
-382998  xml-socket doesn't work
-383275  massif: m_xarray.c:162 (ensureSpaceXA): Assertion '!xa->arr' failed
-383723  Fix missing kevent_qos syscall (macOS 10.11)
-        == 385604  illegal hardware instruction (OpenCV cv::namedWindow)
-384096  Mention AddrCheck at Memcheck's command line option [..]
-384230  vex x86->IR: 0x67 0xE8 0xAB 0x68
-        == 384156  vex x86->IR: 0x67 0xE8 0x6B 0x6A
-        == 386115  vex x86->IR: 0x67 0xE8 0xD3 0x8B any program
-        == 388407  vex x86->IR: 0x67 0xE8 0xAB 0x29
-        == 394903  vex x86->IR: 0x67 0xE8 0x1B 0xDA
-384337  performance improvements to VEX register allocator v2 and v3
-384526  reduce number of spill insns generated by VEX register allocator v3
-384584  Callee saved regs listed first for AMD64, X86, and PPC architectures
-384631  Sanitise client args as printed with -v
-384633  Add a simple progress-reporting facility
-384987  VEX regalloc: allocate caller-save registers for short lived vregs
-385055  PPC VEX temporary storage exhausted
-385182  PPC64 is missing support for the DSCR
-385183  PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp
-385207  PPC64, generate_store_FPRF() generates too many Iops
-385208  PPC64, xxperm instruction exhausts temporary memory
-385210  PPC64, vpermr instruction could exhaust temporary memory
-385279  unhandled syscall: mach:43 (mach_generate_activity_id)
-        == 395136  valgrind: m_syswrap/syswrap-main.c:438 (Bool eq_Syscall[..]
-        == 387045  Valgrind crashing on High Sierra when testing any newly [..]
-385334  PPC64, fix vpermr, xxperm, xxpermr mask value.
-385408  s390x: z13 vector "support" instructions not implemented
-385409  s390x: z13 vector integer instructions not implemented
-385410  s390x: z13 vector string instructions not implemented
-385412  s390x: new non-vector z13 instructions not implemented
-385868  glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning.
-385912  none/tests/rlimit_nofile fails on newer glibc/kernel.
-385939  Optionally exit on the first error
-386318  valgrind.org/info/tools.html is missing SGCheck
-386425  running valgrind + wine on armv7l gives illegal opcode
-386397  PPC64, valgrind truncates powerpc timebase to 32-bits.
-387410  MIPSr6 support
-387664  Memcheck: make expensive-definedness-checks be the default
-387712  s390x cgijnl reports Conditional jump depends on uninitialised value
-387766  asm shifts cause false positive "Conditional jump or move depends
-        on uninitialised value"
-387773  .gnu_debugaltlink paths resolve relative to .debug file, not symlink
-388174  valgrind with Wine quits with "Assertion 'cfsi_fits' failed"
-388786  Support bpf syscall in amd64 Linux
-388862  Add replacements for wmemchr and wcsnlen on Linux
-389065  valgrind meets gcc flag -Wlogical-op
-389373  exp-sgcheck the 'impossible' happened as Ist_LoadG is not instrumented
-390471  suppression by specification of source-file line number
-390723  make xtree dump files world wide readable, similar to log files
-391164  constraint bug in tests/ppc64/test_isa_2_07_part1.c for mtfprwa
-391861  Massif Assertion 'n_ips >= 1 && n_ips <= VG_(clo_backtrace_size)'
-392118  unhandled amd64-linux syscall: 332 (statx)
-392449  callgrind not clearing the number of calls properly
-393017  Add missing support for xsmaxcdp instruction, bug fixes for xsmincdp,
-        lxssp, stxssp and stxvl instructions.
-393023  callgrind_control risks using the wrong vgdb
-393062  build-id ELF phdrs read causes "debuginfo reader: ensure_valid failed"
-393099  posix_memalign() invalid write if alignment == 0
-393146  failing assert "is_DebugInfo_active(di)"
-395709  PPC64 is missing support for the xvnegsp instruction
-395682  Accept read-only PT_LOAD segments and .rodata by ld -z separate-code
-        == 384727
-396475  valgrind OS-X build: config.h not found (out-of-tree macOS builds)
-395991  arm-linux: wine's unit tests enter a signal delivery loop [..]
-396839  s390x: Trap instructions not implemented
-396887  arch_prctl should return EINVAL on unknown option
-        == 397286 crash before launching binary (Unsupported arch_prctl option)
-        == 397393 valgrind: the 'impossible' happened: (Archlinux)
-        == 397521 valgrind: the 'impossible' happened: Unsupported [..]
-396906  compile tests failure on mips32-linux: broken inline asm in tests on
-        mips32-linux
-397012  glibc ld.so uses arch_prctl on i386
-397089  amd64: Incorrect decoding of three-register vmovss/vmovsd opcode 11h
-397354  utimensat should ignore timespec tv_sec if tv_nsec is UTIME_NOW/OMIT
-397424  glibc 2.27 and gdb_server tests
-398028  Assertion `cfsi_fits` failing in simple C program
-398066  s390x: cgijl dep1, 0 reports false unitialised values warning
-
-n-i-bz  Fix missing workq_ops operations (macOS)
-n-i-bz  fix bug in strspn replacement
-n-i-bz  Add support for the Linux BLKFLSBUF ioctl
-n-i-bz  Add support for the Linux BLKREPORTZONE and BLKRESETZONE ioctls
-n-i-bz  Fix possible stack trashing by semctl syscall wrapping
-n-i-bz  Add support for the Linux membarrier() system call
-n-i-bz  x86 front end: recognise and handle UD2 correctly
-n-i-bz  Signal delivery for x86-linux: ensure that the stack pointer is
-        correctly aligned before entering the handler.
-
-(3.14.0.RC1: 30 September 2018, git c2aeea2d28acb0639bcc8cc1e4ab115067db1eae)
-(3.14.0.RC2: 3 October 2018, git 3e214c4858a6fdd5697e767543a0c19e30505582)
-(3.14.0:     9 October 2018, git 353a3587bb0e2757411f9138f5e936728ed6cc4f)
-
-
-
-Release 3.13.0 (15 June 2017)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.13.0 is a feature release with many improvements and the usual collection of
-bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
-X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.
-
-* ==================== CORE CHANGES ===================
-
-* The translation cache size has been increased to keep up with the demands of
-  large applications.  The maximum number of sectors has increased from 24 to
-  48.  The default number of sectors has increased from 16 to 32 on all
-  targets except Android, where the increase is from 6 to 12.
-
-* The amount of memory that Valgrind can use has been increased from 64GB to
-  128GB.  In particular this means your application can allocate up to about
-  60GB when running on Memcheck.
-
-* Valgrind's default load address has been changed from 0x3800'0000 to
-  0x5800'0000, so as to make it possible to load larger executables.  This
-  should make it possible to load executables of size at least 1200MB.
-
-* A massive spaceleak caused by reading compressed debuginfo files has been
-  fixed.  Valgrind should now be entirely usable with gcc-7.0 "-gz" created
-  debuginfo.
-
-* The C++ demangler has been updated.
-
-* Support for demangling Rust symbols has been added.
-
-* A new representation of stack traces, the "XTree", has been added.  An XTree
-  is a tree of stacktraces with data associated with the stacktraces.  This is
-  used by various tools (Memcheck, Helgrind, Massif) to report on the heap
-  consumption of your program.  Reporting is controlled by the new options
-  --xtree-memory=none|allocs|full and --xtree-memory-file=<file>.
-
-  A report can also be produced on demand using the gdbserver monitor command
-  'xtmemory [<filename>]>'.  The XTree can be output in 2 formats: 'callgrind
-  format' and 'massif format. The existing visualisers for these formats (e.g.
-  callgrind_annotate, KCachegrind, ms_print) can be used to visualise and
-  analyse these reports.
-
-  Memcheck can also produce XTree leak reports using the Callgrind file
-  format.  For more details, see the user manual.
-
-* ================== PLATFORM CHANGES =================
-
-* ppc64: support for ISA 3.0B and various fixes for existing 3.0 support
-
-* amd64: fixes for JIT failure problems on long AVX2 code blocks
-
-* amd64 and x86: support for CET prefixes has been added
-
-* arm32: a few missing ARMv8 instructions have been implemented
-
-* arm64, mips64, mips32: an alternative implementation of Load-Linked and
-  Store-Conditional instructions has been added.  This is to deal with
-  processor implementations that implement the LL/SC specifications strictly
-  and as a result cause Valgrind to hang in certain situations.  The
-  alternative implementation is automatically enabled at startup, as required.
-  You can use the option --sim-hints=fallback-llsc to force-enable it if you
-  want.
-
-* Support for OSX 10.12 has been improved.
-
-* On Linux, clone handling has been improved to honour CLONE_VFORK that
-  involves a child stack.  Note however that CLONE_VFORK | CLONE_VM is handled
-  like CLONE_VFORK (by removing CLONE_VM), so applications that depend on
-  CLONE_VM exact semantics will (still) not work.
-
-* The TileGX/Linux port has been removed because it appears to be both unused
-  and unsupported.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
-  - Memcheck should give fewer false positives when running optimised
-    Clang/LLVM generated code.
-
-  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
-  - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file>
-    to produce the end of execution leak report in a xtree callgrind format
-    file.
-
-  - New option 'xtleak' in the memcheck leak_check monitor command, to produce
-    the leak report in an xtree file.
-
-* Massif:
-
-  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
-  - For some workloads (typically, for big applications), Massif memory
-    consumption and CPU consumption has decreased significantly.
-
-* Helgrind:
-
-  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
-  - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful
-    for Ada gnat compiled applications.
-
-* ==================== OTHER CHANGES ====================
-
-* For Valgrind developers: in an outer/inner setup, the outer Valgrind will
-  append the inner guest stacktrace to the inner host stacktrace.  This helps
-  to investigate the errors reported by the outer, when they are caused by the
-  inner guest program (such as an inner regtest).  See README_DEVELOPERS for
-  more info.
-
-* To allow fast detection of callgrind files by desktop environments and file
-  managers, the format was extended to have an optional first line that
-  uniquely identifies the format ("# callgrind format").  Callgrind creates
-  this line now, as does the new xtree functionality.
-
-* File name template arguments (such as --log-file, --xtree-memory-file, ...)
-  have a new %n format letter that is replaced by a sequence number.
-
-* "--version -v" now shows the SVN revision numbers from which Valgrind was
-  built.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-162848  --log-file output isn't split when a program forks
-340777  Illegal instruction on mips (ar71xx)
-341481  MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms
-342040  Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones
-        to a different stack.
-344139  x86 stack-seg overrides, needed by the Wine people
-344524  store conditional of guest applications always fail - observed on
-        Octeon3(MIPS)
-348616  Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT)
-352395  Please provide SVN revision info in --version -v
-352767  Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP)
-356374  Assertion 'DRD_(g_threadinfo)[tid].pt_threadid !=
-        INVALID_POSIX_THREADID' failed
-358213  helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread
-        barrier implementation
-358697  valgrind.h: Some code remains even when defining NVALGRIND
-359202  Add musl libc configure/compile
-360415  amd64 instructions ADCX and ADOX are not implemented in VEX
-        == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10)
-360429  unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1)
-362223  assertion failed when .valgrindrc is a directory instead of a file
-367543  bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
-367942  Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
-368507  can't malloc chunks larger than about 34GB
-368529  Android arm target link error, missing atexit and pthread_atfork
-368863  WARNING: unhandled arm64-linux syscall: 100 (get_robust_list)
-368865  WARNING: unhandled arm64-linux syscall: 272 (kcmp)
-368868  disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
-368917  WARNING: unhandled arm64-linux syscall: 218 (request_key)
-368918  WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval)
-368922  WARNING: unhandled arm64-linux syscall: 161 (sethostname)
-368924  WARNING: unhandled arm64-linux syscall: 84 (sync_file_range)
-368925  WARNING: unhandled arm64-linux syscall: 130 (tkill)
-368926  WARNING: unhandled arm64-linux syscall: 97 (unshare)
-369459  valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
-370028  Reduce the number of compiler warnings on MIPS platforms
-370635  arm64 missing syscall getcpu
-371225  Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
-371227  Clean AArch64 syscall table
-371412  Rename wrap_sys_shmat to sys_shmat like other wrappers
-371471  Valgrind complains about non legit memory leaks on placement new (C++)
-371491  handleAddrOverrides() is [incorrect] when ASO prefix is used
-371503  disInstr(arm64): unhandled instruction 0xF89F0000
-371869  support '%' in symbol Z-encoding
-371916  execution tree xtree concept
-372120  c++ demangler demangles symbols which are not c++
-372185  Support of valgrind on ARMv8 with 32 bit executable
-372188  vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10)
-372195  Power PC, xxsel instruction is not always recognized.
-372504  Hanging on exit_group
-372600  process loops forever when fatal signals are arriving quickly
-372794  LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed
-373046  Stacks registered by core are never deregistered
-373069  memcheck/tests/leak_cpp_interior fails with GCC 5.1+
-373086  Implement additional Xen hypercalls
-373192  Calling posix_spawn in glibc 2.24 completely broken
-373488  Support for fanotify API on ARM64 architecture
-       == 368864  WARNING: unhandled arm64-linux syscall: 262 (fanotify_init)
-373555  Rename BBPTR to GSPTR as it denotes guest state pointer only
-373938  const IRExpr arguments for matchIRExpr()
-374719  some spelling fixes
-374963  increase valgrind's load address to prevent mmap failure
-375514  valgrind_get_tls_addr() does not work in case of static TLS
-375772  +1 error in get_elf_symbol_info() when computing value of 'hi' address
-        for ML_(find_rx_mapping)()
-375806  Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24
-375839  Temporary storage exhausted, with long sequence of vfmadd231ps insns
-        == 377159  "vex: the `impossible' happened" still present
-        == 375150  Assertion 'tres.status == VexTransOK' failed
-        == 378068  valgrind crashes on AVX2 function in FFmpeg
-376142  Segfaults on MIPS Cavium Octeon boards
-376279  disInstr(arm64): unhandled instruction 0xD50320FF
-376455  Solaris: unhandled syscall lgrpsys(180)
-376518  Solaris: unhandled fast trap getlgrp(6)
-376611  ppc64 and arm64 don't know about prlimit64 syscall
-376729  PPC64, remove R2 from the clobber list
-        == 371668
-376956  syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
-        to be wrongly marked as addressable
-377066  Some Valgrind unit tests fail to compile on Ubuntu 16.10 with
-        PIE enabled by default
-377376  memcheck/tests/linux/getregset fails with glibc2.24
-377427  PPC64, lxv instruction failing on odd destination register 
-377478  PPC64: ISA 3.0 setup fixes
-377698  Missing memory check for futex() uaddr arg for FUTEX_WAKE
-        and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET,
-        and 2 args for FUTEX_TRYLOCK_PI
-377717  Fix massive space leak when reading compressed debuginfo sections
-377891  Update Xen 4.6 domctl wrappers
-377930  fcntl syscall wrapper is missing flock structure check
-378524  libvexmultiarch_test regression on s390x and ppc64
-378535  Valgrind reports INTERNAL ERROR in execve syscall wrapper
-378673  Update libiberty demangler
-378931  Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support
-379039  syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes
-379094  Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper
-379371  UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603]
-        (task_register_dyld_image_infos)
-379372  UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603]
-        (task_register_dyld_shared_cache_image_info)
-379390  unhandled syscall: mach:70 (host_create_mach_voucher_trap)
-379473  MIPS: add support for rdhwr cycle counter register
-379504  remove TileGX/Linux port
-379525  Support more x86 nop opcodes
-379838  disAMode(x86): not an addr!
-379703  PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions
-379890  arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4)
-379895  clock_gettime does not execute POST syscall wrapper
-379925  PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly
-379966  WARNING: unhandled amd64-linux syscall: 313 (finit_module)
-380200  xtree generated callgrind files refer to files without directory name
-380202  Assertion failure for cache line size (cls == 64) on aarch64.
-380397  s390x: __GI_strcspn() replacement needed
-n-i-bz  Fix pub_tool_basics.h build issue with g++ 4.4.7.
-
-(3.13.0.RC1:  2 June 2017, vex r3386, valgrind r16434)
-(3.13.0.RC2:  9 June 2017, vex r3389, valgrind r16443)
-(3.13.0:     14 June 2017, vex r3396, valgrind r16446)
-
-
-
-Release 3.12.0 (20 October 2016)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.12.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
-ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
-MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
-MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
-10.10 and AMD64/MacOSX 10.10.  There is also preliminary support for
-X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
-
-* ================== PLATFORM CHANGES =================
-
-* POWER: Support for ISA 3.0 has been added
-
-* mips: support for O32 FPXX ABI has been added.
-* mips: improved recognition of different processors
-* mips: determination of page size now done at run time
-
-* amd64: Partial support for AMD FMA4 instructions.
-
-* arm, arm64: Support for v8 crypto and CRC instructions.
-
-* Improvements and robustification of the Solaris port.
-
-* Preliminary support for MacOS 10.12 (Sierra) has been added.
-
-Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
-would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
-where possible.  Valgrind's support for 32-bit x86 has stagnated in
-recent years and has fallen far behind that for 64-bit x86
-instructions.  By contrast 64-bit x86 is well supported, up to and
-including AVX2.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
-  - Added meta mempool support for describing a custom allocator which:
-     - Auto-frees all chunks assuming that destroying a pool destroys all
-       objects in the pool
-     - Uses itself to allocate other memory blocks
-
-  - New flag --ignore-range-below-sp to ignore memory accesses below
-    the stack pointer, if you really have to.  The related flag
-    --workaround-gcc296-bugs=yes is now deprecated.  Use
-    --ignore-range-below-sp=1024-1 as a replacement.
-
-* DRD:
-
-  - Improved thread startup time significantly on non-Linux platforms.
-
-* DHAT
-
-  - Added collection of the metric "tot-blocks-allocd"
-
-* ==================== OTHER CHANGES ====================
-
-* Replacement/wrapping of malloc/new related functions is now done not just
-  for system libraries by default, but for any globally defined malloc/new
-  related function (both in shared libraries and statically linked alternative
-  malloc implementations).  The dynamic (runtime) linker is excluded, though.
-  To only intercept malloc/new related functions in
-  system libraries use --soname-synonyms=somalloc=nouserintercepts (where
-  "nouserintercepts" can be any non-existing library name).
-  This new functionality is not implemented for MacOS X.
-
-* The maximum number of callers in a suppression entry is now equal to
-  the maximum size for --num-callers (500).
-  Note that --gen-suppressions=yes|all similarly generates suppressions
-  containing up to --num-callers frames.
-
-* New and modified GDB server monitor features:
-
-  - Valgrind's gdbserver now accepts the command 'catch syscall'.
-    Note that you must have GDB >= 7.11 to use 'catch syscall' with
-    gdbserver.
-
-* New option --run-cxx-freeres=<yes|no> can be used to change whether
-  __gnu_cxx::__freeres() cleanup function is called or not. Default is
-  'yes'.
-
-* Valgrind is able to read compressed debuginfo sections in two formats:
-  - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib)
-  - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu)
-
-* Modest JIT-cost improvements: the cost of instrumenting code blocks
-  for the most common use case (x86_64-linux, Memcheck) has been
-  reduced by 10%-15%.
-
-* Improved performance for programs that do a lot of discarding of
-  instruction address ranges of 8KB or less.
-
-* The C++ symbol demangler has been updated.
-
-* More robustness against invalid syscall parameters on Linux.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-191069  Exiting due to signal not reported in XML output
-199468  Suppressions: stack size limited to 25
-        while --num-callers allows more frames
-212352  vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
-278744  cvtps2pd with redundant RexW
-303877  valgrind doesn't support compressed debuginfo sections.
-345307  Warning about "still reachable" memory when using libstdc++ from gcc 5
-348345  Assertion fails for negative lineno
-348924  MIPS: Load doubles through memory so the code compiles with the FPXX ABI
-351282  V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
-351692  Dumps created by valgrind are not readable by gdb (mips32 specific)
-351804  Crash on generating suppressions for "printf" call on OS X 10.10
-352197  mips: mmap2() not wrapped correctly for page size > 4096
-353083  arm64 doesn't implement various xattr system calls
-353084  arm64 doesn't support sigpending system call
-353137  www: update info for Supported Platforms
-353138  www: update "The Valgrind Developers" page
-353370  don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
-        == 365325
-        == 357873
-353384  amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62)
-353398  WARNING: unhandled amd64-solaris syscall: 207
-353660  XML in auxwhat tag not escaping reserved symbols properly
-353680  s390x: Crash with certain glibc versions due to non-implemented TBEGIN
-353727  amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72)
-353802  ELF debug info reader confused with multiple .rodata sections
-353891  Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
-353917  unhandled amd64-solaris syscall fchdir(120)
-353920  unhandled amd64-solaris syscall: 170
-354274  arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
-354392  unhandled amd64-solaris syscall: 171
-354797  Vbit test does not include Iops for Power 8 instruction support
-354883  tst->os_state.pthread - magic_delta assertion failure on OSX 10.11
-        == 361351
-        == 362920
-        == 366222
-354933  Fix documentation of --kernel-variant=android-no-hw-tls option
-355188  valgrind should intercept all malloc related global functions
-355454  do not intercept malloc related symbols from the runtime linker
-355455  stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained
-356044  Dwarf line info reader misinterprets is_stmt register
-356112  mips: replace addi with addiu
-356393  valgrind (vex) crashes because isZeroU happened
-        == 363497
-        == 364497
-356676  arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min)
-356678  arm64-linux: unhandled syscall 232 (mincore)
-356817  valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
-356823  Unsupported ARM instruction: stlex
-357059  x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
-357338  Unhandled instruction for SHA instructions libcrypto Boring SSL
-357673  crash if I try to run valgrind with a binary link with libcurl
-357833  Setting RLIMIT_DATA to zero breaks with linux 4.5+
-357871  pthread_spin_destroy not properly wrapped
-357887  Calls to VG_(fclose) do not close the file descriptor
-357932  amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
-358030  support direct socket calls on x86 32bit (new in linux 4.3)
-358478  drd/tests/std_thread.cpp doesn't build with GCC6
-359133  Assertion 'eltSzB <= ddpa->poolSzB' failed
-359181  Buffer Overflow during Demangling
-359201  futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET
-359289  s390x: popcnt (B9E1) not implemented
-359472  The Power PC vsubuqm instruction doesn't always give the correct result
-359503  Add missing syscalls for aarch64 (arm64)
-359645  "You need libc6-dbg" help message could be more helpful
-359703  s390: wire up separate socketcalls system calls
-359724  getsockname might crash - deref_UInt should call safe_to_deref
-359733  amd64 implement ld.so strchr/index override like x86
-359767  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
-359829  Power PC test suite none/tests/ppc64/test_isa_2_07.c uses
-        uninitialized data
-359838  arm64: Unhandled instruction 0xD5033F5F (clrex)
-359871  Incorrect mask handling in ppoll
-359952  Unrecognised PCMPESTRM variants (0x70, 0x19)
-360008  Contents of Power vr registers contents is not printed correctly when
-        the --vgdb-shadow-registers=yes option is used
-360035  POWER PC instruction bcdadd and bcdsubtract generate result with
-        non-zero shadow bits
-360378  arm64: Unhandled instruction 0x5E280844 (sha1h  s4, s2)
-360425  arm64 unsupported instruction ldpsw
-        == 364435
-360519  none/tests/arm64/memory.vgtest might fail with newer gcc
-360571  Error about the Android Runtime reading below the stack pointer on ARM
-360574  Wrong parameter type for an ashmem ioctl() call on Android and ARM64
-360749  kludge for multiple .rodata sections on Solaris no longer needed
-360752  raise the number of reserved fds in m_main.c from 10 to 12
-361207  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
-361226  s390x: risbgn (EC59) not implemented
-361253  [s390x] ex_clone.c:42: undefined reference to `pthread_create'
-361354  ppc64[le]: wire up separate socketcalls system calls
-361615  Inconsistent termination for multithreaded process terminated by signal
-361926  Unhandled Solaris syscall: sysfs(84)
-362009  V dumps core on unimplemented functionality before threads are created
-362329  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
-362894  missing (broken) support for wbit field on mtfsfi instruction (ppc64)
-362935  [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
-362953  Request for an update to the Valgrind Developers page
-363680  add renameat2() support
-363705  arm64 missing syscall name_to_handle_at and open_by_handle_at
-363714  ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
-363858  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
-364058  clarify in manual limitations of array overruns detections
-364413  pselect sycallwrapper mishandles NULL sigmask
-364728  Power PC, missing support for several HW registers in
-        get_otrack_shadow_offset_wrk()
-364948  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5
-365273  Invalid write to stack location reported after signal handler runs
-365912  ppc64BE segfault during jm-insns test (RELRO)
-366079  FPXX Support for MIPS32 Valgrind
-366138  Fix configure errors out when using Xcode 8 (clang 8.0.0)
-366344  Multiple unhandled instruction for Aarch64
-        (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060)
-367995  Integration of memcheck with custom memory allocator
-368120  x86_linux asm _start functions do not keep 16-byte aligned stack pointer
-368412  False positive result for altivec capability check
-368416  Add tc06_two_races_xml.exp output for ppc64
-368419  Perf Events ioctls not implemented
-368461  mmapunmap test fails on ppc64
-368823  run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
-369000  AMD64 fma4 instructions unsupported.
-369169  ppc64 fails jm_int_isa_2_07 test
-369175  jm_vec_isa_2_07 test crashes on ppc64
-369209  valgrind loops and eats up all memory if cwd doesn't exist.
-369356  pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr
-369359  msghdr_foreachfield can crash when handling bad iovec
-369360  Bad sigprocmask old or new sets can crash valgrind
-369361  vmsplice syscall wrapper crashes on bad iovec
-369362  Bad sigaction arguments crash valgrind
-369383  x86 sys_modify_ldt wrapper crashes on bad ptr
-369402  Bad set/get_thread_area pointer crashes valgrind
-369441  bad lvec argument crashes process_vm_readv/writev syscall wrappers
-369446  valgrind crashes on unknown fcntl command
-369439  S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER 
-369468  Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
-370265  ISA 3.0 HW cap stuff needs updating
-371128  BCD add and subtract instructions on Power BE in 32-bit mode do not work
-372195  Power PC, xxsel instruction is not always recognized
-
-n-i-bz  Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
-n-i-bz  massif --pages-as-heap=yes does not report peak caused by mmap+munmap
-n-i-bz  false positive leaks due to aspacemgr merging heap & non heap segments
-n-i-bz  Fix ppoll_alarm exclusion on OS X
-n-i-bz  Document brk segment limitation, reference manual in limit reached msg.
-n-i-bz  Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
-n-i-bz  Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
-n-i-bz  amd64: memcheck false positive with shr %edx
-n-i-bz  arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
-n-i-bz  ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
-n-i-bz  arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
-n-i-bz  DHAT: added collection of the metric "tot-blocks-allocd" 
-
-(3.12.0.RC1:  20 October 2016, vex r3282, valgrind r16094)
-(3.12.0.RC2:  20 October 2016, vex r3282, valgrind r16096)
-(3.12.0:      21 October 2016, vex r3282, valgrind r16098)
-
-
-
-Release 3.11.0 (22 September 2015)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.11.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
-ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
-MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
-MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
-10.10 and AMD64/MacOSX 10.10.  There is also preliminary support for
-X86/MacOSX 10.11, AMD64/MacOSX 10.11 and TILEGX/Linux.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for Solaris/x86 and Solaris/amd64 has been added.
-
-* Preliminary support for Mac OS X 10.11 (El Capitan) has been added.
-
-* Preliminary support for the Tilera TileGX architecture has been added.
-
-* s390x: It is now required for the host to have the "long displacement"
-  facility.  The oldest supported machine model is z990.
-
-* x86: on an SSE2 only host, Valgrind in 32 bit mode now claims to be a
-  Pentium 4.  3.10.1 wrongly claimed to be a Core 2, which is SSSE3.
-
-* The JIT's register allocator is significantly faster, making the JIT
-  as a whole somewhat faster, so JIT-intensive activities, for example
-  program startup, are modestly faster, around 5%.
-
-* There have been changes to the default settings of several command
-  line flags, as detailed below.
-
-* Intel AVX2 support is more complete (64 bit targets only).  On AVX2
-  capable hosts, the simulated CPUID will now indicate AVX2 support.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
-  - The default value for --leak-check-heuristics has been changed from
-    "none" to "all". This helps to reduce the number of possibly
-    lost blocks, in particular for C++ applications.
-
-  - The default value for --keep-stacktraces has been changed from
-    "malloc-then-free" to "malloc-and-free".  This has a small cost in
-    memory (one word per malloc-ed block) but allows Memcheck to show the
-    3 stacktraces of a dangling reference: where the block was allocated,
-    where it was freed, and where it is acccessed after being freed.
-
-  - The default value for --partial-loads-ok has been changed from "no" to 
-    "yes", so as to avoid false positive errors resulting from some kinds
-    of vectorised loops.
-
-  - A new monitor command 'xb <addr> <len>' shows the validity bits of
-    <len> bytes at <addr>.  The monitor command 'xb' is easier to use
-    than get_vbits when you need to associate byte data value with
-    their corresponding validity bits.
-
-  - The 'block_list' monitor command has been enhanced:
-      o it can print a range of loss records
-      o it now accepts an optional argument 'limited <max_blocks>'
-        to control the number of blocks printed.
-      o if a block has been found using a heuristic, then
-        'block_list' now shows the heuristic after the block size.
-      o the loss records/blocks to print can be limited to the blocks
-        found via specified heuristics.
-
-  - The C helper functions used to instrument loads on
-    x86-{linux,solaris} and arm-linux (both 32-bit only) have been
-    replaced by handwritten assembly sequences.  This gives speedups
-    in the region of 0% to 7% for those targets only.
-
-  - A new command line option, --expensive-definedness-checks=yes|no,
-    has been added.  This is useful for avoiding occasional invalid
-    uninitialised-value errors in optimised code.  Watch out for
-    runtime degradation, as this can be up to 25%.  As always, though,
-    the slowdown is highly application specific.  The default setting
-    is "no".
-
-* Massif:
-
-  - A new monitor command 'all_snapshots <filename>' dumps all
-    snapshots taken so far.
-
-* Helgrind:
-
-  - Significant memory reduction and moderate speedups for
-    --history-level=full for applications accessing a lot of memory
-    with many different stacktraces.
-
-  - The default value for --conflict-cache-size=N has been doubled to
-    2000000.  Users that were not using the default value should
-    preferably also double the value they give.
-
-    The default was changed due to the changes in the "full history"
-    implementation.  Doubling the value gives on average a slightly more
-    complete history and uses similar memory (or significantly less memory
-    in the worst case) than the previous implementation.
-    
-  - The Helgrind monitor command 'info locks' now accepts an optional
-    argument 'lock_addr', which shows information about the lock at the
-    given address only.
-
-  - When using --history-level=full, the new Helgrind monitor command
-    'accesshistory <addr> [<len>]' will show the recorded accesses for
-    <len> (or 1) bytes at <addr>.
-
-* ==================== OTHER CHANGES ====================
-
-* The default value for the --smc-check option has been changed from
-  "stack" to "all-non-file" on targets that provide automatic D-I
-  cache coherence (x86, amd64 and s390x).  The result is to provide,
-  by default, transparent support for JIT generated and self-modifying
-  code on all targets.
-
-* Mac OS X only: the default value for the --dsymutil option has been
-  changed from "no" to "yes", since any serious usage on Mac OS X
-  always required it to be "yes".
-
-* The command line options --db-attach and --db-command have been removed.
-  They were deprecated in 3.10.0.
-
-* When a process dies due to a signal, Valgrind now shows the signal
-  and the stacktrace at default verbosity (i.e. verbosity 1).
-
-* The address description logic used by Memcheck and Helgrind now
-  describes addresses in anonymous segments, file mmap-ed segments,
-  shared memory segments and the brk data segment.
-
-* The new option --error-markers=<begin>,<end> can be used to mark the
-  begin/end of errors in textual output mode, to facilitate
-  searching/extracting errors in output files that mix valgrind errors
-  with program output.
-
-* The new option --max-threads=<number> can be used to change the number
-  of threads valgrind can handle.  The default is 500 threads which
-  should be more than enough for most applications.
-
-* The new option --valgrind-stacksize=<number> can be used to change the
-  size of the private thread stacks used by Valgrind.  This is useful
-  for reducing memory use or increasing the stack size if Valgrind
-  segfaults due to stack overflow.
-
-* The new option --avg-transtab-entry-size=<number> can be used to specify
-  the expected instrumented block size, either to reduce memory use or
-  to avoid excessive retranslation.
-
-* Valgrind can be built with Intel's ICC compiler, version 14.0 or later.
-
-* New and modified GDB server monitor features:
-
-  - When a signal is reported in GDB, you can now use the GDB convenience
-    variable $_siginfo to examine detailed signal information.
-  - Valgrind's gdbserver now allows the user to change the signal
-    to deliver to the process.  So, use 'signal SIGNAL' to continue execution
-    with SIGNAL instead of the signal reported to GDB. Use 'signal 0' to
-    continue without passing the signal to the process.
-
-  - With GDB >= 7.10, the command 'target remote'
-    will automatically load the executable file of the process running
-    under Valgrind. This means you do not need to specify the executable
-    file yourself, GDB will discover it itself.  See GDB documentation about
-    'qXfer:exec-file:read' packet for more info.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-116002  VG_(printf): Problems with justification of strings and integers
-155125  avoid cutting away file:lineno after long function name
-197259  Unsupported arch_prtctl PR_SET_GS option
-201152  ppc64: Assertion in ppc32g_dirtyhelper_MFSPR_268_269
-201216  Fix Valgrind does not support pthread_sigmask() on OS X
-201435  Fix Darwin: -v does not show kernel version
-208217  "Warning: noted but unhandled ioctl 0x2000747b" on Mac OS X
-211256  Fixed an outdated comment regarding the default platform.
-211529  Incomplete call stacks for code compiled by newer versions of MSVC
-211926  Avoid compilation warnings in valgrind.h with -pedantic
-212291  Fix unhandled syscall: unix:132 (mkfifo) on OS X
-        == 263119
-226609  Crediting upstream authors in man page
-231257  Valgrind omits path when executing script from shebang line
-254164  OS X task_info: UNKNOWN task message [id 3405, to mach_task_self() [..]
-294065  Improve the pdb file reader by avoiding hardwired absolute pathnames
-269360  s390x: Fix addressing mode selection for compare-and-swap
-302630  Memcheck: Assertion failed: 'sizeof(UWord) == sizeof(UInt)'
-        == 326797
-312989  ioctl handling needs to do POST handling on generic ioctls and [..]
-319274  Fix unhandled syscall: unix:410 (sigsuspend_nocancel) on OS X
-324181  mmap does not handle MAP_32BIT (handle it now, rather than fail it)
-327745  Fix valgrind 3.9.0 build fails on Mac OS X 10.6.8
-330147  libmpiwrap PMPI_Get_count returns undefined value
-333051  mmap of huge pages fails due to incorrect alignment
-        == 339163
-334802  valgrind does not always explain why a given option is bad
-335618  mov.w rN, pc/sp (ARM32)
-335785  amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
-        == 307399
-        == 343175
-        == 342740
-        == 346912
-335907  segfault when running wine's ddrawex/tests/surface.c under valgrind
-338602  AVX2 bit in CPUID missing
-338606  Strange message for scripts with invalid interpreter
-338731  ppc: Fix testuite build for toolchains not supporting -maltivec
-338995  shmat with hugepages (SHM_HUGETLB) fails with EINVAL
-339045  Getting valgrind to compile and run on OS X Yosemite (10.10)
-        == 340252
-339156  gdbsrv not called for fatal signal
-339215  Valgrind 3.10.0 contain 2013 in copyrights notice
-339288  support Cavium Octeon MIPS specific BBIT*32 instructions
-339636  Use fxsave64 and fxrstor64 mnemonics instead of old-school rex64 prefix
-339442  Fix testsuite build failure on OS X 10.9
-339542  Enable compilation with Intel's ICC compiler
-339563  The DVB demux DMX_STOP ioctl doesn't have a wrapper
-339688  Mac-specific ASM does not support .version directive (cpuid,
-        tronical and pushfpopf tests)
-339745  Valgrind crash when check Marmalade app (partial fix)
-339755  Fix known deliberate memory leak in setenv() on Mac OS X 10.9
-339778  Linux/TileGx platform support for Valgrind
-339780  Fix known uninitialised read in pthread_rwlock_init() on Mac OS X 10.9 
-339789  Fix none/tests/execve test on Mac OS X 10.9
-339808  Fix none/tests/rlimit64_nofile test on Mac OS X 10.9
-339820  vex amd64->IR: 0x66 0xF 0x3A 0x63 0xA 0x42 0x74 0x9 (pcmpistri $0x42)
-340115  Fix none/tests/cmdline[1|2] tests on systems which define TMPDIR
-340392  Allow user to select more accurate definedness checking in memcheck
-        to avoid invalid complaints on optimised code
-340430  Fix some grammatical weirdness in the manual.
-341238  Recognize GCC5/DWARFv5 DW_LANG constants (Go, C11, C++11, C++14)
-341419  Signal handler ucontext_t not filled out correctly on OS X
-341539  VG_(describe_addr) should not describe address as belonging to client
-        segment if it is past the heap end
-341613  Enable building of manythreads and thread-exits tests on Mac OS X
-341615  Fix none/tests/darwin/access_extended test on Mac OS X
-341698  Valgrind's AESKEYGENASSIST gives wrong result in words 0 and 2 [..]
-341789  aarch64: shmat fails with valgrind on ARMv8
-341997  MIPS64: Cavium OCTEON insns - immediate operand handled incorrectly
-342008  valgrind.h needs type cast [..] for clang/llvm in 64-bit mode
-342038  Unhandled syscalls on aarch64 (mbind/get/set_mempolicy)
-342063  wrong format specifier for test mcblocklistsearch in gdbserver_tests
-342117  Hang when loading PDB file for MSVC compiled Firefox under Wine
-342221  socket connect false positive uninit memory for unknown af family
-342353  Allow dumping full massif output while valgrind is still running
-342571  Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
-        == 346476
-        == 348387
-        == 350593
-342603  Add I2C_SMBUS ioctl support
-342635  OS X 10.10 (Yosemite) - missing system calls and fcntl code
-342683  Mark memory past the initial brk limit as unaddressable
-342783  arm: unhandled instruction 0xEEFE1ACA = "vcvt.s32.f32 s3, s3, #12"
-342795  Internal glibc __GI_mempcpy call should be intercepted
-342841  s390x: Support instructions fiebr(a) and fidbr(a)
-343012  Unhandled syscall 319 (memfd_create)
-343069  Patch updating v4l2 API support
-343173  helgrind crash during stack unwind
-343219  fix GET_STARTREGS for arm
-343303  Fix known deliberate memory leak in setenv() on Mac OS X 10.10
-343306  OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
-343332  Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
-343335  unhandled instruction 0x1E638400 (fccmp) aarch64
-343523  OS X mach_ports_register: UNKNOWN task message [id 3403, to [..]
-343525  OS X host_get_special_port: UNKNOWN host message [id 412, to [..]
-343597  ppc64le: incorrect use of offseof macro
-343649  OS X host_create_mach_voucher: UNKNOWN host message [id 222, to [..]
-343663  OS X 10.10  Memchecj always reports a leak regardless of [..]
-343732  Unhandled syscall 144 (setgid) on aarch64
-343733  Unhandled syscall 187 (msgctl and related) on aarch64
-343802  s390x: False positive "conditional jump or move depends on [..]
-343902  --vgdb=yes doesn't break when --xml=yes is used
-343967  Don't warn about setuid/setgid/setcap executable for directories
-343978  Recognize DWARF5/GCC5 DW_LANG_Fortran 2003 and 2008 constants
-344007  accept4 syscall unhandled on arm64 (242) and ppc64 (344)
-344033  Helgrind on ARM32 loses track of mutex state in pthread_cond_wait
-344054  www - update info for Solaris/illumos
-344416  'make regtest' does not work cleanly on OS X
-344235  Remove duplicate include of pub_core_aspacemgr.h
-344279  syscall sendmmsg on arm64 (269) and ppc32/64 (349) unhandled
-344295  syscall recvmmsg on arm64 (243) and ppc32/64 (343) unhandled
-344307  2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40)
-344314  callgrind_annotate ... warnings about commands containing newlines
-344318  socketcall should wrap recvmmsg and sendmmsg
-344337  Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap)
-344416  Fix 'make regtest' does not work cleanly on OS X
-344499  Fix compilation for Linux kernel >= 4.0.0
-344512  OS X: unhandled syscall: unix:348 (__pthread_chdir), 
-        unix:349 (__pthread_fchdir)
-344559  Garbage collection of unused segment names in address space manager
-344560  Fix stack traces missing penultimate frame on OS X
-344621  Fix memcheck/tests/err_disable4 test on OS X
-344686  Fix suppression for pthread_rwlock_init on OS X 10.10
-344702  Fix missing libobjc suppressions on OS X 10.10
-        == 344543
-344936  Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
-344939  Fix memcheck/tests/xml1 on OS X 10.10
-345016  helgrind/tests/locked_vs_unlocked2 is failing sometimes
-345079  Fix build problems in VEX/useful/test_main.c
-345126  Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT
-345177  arm64: prfm (reg) not implemented
-345215  Performance improvements for the register allocator
-345248  add support for Solaris OS in valgrind
-345338  TIOCGSERIAL and TIOCSSERIAL ioctl support on Linux
-345394  Fix memcheck/tests/strchr on OS X
-345637  Fix memcheck/tests/sendmsg on OS X
-345695  Add POWERPC support for AT_DCACHESIZE and HWCAP2
-345824  Fix aspacem segment mismatch: seen with none/tests/bigcode
-345887  Fix an assertion in the address space manager
-345928  amd64: callstack only contains current function for small stacks
-345984  disInstr(arm): unhandled instruction: 0xEE193F1E
-345987  MIPS64: Implement cavium LHX instruction
-346031  MIPS: Implement support for the CvmCount register (rhwr %0, 31)
-346185  Fix typo saving altivec register v24
-346267  Compiler warnings for PPC64 code on call to LibVEX_GuestPPC64_get_XER()
-        and LibVEX_GuestPPC64_get_CR()
-346270  Regression tests none/tests/jm_vec/isa_2_07 and
-        none/tests/test_isa_2_07_part2 have failures on PPC64 little endian
-346307  fuse filesystem syscall deadlocks
-346324  PPC64 missing support for lbarx, lharx, stbcx and sthcx instructions
-346411  MIPS: SysRes::_valEx handling is incorrect
-346416  Add support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls
-346474  PPC64 Power 8, spr TEXASRU register not supported
-346487  Compiler generates "note" about a future ABI change for PPC64
-346562  MIPS64: lwl/lwr instructions are performing 64bit loads
-        and causing spurious "invalid read of size 8" warnings
-346801  Fix link error on OS X: _vgModuleLocal_sf_maybe_extend_stack
-347151  Fix suppression for pthread_rwlock_init on OS X 10.8
-347233  Fix memcheck/tests/strchr on OS X 10.10 (Haswell) 
-347322  Power PC regression test cleanup
-347379  valgrind --leak-check=full leak errors from system libs on OS X 10.8
-        == 217236
-347389  unhandled syscall: 373 (Linux ARM syncfs)
-347686  Patch set to cleanup PPC64 regtests
-347978  Remove bash dependencies where not needed
-347982  OS X: undefined symbols for architecture x86_64: "_global" [..]
-347988  Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
-        == 345929
-348102  Patch updating v4l2 API support
-348247  amd64 front end: jno jumps wrongly when overflow is not set
-348269  Improve mmap MAP_HUGETLB support.
-348334  (ppc) valgrind does not simulate dcbfl - then my program terminates
-348345  Assertion fails for negative lineno
-348377  Unsupported ARM instruction: yield
-348565  Fix detection of command line option availability for clang
-348574  vex amd64->IR pcmpistri SSE4.2 unsupported (pcmpistri $0x18)
-348728  Fix broken check for VIDIOC_G_ENC_INDEX
-348748  Fix redundant condition
-348890  Fix clang warning about unsupported --param inline-unit-growth=900
-348949  Bogus "ERROR: --ignore-ranges: suspiciously large range"
-349034  Add Lustre ioctls LL_IOC_GROUP_LOCK and LL_IOC_GROUP_UNLOCK
-349086  Fix UNKNOWN task message [id 3406, to mach_task_self(), [..]
-349087  Fix UNKNOWN task message [id 3410, to mach_task_self(), [..]
-349626  Implemented additional Xen hypercalls
-349769  Clang/osx: ld: warning: -read_only_relocs cannot be used with x86_64
-349790  Clean up of the hardware capability checking utilities.
-349828  memcpy intercepts memmove causing src/dst overlap error (ppc64 ld.so)
-349874  Fix typos in source code
-349879  memcheck: add handwritten assembly for helperc_LOADV*
-349941  di_notify_mmap might create wrong start/size DebugInfoMapping
-350062  vex x86->IR: 0x66 0xF 0x3A 0xB (ROUNDSD) on OS X
-350202  Add limited param to 'monitor block_list'
-350290  s390x: Support instructions fixbr(a)
-350359  memcheck/tests/x86/fxsave hangs indefinetely on OS X
-350809  Fix none/tests/async-sigs for Solaris
-350811  Remove reference to --db-attach which has been removed.
-350813  Memcheck/x86: enable handwritten assembly helpers for x86/Solaris too
-350854  hard-to-understand code in VG_(load_ELF)()
-351140  arm64 syscalls setuid (146) and setresgid (149) not implemented
-351386  Solaris: Cannot run ld.so.1 under Valgrind
-351474  Fix VG_(iseqsigset) as obvious
-351531  Typo in /include/vki/vki-xen-physdev.h header guard
-351756  Intercept platform_memchr$VARIANT$Haswell on OS X
-351858  ldsoexec support on Solaris
-351873  Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode
-352130  helgrind reports false races for printfs using mempcpy on FILE* state
-352284  s390: Conditional jump depends on uninitialised value(s) in vfprintf 
-352320  arm64 crash on none/tests/nestedfs
-352765  Vbit test fails on Power 6
-352768  The mbar instruction is missing from the Power PC support
-352769  Power PC program priority register (PPR) is not supported
-n-i-bz  Provide implementations of certain compiler builtins to support
-        compilers that may not provide those
-n-i-bz  Old STABS code is still being compiled, but never used. Remove it.
-n-i-bz  Fix compilation on distros with glibc < 2.5
-n-i-bz  (vex 3098) Avoid generation of Neon insns on non-Neon hosts
-n-i-bz  Enable rt_sigpending syscall on ppc64 linux.
-n-i-bz  mremap did not work properly on shared memory
-n-i-bz  Fix incorrect sizeof expression in syswrap-xen.c reported by Coverity
-n-i-bz  In VALGRIND_PRINTF write out thread name, if any, to xml
-
-(3.11.0.TEST1:  8 September 2015, vex r3187, valgrind r15646)
-(3.11.0.TEST2: 21 September 2015, vex r3193, valgrind r15667)
-(3.11.0:       22 September 2015, vex r3195, valgrind r15674)
-
-
-
-Release 3.10.1 (25 November 2014)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.10.1 is a bug fix release.  It fixes various bugs reported in 3.10.0
-and backports fixes for all reported missing AArch64 ARMv8 instructions
-and syscalls from the trunk.  If you package or deliver 3.10.0 for others
-to use, you might want to consider upgrading to 3.10.1 instead.
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-335440  arm64: ld1 (single structure) is not implemented
-335713  arm64: unhanded instruction: prfm (immediate)
-339020  ppc64: memcheck/tests/ppc64/power_ISA2_05 failing in nightly build
-339182  ppc64: AvSplat ought to load destination vector register with [..]
-339336  PPC64 store quad instruction (stq) is not supposed to change [..]
-339433  ppc64 lxvw4x instruction uses four 32-byte loads
-339645  Use correct tag names in sys_getdents/64 wrappers
-339706  Fix false positive for ioctl(TIOCSIG) on linux
-339721  assertion 'check_sibling == sibling' failed in readdwarf3.c ...
-339853  arm64 times syscall unknown
-339855  arm64 unhandled getsid/setsid syscalls
-339858  arm64 dmb sy not implemented
-339926  Unhandled instruction 0x1E674001 (frintx) on aarm64
-339927  Unhandled instruction 0x9E7100C6 (fcvtmu) on aarch64
-339938  disInstr(arm64): unhandled instruction 0x4F8010A4 (fmla)
-        == 339950
-339940  arm64: unhandled syscall: 83 (sys_fdatasync) + patch
-340033  arm64: unhandled insn dmb ishld and some other isb-dmb-dsb variants
-340028  unhandled syscalls for arm64 (msync, pread64, setreuid and setregid)
-340036  arm64: Unhandled instruction ld4 (multiple structures, no offset)
-340236  arm64: unhandled syscalls: mknodat, fchdir, chroot, fchownat
-340509  arm64: unhandled instruction fcvtas
-340630  arm64: fchmod (52) and fchown (55) syscalls not recognized
-340632  arm64: unhandled instruction fcvtas
-340722  Resolve "UNKNOWN attrlist flags 0:0x10000000"
-340725  AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
-340788  warning: unhandled syscall: 318 (getrandom)
-340807  disInstr(arm): unhandled instruction: 0xEE989B20
-340856  disInstr(arm64): unhandled instruction 0x1E634C45 (fcsel)
-340922  arm64: unhandled getgroups/setgroups syscalls
-350251  Fix typo in VEX utility program (test_main.c).
-350407  arm64: unhandled instruction ucvtf (vector, integer)
-350809  none/tests/async-sigs breaks when run under cron on Solaris
-350811  update README.solaris after r15445
-350813  Use handwritten memcheck assembly helpers on x86/Solaris [..]
-350854  strange code in VG_(load_ELF)()
-351140  arm64 syscalls setuid (146) and setresgid (149) not implemented
-n-i-bz  DRD and Helgrind: Handle Imbe_CancelReservation (clrex on ARM)
-n-i-bz  Add missing ]] to terminate CDATA.
-n-i-bz  Glibc versions prior to 2.5 do not define PTRACE_GETSIGINFO
-n-i-bz  Enable sys_fadvise64_64 on arm32.
-n-i-bz  Add test cases for all remaining AArch64 SIMD, FP and memory insns.
-n-i-bz  Add test cases for all known arm64 load/store instructions.
-n-i-bz  PRE(sys_openat): when checking whether ARG1 == VKI_AT_FDCWD [..]
-n-i-bz  Add detection of old ppc32 magic instructions from bug 278808.
-n-i-bz  exp-dhat: Implement missing function "dh_malloc_usable_size".
-n-i-bz  arm64: Implement "fcvtpu w, s".
-n-i-bz  arm64: implement ADDP and various others
-n-i-bz  arm64: Implement {S,U}CVTF (scalar, fixedpt).
-n-i-bz  arm64: enable FCVT{A,N}S X,S.
-
-(3.10.1: 25 November 2014, vex r3026, valgrind r14785)
-
-
-
-Release 3.10.0 (10 September 2014)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.10.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
-PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
-MIPS64/Linux, ARM/Android, MIPS32/Android, X86/Android, X86/MacOSX 10.9
-and AMD64/MacOSX 10.9.  Support for MacOSX 10.8 and 10.9 is
-significantly improved relative to the 3.9.0 release.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for the 64-bit ARM Architecture (AArch64 ARMv8).  This port
-  is mostly complete, and is usable, but some SIMD instructions are as
-  yet unsupported.
-
-* Support for little-endian variant of the 64-bit POWER architecture.
-
-* Support for Android on MIPS32.
-
-* Support for 64bit FPU on MIPS32 platforms.
-
-* Both 32- and 64-bit executables are supported on MacOSX 10.8 and 10.9.
-
-* Configuration for and running on Android targets has changed.
-  See README.android in the source tree for details.
-
-* ================== DEPRECATED FEATURES =================
-
-* --db-attach is now deprecated and will be removed in the next
-  valgrind feature release.  The built-in GDB server capabilities are
-  superior and should be used instead. Learn more here:
-  http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
-  - Client code can now selectively disable and re-enable reporting of
-    invalid address errors in specific ranges using the new client
-    requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
-    VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
-
-  - Leak checker: there is a new leak check heuristic called
-    "length64".  This is used to detect interior pointers pointing 8
-    bytes inside a block, on the assumption that the first 8 bytes
-    holds the value "block size - 8".  This is used by
-    sqlite3MemMalloc, for example.
-
-  - Checking of system call parameters: if a syscall parameter
-    (e.g. bind struct sockaddr, sendmsg struct msghdr, ...) has
-    several fields not initialised, an error is now reported for each
-    field. Previously, an error was reported only for the first
-    uninitialised field.
-
-  - Mismatched alloc/free checking: a new flag
-    --show-mismatched-frees=no|yes [yes] makes it possible to turn off
-    such checks if necessary.
-
-* Helgrind:
-
-  - Improvements to error messages:
-
-    o Race condition error message involving heap allocated blocks also
-      show the thread number that allocated the raced-on block.
-
-    o All locks referenced by an error message are now announced.
-      Previously, some error messages only showed the lock addresses.
-
-    o The message indicating where a lock was first observed now also
-      describes the address/location of the lock.
-
-  - Helgrind now understands the Ada task termination rules and
-    creates a happens-before relationship between a terminated task
-    and its master.  This avoids some false positives and avoids a big
-    memory leak when a lot of Ada tasks are created and terminated.
-    The interceptions are only activated with forthcoming releases of
-    gnatpro >= 7.3.0w-20140611 and gcc >= 5.0.
-
-  - A new GDB server monitor command "info locks" giving the list of
-    locks, their location, and their status.
-
-* Callgrind:
-
-  - callgrind_control now supports the --vgdb-prefix argument,
-    which is needed if valgrind was started with this same argument.
-
-* ==================== OTHER CHANGES ====================
-
-* Unwinding through inlined function calls.  Stack unwinding can now
-  make use of Dwarf3 inlined-unwind information if it is available.
-  The practical effect is that inlined calls become visible in stack
-  traces.  The suppression matching machinery has been adjusted
-  accordingly.  This is controlled by the new option
-  --read-inline-info=yes|no.  Currently this is enabled by default
-  only on Linux and Android targets and only for the tools Memcheck,
-  Helgrind and DRD.
-
-* Valgrind can now read EXIDX unwind information on 32-bit ARM
-  targets.  If an object contains both CFI and EXIDX unwind
-  information, Valgrind will prefer the CFI over the EXIDX.  This
-  facilitates unwinding through system libraries on arm-android
-  targets.
-
-* Address description logic has been improved and is now common
-  between Memcheck and Helgrind, resulting in better address
-  descriptions for some kinds of error messages.
-
-* Error messages about dubious arguments (eg, to malloc or calloc) are
-  output like other errors.  This means that they can be suppressed
-  and they have a stack trace.
-
-* The C++ demangler has been updated for better C++11 support.
-
-* New and modified GDB server monitor features:
-
-  - Thread local variables/storage (__thread) can now be displayed.
-
-  - The GDB server monitor command "v.info location <address>"
-    displays information about an address.  The information produced
-    depends on the tool and on the options given to valgrind.
-    Possibly, the following are described: global variables, local
-    (stack) variables, allocated or freed blocks, ...
-
-  - The option "--vgdb-stop-at=event1,event2,..." allows the user to
-    ask the GDB server to stop at the start of program execution, at
-    the end of the program execution and on Valgrind internal errors.
-
-  - A new monitor command "v.info stats" shows various Valgrind core
-    and tool statistics.
-
-  - A new monitor command "v.set hostvisibility" allows the GDB server
-    to provide access to Valgrind internal host status/memory.
-
-* A new option "--aspace-minaddr=<address>" can in some situations
-  allow the use of more memory by decreasing the address above which
-  Valgrind maps memory.  It can also be used to solve address
-  conflicts with system libraries by increasing the default value.
-  See user manual for details.
-
-* The amount of memory used by Valgrind to store debug info (unwind
-  info, line number information and symbol data) has been
-  significantly reduced, even though Valgrind now reads more
-  information in order to support unwinding of inlined function calls.
-
-* Dwarf3 handling with --read-var-info=yes has been improved:
-
-  - Ada and C struct containing VLAs no longer cause a "bad DIE" error
-
-  - Code compiled with
-    -ffunction-sections -fdata-sections -Wl,--gc-sections
-    no longer causes assertion failures.
-
-* Improved checking for the --sim-hints= and --kernel-variant=
-  options.  Unknown strings are now detected and reported to the user
-  as a usage error.
-
-* The semantics of stack start/end boundaries in the valgrind.h
-  VALGRIND_STACK_REGISTER client request has been clarified and
-  documented.  The convention is that start and end are respectively
-  the lowest and highest addressable bytes of the stack.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-175819  Support for ipv6 socket reporting with --track-fds
-232510  make distcheck fails
-249435  Analyzing wine programs with callgrind triggers a crash
-278972  support for inlined function calls in stacktraces and suppression
-        == 199144
-291310  FXSAVE instruction marks memory as undefined on amd64
-303536  ioctl for SIOCETHTOOL (ethtool(8)) isn't wrapped
-308729  vex x86->IR: unhandled instruction bytes 0xf 0x5 (syscall) 
-315199  vgcore file for threaded app does not show which thread crashed
-315952  tun/tap ioctls are not supported
-323178  Unhandled instruction: PLDW register (ARM) 
-323179  Unhandled instruction: PLDW immediate (ARM)
-324050  Helgrind: SEGV because of unaligned stack when using movdqa
-325110  Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
-325124  [MIPSEL] Compilation error
-325477  Phase 4 support for IBM Power ISA 2.07
-325538  cavium octeon mips64, valgrind reported "dumping core" [...]
-325628  Phase 5 support for IBM Power ISA 2.07
-325714  Empty vgcore but RLIMIT_CORE is big enough (too big) 
-325751  Missing the two privileged Power PC Transactional Memory Instructions
-325816  Phase 6 support for IBM Power ISA 2.07
-325856  Make SGCheck fail gracefully on unsupported platforms
-326026  Iop names for count leading zeros/sign bits incorrectly imply [..]
-326436  DRD: False positive in libstdc++ std::list::push_back
-326444  Cavium MIPS Octeon Specific Load Indexed Instructions
-326462  Refactor vgdb to isolate invoker stuff into separate module
-326469  amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
-326623  DRD: false positive conflict report in a field assignment
-326724  Valgrind does not compile on OSX 1.9 Mavericks
-326816  Intercept for __strncpy_sse2_unaligned missing?
-326921  coregrind fails to compile m_trampoline.S with MIPS/Linux port of V
-326983  Clear direction flag after tests on amd64.
-327212  Do not prepend the current directory to absolute path names.
-327223  Support for Cavium MIPS Octeon Atomic and Count Instructions
-327238  Callgrind Assertion 'passed <= last_bb->cjmp_count' failed
-327284  s390x: Fix translation of the risbg instruction
-327639  vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
-327837  dwz compressed alternate .debug_info and .debug_str not read correctly
-327916  DW_TAG_typedef may have no name
-327943  s390x: add a redirection for the 'index' function
-328100  XABORT not implemented
-328205  Implement additional Xen hypercalls
-328454  add support Backtraces with ARM unwind tables (EXIDX)
-328455  s390x: SIGILL after emitting wrong register pair for ldxbr
-328711  valgrind.1 manpage "memcheck options" section is badly generated
-328878  vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
-329612  Incorrect handling of AT_BASE for image execution 
-329694  clang warns about using uninitialized variable 
-329956  valgrind crashes when lmw/stmw instructions are used on ppc64
-330228  mmap must align to VKI_SHMLBA on mips32
-330257  LLVM does not support `-mno-dynamic-no-pic` option
-330319  amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
-330459  --track-fds=yes doesn't track eventfds
-330469  Add clock_adjtime syscall support
-330594  Missing sysalls on PowerPC / uClibc
-330622  Add test to regression suite for POWER instruction: dcbzl
-330939  Support for AMD's syscall instruction on x86
-        == 308729
-330941  Typo in PRE(poll) syscall wrapper
-331057  unhandled instruction: 0xEEE01B20 (vfma.f64) (has patch)
-331254  Fix expected output for memcheck/tests/dw4
-331255  Fix race condition in test none/tests/coolo_sigaction
-331257  Fix type of jump buffer in test none/tests/faultstatus
-331305  configure uses bash specific syntax
-331337  s390x WARNING: unhandled syscall: 326 (dup3)
-331380  Syscall param timer_create(evp) points to uninitialised byte(s)
-331476  Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
-331829  Unexpected ioctl opcode sign extension
-331830  ppc64: WARNING: unhandled syscall: 96/97
-331839  drd/tests/sem_open specifies invalid semaphore name 
-331847  outcome of drd/tests/thread_name is nondeterministic
-332037  Valgrind cannot handle Thumb "add pc, reg"
-332055  drd asserts on platforms with VG_STACK_REDZONE_SZB == 0 and
-        consistency checks enabled
-332263  intercepts for pthread_rwlock_timedrdlock and
-        pthread_rwlock_timedwrlock are incorrect
-332265  drd could do with post-rwlock_init and pre-rwlock_destroy
-        client requests
-332276  Implement additional Xen hypercalls
-332658  ldrd.w r1, r2, [PC, #imm] does not adjust for 32bit alignment
-332765  Fix ms_print to create temporary files in a proper directory
-333072  drd: Add semaphore annotations
-333145  Tests for missaligned PC+#imm access for arm
-333228  AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
-333230  AAarch64 missing instruction encodings: dc, ic, dsb.
-333248  WARNING: unhandled syscall: unix:443
-333428  ldr.w pc [rD, #imm] instruction leads to assertion
-333501  cachegrind: assertion: Cache set count is not a power of two.
-        == 336577
-        == 292281
-333666  Recognize MPX instructions and bnd prefix.
-333788  Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
-333817  Valgrind reports the memory areas written to by the SG_IO
-        ioctl as untouched
-334049  lzcnt fails silently (x86_32)
-334384  Valgrind does not have support Little Endian support for
-        IBM POWER PPC 64
-334585  recvmmsg unhandled (+patch) (arm)
-334705  sendmsg and recvmsg should guard against bogus msghdr fields.
-334727  Build fails with -Werror=format-security
-334788  clarify doc about --log-file initial program directory
-334834  PPC64 Little Endian support, patch 2
-334836  PPC64 Little Endian support, patch 3 testcase fixes
-334936  patch to fix false positives on alsa SNDRV_CTL_* ioctls
-335034  Unhandled ioctl: HCIGETDEVLIST
-335155  vgdb, fix error print statement.
-335262  arm64: movi 8bit version is not supported
-335263  arm64: dmb instruction is not implemented
-335441  unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind
-335496  arm64: sbc/abc instructions are not implemented
-335554  arm64: unhandled instruction: abs
-335564  arm64: unhandled instruction: fcvtpu  Xn, Sn
-335735  arm64: unhandled instruction: cnt
-335736  arm64: unhandled instruction: uaddlv
-335848  arm64: unhandled instruction: {s,u}cvtf
-335902  arm64: unhandled instruction: sli
-335903  arm64: unhandled instruction: umull (vector)
-336055  arm64: unhandled instruction: mov (element)
-336062  arm64: unhandled instruction: shrn{,2}
-336139  mip64: [...] valgrind hangs and spins on a single core [...]
-336189  arm64: unhandled Instruction: mvn
-336435  Valgrind hangs in pthread_spin_lock consuming 100% CPU
-336619  valgrind --read-var-info=yes doesn't handle DW_TAG_restrict_type
-336772  Make moans about unknown ioctls more informative
-336957  Add a section about the Solaris/illumos port on the webpage
-337094  ifunc wrapper is broken on ppc64
-337285  fcntl commands F_OFD_SETLK, F_OFD_SETLKW, and F_OFD_GETLK not supported
-337528  leak check heuristic for block prefixed by length as 64bit number
-337740  Implement additional Xen hypercalls
-337762  guest_arm64_toIR.c:4166 (dis_ARM64_load_store): Assertion `0' failed.
-337766  arm64-linux: unhandled syscalls mlock (228) and mlockall (230)
-337871  deprecate --db-attach
-338023  Add support for all V4L2/media ioctls
-338024  inlined functions are not shown if DW_AT_ranges is used
-338106  Add support for 'kcmp' syscall
-338115  DRD: computed conflict set differs from actual after fork
-338160  implement display of thread local storage in gdbsrv
-338205  configure.ac and check for -Wno-tautological-compare
-338300  coredumps are missing one byte of every segment
-338445  amd64 vbit-test fails with unknown opcodes used by arm64 VEX
-338499  --sim-hints parsing broken due to wrong order in tokens
-338615  suppress glibc 2.20 optimized strcmp implementation for ARMv7
-338681  Unable to unwind through clone thread created on i386-linux
-338698  race condition between gdbsrv and vgdb on startup
-338703  helgrind on arm-linux gets false positives in dynamic loader
-338791  alt dwz files can be relative of debug/main file
-338878  on MacOS: assertion 'VG_IS_PAGE_ALIGNED(clstack_end+1)' failed
-338932  build V-trunk with gcc-trunk
-338974  glibc 2.20 changed size of struct sigaction sa_flags field on s390
-345079  Fix build problems in VEX/useful/test_main.c
-n-i-bz  Fix KVM_CREATE_IRQCHIP ioctl handling
-n-i-bz  s390x: Fix memory corruption for multithreaded applications
-n-i-bz  vex arm->IR: allow PC as basereg in some LDRD cases
-n-i-bz  internal error in Valgrind if vgdb transmit signals when ptrace invoked
-n-i-bz  Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
-n-i-bz  drd manual: Document how to C++11 programs that use class "std::thread"
-n-i-bz  Add command-line option --default-suppressions
-n-i-bz  Add support for BLKDISCARDZEROES ioctl
-n-i-bz  ppc32/64: fix a regression with the mtfsb0/mtfsb1 instructions
-n-i-bz  Add support for        sys_pivot_root and sys_unshare
-
-(3.10.0.BETA1:  2 September 2014, vex r2940, valgrind r14428)
-(3.10.0.BETA2:  8 September 2014, vex r2950, valgrind r14503)
-(3.10.0:       10 September 2014, vex r2950, valgrind r14514)
-
-
-
-Release 3.9.0 (31 October 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.9.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android,
-X86/Android, X86/MacOSX 10.7 and AMD64/MacOSX 10.7.  Support for
-MacOSX 10.8 is significantly improved relative to the 3.8.0 release.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for MIPS64 LE and BE running Linux.  Valgrind has been
-  tested on MIPS64 Debian Squeeze and Debian Wheezy distributions.
-
-* Support for MIPS DSP ASE on MIPS32 platforms.
-
-* Support for s390x Decimal Floating Point instructions on hosts that
-  have the DFP facility installed.
-
-* Support for POWER8 (Power ISA 2.07) instructions
-
-* Support for Intel AVX2 instructions.  This is available only on 64
-  bit code.
-
-* Initial support for Intel Transactional Synchronization Extensions,
-  both RTM and HLE.
-
-* Initial support for Hardware Transactional Memory on POWER.
-
-* Improved support for MacOSX 10.8 (64-bit only).  Memcheck can now
-  run large GUI apps tolerably well.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
-  - Improvements in handling of vectorised code, leading to
-    significantly fewer false error reports.  You need to use the flag
-    --partial-loads-ok=yes to get the benefits of these changes.
-
-  - Better control over the leak checker.  It is now possible to
-    specify which leak kinds (definite/indirect/possible/reachable)
-    should be displayed, which should be regarded as errors, and which
-    should be suppressed by a given leak suppression.  This is done
-    using the options --show-leak-kinds=kind1,kind2,..,
-    --errors-for-leak-kinds=kind1,kind2,.. and an optional
-    "match-leak-kinds:" line in suppression entries, respectively.
-
-    Note that generated leak suppressions contain this new line and
-    are therefore more specific than in previous releases.  To get the
-    same behaviour as previous releases, remove the "match-leak-kinds:"
-    line from generated suppressions before using them.
-
-  - Reduced "possible leak" reports from the leak checker by the use
-    of better heuristics.  The available heuristics provide detection
-    of valid interior pointers to std::stdstring, to new[] allocated
-    arrays with elements having destructors and to interior pointers
-    pointing to an inner part of a C++ object using multiple
-    inheritance.  They can be selected individually using the
-    option --leak-check-heuristics=heur1,heur2,...
-
-  - Better control of stacktrace acquisition for heap-allocated
-    blocks.  Using the --keep-stacktraces option, it is possible to
-    control independently whether a stack trace is acquired for each
-    allocation and deallocation.  This can be used to create better
-    "use after free" errors or to decrease Valgrind's resource
-    consumption by recording less information.
-
-  - Better reporting of leak suppression usage.  The list of used
-    suppressions (shown when the -v option is given) now shows, for
-    each leak suppressions, how many blocks and bytes it suppressed
-    during the last leak search.
-
-* Helgrind:
-
-  - False errors resulting from the use of statically initialised
-    mutexes and condition variables (PTHREAD_MUTEX_INITIALISER, etc)
-    have been removed.
-
-  - False errors resulting from the use of pthread_cond_waits that
-    timeout, have been removed.
-
-* ==================== OTHER CHANGES ====================
-
-* Some attempt to tune Valgrind's space requirements to the expected
-  capabilities of the target:
-
-  - The default size of the translation cache has been reduced from 8
-    sectors to 6 on Android platforms, since each sector occupies
-    about 40MB when using Memcheck.
-
-  - The default size of the translation cache has been increased to 16
-    sectors on all other platforms, reflecting the fact that large
-    applications require instrumentation and storage of huge amounts
-    of code.  For similar reasons, the number of memory mapped
-    segments that can be tracked has been increased by a factor of 6.
-
-  - In all cases, the maximum number of sectors in the translation
-    cache can be controlled by the new flag --num-transtab-sectors.
-
-* Changes in how debug info (line numbers, etc) is read:
-
-  - Valgrind no longer temporarily mmaps the entire object to read
-    from it.  Instead, reading is done through a small fixed sized
-    buffer.  This avoids virtual memory usage spikes when Valgrind
-    reads debuginfo from large shared objects.
-
-  - A new experimental remote debug info server.  Valgrind can read
-    debug info from a different machine (typically, a build host)
-    where debuginfo objects are stored.  This can save a lot of time
-    and hassle when running Valgrind on resource-constrained targets
-    (phones, tablets) when the full debuginfo objects are stored
-    somewhere else.  This is enabled by the --debuginfo-server=
-    option.
-
-  - Consistency checking between main and debug objects can be
-    disabled using the --allow-mismatched-debuginfo option.
-
-* Stack unwinding by stack scanning, on ARM.  Unwinding by stack
-  scanning can recover stack traces in some cases when the normal
-  unwind mechanisms fail.  Stack scanning is best described as "a
-  nasty, dangerous and misleading hack" and so is disabled by default.
-  Use --unw-stack-scan-thresh and --unw-stack-scan-frames to enable
-  and control it.
-
-* Detection and merging of recursive stack frame cycles.  When your
-  program has recursive algorithms, this limits the memory used by
-  Valgrind for recorded stack traces and avoids recording
-  uninteresting repeated calls.  This is controlled by the command
-  line option --merge-recursive-frame and by the monitor command
-  "v.set merge-recursive-frames".
-
-* File name and line numbers for used suppressions.  The list of used
-  suppressions (shown when the -v option is given) now shows, for each
-  used suppression, the file name and line number where the suppression
-  is defined.
-
-* New and modified GDB server monitor features:
-
-  - valgrind.h has a new client request, VALGRIND_MONITOR_COMMAND,
-    that can be used to execute gdbserver monitor commands from the
-    client program.
-
-  - A new monitor command, "v.info open_fds", that gives the list of
-    open file descriptors and additional details.
-
-  - An optional message in the "v.info n_errs_found" monitor command,
-    for example "v.info n_errs_found test 1234 finished", allowing a
-    comment string to be added to the process output, perhaps for the
-    purpose of separating errors of different tests or test phases.
-
-  - A new monitor command "v.info execontext" that shows information
-    about the stack traces recorded by Valgrind.
-
-  - A new monitor command "v.do expensive_sanity_check_general" to run
-    some internal consistency checks.
-
-* New flag --sigill-diagnostics to control whether a diagnostic
-  message is printed when the JIT encounters an instruction it can't
-  translate.  The actual behavior -- delivery of SIGILL to the
-  application -- is unchanged.
-
-* The maximum amount of memory that Valgrind can use on 64 bit targets
-  has been increased from 32GB to 64GB.  This should make it possible
-  to run applications on Memcheck that natively require up to about 35GB.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-123837  system call: 4th argument is optional, depending on cmd
-135425  memcheck should tell you where Freed blocks were Mallocd
-164485  VG_N_SEGNAMES and VG_N_SEGMENTS are (still) too small
-207815  Adds some of the drm ioctls to syswrap-linux.c 
-251569  vex amd64->IR: 0xF 0x1 0xF9 0xBF 0x90 0xD0 0x3 0x0 (RDTSCP)
-252955  Impossible to compile with ccache
-253519  Memcheck reports auxv pointer accesses as invalid reads.
-263034  Crash when loading some PPC64 binaries
-269599  Increase deepest backtrace
-274695  s390x: Support "compare to/from logical" instructions (z196)
-275800  s390x: Autodetect cache info (part 2)
-280271  Valgrind reports possible memory leaks on still-reachable std::string
-284540  Memcheck shouldn't count suppressions matching still-reachable [..]
-289578  Backtraces with ARM unwind tables (stack scan flags)
-296311  Wrong stack traces due to -fomit-frame-pointer (x86) 
-304832  ppc32: build failure
-305431  Use find_buildid shdr fallback for separate .debug files
-305728  Add support for AVX2 instructions
-305948  ppc64: code generation for ShlD64 / ShrD64 asserts
-306035  s390x: Fix IR generation for LAAG and friends
-306054  s390x: Condition code computation for convert-to-int/logical
-306098  s390x: alternate opcode form for convert to/from fixed
-306587  Fix cache line detection from auxiliary vector for PPC.
-306783  Mips unhandled syscall :  4025  /  4079  / 4182
-307038  DWARF2 CFI reader: unhandled DW_OP_ opcode 0x8 (DW_OP_const1u et al)
-307082  HG false positive: pthread_cond_destroy: destruction of unknown CV
-307101  sys_capget second argument can be NULL
-307103  sys_openat: If pathname is absolute, then dirfd is ignored.
-307106  amd64->IR: f0 0f c0 02 (lock xadd byte)
-307113  s390x: DFP support
-307141  valgrind does't work in mips-linux system
-307155  filter_gdb should filter out syscall-template.S T_PSEUDO
-307285  x86_amd64 feature test for avx in test suite is wrong
-307290  memcheck overlap testcase needs memcpy version filter
-307463  Please add "&limit=0" to the "all open bugs" link
-307465  --show-possibly-lost=no should reduce the error count / exit code
-307557  Leaks on Mac OS X 10.7.5 libraries at ImageLoader::recursiveInit[..]
-307729  pkgconfig support broken valgrind.pc
-307828  Memcheck false errors SSE optimized wcscpy, wcscmp, wcsrchr, wcschr
-307955  Building valgrind 3.7.0-r4 fails in Gentoo AMD64 when using clang
-308089  Unhandled syscall on ppc64: prctl
-308135  PPC32 MPC8xx has 16 bytes cache size
-308321  testsuite memcheck filter interferes with gdb_filter 
-308333 == 307106
-308341  vgdb should report process exit (or fatal signal)
-308427  s390 memcheck reports tsearch cjump/cmove depends on uninit
-308495  Remove build dependency on installed Xen headers
-308573  Internal error on 64-bit instruction executed in 32-bit mode
-308626  == 308627
-308627  pmovmskb validity bit propagation is imprecise
-308644  vgdb command for having the info for the track-fds option
-308711  give more info about aspacemgr and arenas in out_of_memory
-308717  ARM: implement fixed-point VCVT.F64.[SU]32
-308718  ARM implement SMLALBB family of instructions
-308886  Missing support for PTRACE_SET/GETREGSET 
-308930  syscall name_to_handle_at (303 on amd64) not handled
-309229  V-bit tester does not report number of tests generated
-309323  print unrecognized instuction on MIPS
-309425  Provide a --sigill-diagnostics flag to suppress illegal [..]
-309427  SSE optimized stpncpy trigger uninitialised value [..] errors
-309430  Self hosting ppc64 encounters a vassert error on operand type
-309600  valgrind is a bit confused about 0-sized sections
-309823  Generate errors for still reachable blocks
-309921  PCMPISTRI validity bit propagation is imprecise
-309922  none/tests/ppc64/test_dfp5 sometimes fails
-310169  The Iop_CmpORD class of Iops is not supported by the vbit checker.
-310424  --read-var-info does not properly describe static variables 
-310792  search additional path for debug symbols
-310931  s390x: Message-security assist (MSA) instruction extension [..]
-311100  PPC DFP implementation of the integer operands is inconsistent [..]
-311318  ARM: "128-bit constant is not implemented" error message
-311407  ssse3 bcopy (actually converted memcpy) causes invalid read [..]
-311690  V crashes because it redirects branches inside of a redirected function
-311880  x86_64: make regtest hangs at shell_valid1
-311922  WARNING: unhandled syscall: 170
-311933  == 251569
-312171  ppc: insn selection for DFP
-312571  Rounding mode call wrong for the DFP Iops [..]
-312620  Change to Iop_D32toD64 [..] for s390 DFP support broke ppc [..]
-312913  Dangling pointers error should also report the alloc stack trace
-312980  Building on Mountain Lion generates some compiler warnings
-313267  Adding MIPS64/Linux port to Valgrind
-313348  == 251569
-313354  == 251569
-313811  Buffer overflow in assert_fail
-314099  coverity pointed out error in VEX guest_ppc_toIR.c insn_suffix
-314269  ppc: dead code in insn selection
-314718  ARM: implement integer divide instruction (sdiv and udiv)
-315345  cl-format.xml and callgrind/dump.c don't agree on using cfl= or cfi=
-315441  sendmsg syscall should ignore unset msghdr msg_flags
-315534  msgrcv inside a thread causes valgrind to hang (block)
-315545  Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed
-315689  disInstr(thumb): unhandled instruction: 0xF852 0x0E10 (LDRT)
-315738  disInstr(arm): unhandled instruction: 0xEEBE0BEE (vcvt.s32.f64)
-315959  valgrind man page has bogus SGCHECK (and no BBV) OPTIONS section
-316144  valgrind.1 manpage contains unknown ??? strings [..]
-316145  callgrind command line options in manpage reference (unknown) [..]
-316145  callgrind command line options in manpage reference [..]
-316181  drd: Fixed a 4x slowdown for certain applications
-316503  Valgrind does not support SSE4 "movntdqa" instruction
-316535  Use of |signed int| instead of |size_t| in valgrind messages
-316696   fluidanimate program of parsec 2.1 stuck 
-316761  syscall open_by_handle_at (304 on amd64, 342 on x86) not handled
-317091  Use -Wl,-Ttext-segment when static linking if possible [..]
-317186  "Impossible happens" when occurs VCVT instruction on ARM
-317318  Support for Threading Building Blocks "scalable_malloc"
-317444  amd64->IR: 0xC4 0x41 0x2C 0xC2 0xD2 0x8 (vcmpeq_uqps)
-317461  Fix BMI assembler configure check and avx2/bmi/fma vgtest prereqs
-317463  bmi testcase IR SANITY CHECK FAILURE
-317506  memcheck/tests/vbit-test fails with unknown opcode after [..]
-318050  libmpiwrap fails to compile with out-of-source build
-318203  setsockopt handling needs to handle SOL_SOCKET/SO_ATTACH_FILTER
-318643  annotate_trace_memory tests infinite loop on arm and ppc [..]
-318773  amd64->IR: 0xF3 0x48 0x0F 0xBC 0xC2 0xC3 0x66 0x0F
-318929  Crash with: disInstr(thumb): 0xF321 0x0001 (ssat16)
-318932  Add missing PPC64 and PPC32 system call support
-319235  --db-attach=yes is broken with Yama (ptrace scoping) enabled
-319395  Crash with unhandled instruction on STRT (Thumb) instructions
-319494  VEX Makefile-gcc standalone build update after r2702
-319505  [MIPSEL] Crash: unhandled UNRAY operator.
-319858  disInstr(thumb): unhandled instruction on instruction STRBT
-319932  disInstr(thumb): unhandled instruction on instruction STRHT
-320057  Problems when we try to mmap more than 12 memory pages on MIPS32
-320063  Memory from PTRACE_GET_THREAD_AREA is reported uninitialised
-320083  disInstr(thumb): unhandled instruction on instruction LDRBT
-320116  bind on AF_BLUETOOTH produces warnings because of sockaddr_rc padding
-320131  WARNING: unhandled syscall: 369 on ARM (prlimit64)
-320211  Stack buffer overflow in ./coregrind/m_main.c with huge TMPDIR
-320661  vgModuleLocal_read_elf_debug_info(): "Assertion '!di->soname'
-320895  add fanotify support (patch included)
-320998  vex amd64->IR pcmpestri and pcmpestrm SSE4.2 instruction
-321065  Valgrind updates for Xen 4.3
-321148  Unhandled instruction: PLI (Thumb 1, 2, 3)
-321363  Unhandled instruction: SSAX (ARM + Thumb)
-321364  Unhandled instruction: SXTAB16 (ARM + Thumb)
-321466  Unhandled instruction: SHASX (ARM + Thumb)
-321467  Unhandled instruction: SHSAX (ARM + Thumb)
-321468  Unhandled instruction: SHSUB16 (ARM + Thumb)
-321619  Unhandled instruction: SHSUB8 (ARM + Thumb)
-321620  Unhandled instruction: UASX (ARM + Thumb)
-321621  Unhandled instruction: USAX (ARM + Thumb)
-321692  Unhandled instruction: UQADD16 (ARM + Thumb)
-321693  Unhandled instruction: LDRSBT (Thumb)
-321694  Unhandled instruction: UQASX (ARM + Thumb)
-321696  Unhandled instruction: UQSAX (Thumb + ARM)
-321697  Unhandled instruction: UHASX (ARM + Thumb)
-321703  Unhandled instruction: UHSAX (ARM + Thumb)
-321704  Unhandled instruction: REVSH (ARM + Thumb)
-321730  Add cg_diff and cg_merge man pages
-321738  Add vgdb and valgrind-listener man pages
-321814  == 315545
-321891  Unhandled instruction: LDRHT (Thumb)
-321960  pthread_create() then alloca() causing invalid stack write errors
-321969  ppc32 and ppc64 don't support [lf]setxattr
-322254  Show threadname together with tid if set by application
-322294  Add initial support for IBM Power ISA 2.07
-322368  Assertion failure in wqthread_hijack under OS X 10.8
-322563  vex mips->IR: 0x70 0x83 0xF0 0x3A
-322807  VALGRIND_PRINTF_BACKTRACE writes callstack to xml and text to stderr
-322851  0bXXX binary literal syntax is not standard 
-323035  Unhandled instruction: LDRSHT(Thumb)
-323036  Unhandled instruction: SMMLS (ARM and Thumb)
-323116  The memcheck/tests/ppc64/power_ISA2_05.c fails to build [..]
-323175  Unhandled instruction: SMLALD (ARM + Thumb)
-323177  Unhandled instruction: SMLSLD (ARM + Thumb)
-323432  Calling pthread_cond_destroy() or pthread_mutex_destroy() [..]
-323437  Phase 2 support for IBM Power ISA 2.07
-323713  Support mmxext (integer sse) subset on i386 (athlon)
-323803  Transactional memory instructions are not supported for Power
-323893  SSE3 not available on amd cpus in valgrind
-323905  Probable false positive from Valgrind/drd on close()
-323912  valgrind.h header isn't compatible for mingw64
-324047  Valgrind doesn't support [LDR,ST]{S}[B,H]T ARM instructions
-324149  helgrind: When pthread_cond_timedwait returns ETIMEDOUT [..]
-324181  mmap does not handle MAP_32BIT
-324227  memcheck false positive leak when a thread calls exit+block [..]
-324421  Support for fanotify API on ARM architecture
-324514  gdbserver monitor cmd output behaviour consistency [..]
-324518  ppc64: Emulation of dcbt instructions does not handle [..]
-324546  none/tests/ppc32 test_isa_2_07_part2 requests -m64
-324582  When access is made to freed memory, report both allocation [..]
-324594  Fix overflow computation for Power ISA 2.06 insns: mulldo/mulldo.
-324765  ppc64: illegal instruction when executing none/tests/ppc64/jm-misc
-324816  Incorrect VEX implementation for xscvspdp/xvcvspdp for SNaN inputs
-324834  Unhandled instructions in Microsoft C run-time for x86_64
-324894  Phase 3 support for IBM Power ISA 2.07
-326091  drd: Avoid false race reports from optimized strlen() impls
-326113  valgrind libvex hwcaps error on AMD64 
-n-i-bz  Some wrong command line options could be ignored
-n-i-bz  patch to allow fair-sched on android
-n-i-bz  report error for vgdb snapshot requested before execution
-n-i-bz  same as 303624 (fixed in 3.8.0), but for x86 android
-
-(3.9.0: 31 October 2013, vex r2796, valgrind r13708)
-
-
-
-Release 3.8.1 (19 September 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.8.1 is a bug fix release.  It fixes some assertion failures in 3.8.0
-that occur moderately frequently in real use cases, adds support for
-some missing instructions on ARM, and fixes a deadlock condition on
-MacOSX.  If you package or deliver 3.8.0 for others to use, you might
-want to consider upgrading to 3.8.1 instead.
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-284004  == 301281
-289584  Unhandled instruction: 0xF 0x29 0xE5 (MOVAPS)
-295808  amd64->IR: 0xF3 0xF 0xBC 0xC0 (TZCNT)
-298281  wcslen causes false(?) uninitialised value warnings
-301281  valgrind hangs on OS X when the process calls system()
-304035  disInstr(arm): unhandled instruction 0xE1023053
-304867  implement MOVBE instruction in x86 mode
-304980  Assertion 'lo <= hi' failed in vgModuleLocal_find_rx_mapping
-305042  amd64: implement 0F 7F encoding of movq between two registers
-305199  ARM: implement QDADD and QDSUB
-305321  amd64->IR: 0xF 0xD 0xC (prefetchw)
-305513  killed by fatal signal: SIGSEGV
-305690  DRD reporting invalid semaphore when sem_trywait fails
-305926  Invalid alignment checks for some AVX instructions
-306297  disInstr(thumb): unhandled instruction 0xE883 0x000C
-306310  3.8.0 release tarball missing some files
-306612  RHEL 6 glibc-2.X default suppressions need /lib*/libc-*patterns
-306664  vex amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x46 0x66 0xF
-n-i-bz  shmat of a segment > 4Gb does not work 
-n-i-bz  simulate_control_c script wrong USR1 signal number on mips
-n-i-bz  vgdb ptrace calls wrong on mips [...]
-n-i-bz  Fixes for more MPI false positives
-n-i-bz  exp-sgcheck's memcpy causes programs to segfault
-n-i-bz  OSX build w/ clang: asserts at startup
-n-i-bz  Incorrect undef'dness prop for Iop_DPBtoBCD and Iop_BCDtoDPB
-n-i-bz  fix a couple of union tag-vs-field mixups
-n-i-bz  OSX: use __NR_poll_nocancel rather than __NR_poll
-
-The following bugs were fixed in 3.8.0 but not listed in this NEWS
-file at the time:
-
-254088  Valgrind should know about UD2 instruction
-301280  == 254088
-301902  == 254088
-304754  NEWS blows TeX's little mind
-
-(3.8.1: 19 September 2012, vex r2537, valgrind r12996)
-
-
-
-Release 3.8.0 (10 August 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.8.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android, X86/Android,
-X86/MacOSX 10.6/10.7 and AMD64/MacOSX 10.6/10.7.  Support for recent
-distros and toolchain components (glibc 2.16, gcc 4.7) has been added.
-There is initial support for MacOSX 10.8, but it is not usable for
-serious work at present.
-
-* ================== PLATFORM CHANGES =================
-
-* 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.
-
-* ==================== TOOL CHANGES ====================
-
-* 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.
-
-* ==================== OTHER CHANGES ====================
-
-* 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.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
-than mailing the developers (or mailing lists) directly -- bugs that
-are not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-197914  Building valgrind from svn now requires automake-1.10
-203877  increase to 16Mb maximum allowed alignment for memalign et al
-219156  Handle statically linked malloc or other malloc lib (e.g. tcmalloc) 
-247386  make perf does not run all performance tests
-270006  Valgrind scheduler unfair 
-270777  Adding MIPS/Linux port to Valgrind
-270796  s390x: Removed broken support for the TS insn
-271438  Fix configure for proper SSE4.2 detection
-273114  s390x: Support TR, TRE, TROO, TROT, TRTO, and TRTT instructions
-273475  Add support for AVX instructions
-274078  improved configure logic for mpicc
-276993  fix mremap 'no thrash checks' 
-278313  Fedora 15/x64: err read debug info with --read-var-info=yes flag
-281482  memcheck incorrect byte allocation count in realloc() for silly argument
-282230  group allocator for small fixed size, use it for MC_Chunk/SEc vbit
-283413  Fix wrong sanity check
-283671  Robustize alignment computation in LibVEX_Alloc
-283961  Adding support for some HCI IOCTLs
-284124  parse_type_DIE: confused by: DWARF 4
-284864  == 273475 (Add support for AVX instructions)
-285219  Too-restrictive constraints for Thumb2 "SP plus/minus register"
-285662  (MacOSX): Memcheck needs to replace memcpy/memmove
-285725  == 273475 (Add support for AVX instructions)
-286261  add wrapper for linux I2C_RDWR ioctl
-286270  vgpreload is not friendly to 64->32 bit execs, gives ld.so warnings
-286374  Running cachegrind with --branch-sim=yes on 64-bit PowerPC program fails
-286384  configure fails "checking for a supported version of gcc"
-286497  == 273475 (Add support for AVX instructions)
-286596  == 273475 (Add support for AVX instructions)
-286917  disInstr(arm): unhandled instruction: QADD (also QSUB)
-287175  ARM: scalar VFP fixed-point VCVT instructions not handled
-287260  Incorrect conditional jump or move depends on uninitialised value(s)
-287301  vex amd64->IR: 0x66 0xF 0x38 0x41 0xC0 0xB8 0x0 0x0 (PHMINPOSUW)
-287307  == 273475 (Add support for AVX instructions)
-287858  VG_(strerror): unknown error 
-288298  (MacOSX) unhandled syscall shm_unlink
-288995  == 273475 (Add support for AVX instructions)
-289470  Loading of large Mach-O thin binaries fails.
-289656  == 273475 (Add support for AVX instructions)
-289699  vgdb connection in relay mode erroneously closed due to buffer overrun 
-289823  ==  293754 (PCMPxSTRx not implemented for 16-bit characters)
-289839  s390x: Provide support for unicode conversion instructions
-289939  monitor cmd 'leak_check' with details about leaked or reachable blocks
-290006  memcheck doesn't mark %xmm as initialized after "pcmpeqw %xmm %xmm"
-290655  Add support for AESKEYGENASSIST instruction 
-290719  valgrind-3.7.0 fails with automake-1.11.2 due to"pkglibdir" usage
-290974  vgdb must align pages to VKI_SHMLBA (16KB) on ARM 
-291253  ES register not initialised in valgrind simulation
-291568  Fix 3DNOW-related crashes with baseline x86_64 CPU (w patch)
-291865  s390x: Support the "Compare Double and Swap" family of instructions
-292300  == 273475 (Add support for AVX instructions)
-292430  unrecognized instruction in __intel_get_new_mem_ops_cpuid
-292493  == 273475 (Add support for AVX instructions)
-292626  Missing fcntl F_SETOWN_EX and F_GETOWN_EX support
-292627  Missing support for some SCSI ioctls
-292628  none/tests/x86/bug125959-x86.c triggers undefined behavior
-292841  == 273475 (Add support for AVX instructions)
-292993  implement the getcpu syscall on amd64-linux
-292995  Implement the “cross memory attach” syscalls introduced in Linux 3.2
-293088  Add some VEX sanity checks for ppc64 unhandled instructions
-293751  == 290655 (Add support for AESKEYGENASSIST instruction)
-293754  PCMPxSTRx not implemented for 16-bit characters
-293755  == 293754 (No tests for PCMPxSTRx on 16-bit characters)
-293808  CLFLUSH not supported by latest VEX for amd64
-294047  valgrind does not correctly emulate prlimit64(..., RLIMIT_NOFILE, ...)
-294048  MPSADBW instruction not implemented
-294055  regtest none/tests/shell fails when locale is not set to C
-294185  INT 0x44 (and others) not supported on x86 guest, but used by Jikes RVM
-294190  --vgdb-error=xxx can be out of sync with errors shown to the user
-294191  amd64: fnsave/frstor and 0x66 size prefixes on FP instructions
-294260  disInstr_AMD64: disInstr miscalculated next %rip
-294523  --partial-loads-ok=yes causes false negatives
-294617  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A
-294736  vex amd64->IR: 0x48 0xF 0xD7 0xD6 0x48 0x83
-294812  patch allowing to run (on x86 at least) helgrind/drd on tool.
-295089  can not annotate source for both helgrind and drd
-295221  POWER Processor decimal floating point instruction support missing
-295427  building for i386 with clang on darwin11 requires "-new_linker linker"
-295428  coregrind/m_main.c has incorrect x86 assembly for darwin
-295590  Helgrind: Assertion 'cvi->nWaiters > 0' failed
-295617  ARM - Add some missing syscalls
-295799  Missing \n with get_vbits in gdbserver when line is % 80 [...]
-296229  Linux user input device ioctls missing wrappers
-296318  ELF Debug info improvements (more than one rx/rw mapping)
-296422  Add translation chaining support
-296457  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A (dup of AES)
-296792  valgrind 3.7.0: add SIOCSHWTSTAMP (0x89B0) ioctl wrapper
-296983  Fix build issues on x86_64/ppc64 without 32-bit toolchains
-297078  gdbserver signal handling problems [..]
-297147  drd false positives on newly allocated memory
-297329  disallow decoding of IBM Power DFP insns on some machines
-297497  POWER Processor decimal floating point instruction support missing
-297701  Another alias for strncasecmp_l in libc-2.13.so
-297911  'invalid write' not reported when using APIs for custom mem allocators.
-297976  s390x: revisit EX implementation
-297991  Valgrind interferes with mmap()+ftell() 
-297992  Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux) 
-297993  Fix compilation of valgrind with gcc -g3.
-298080  POWER Processor DFP support missing, part 3
-298227  == 273475 (Add support for AVX instructions)
-298335  == 273475 (Add support for AVX instructions)
-298354  Unhandled ARM Thumb instruction 0xEB0D 0x0585 (streq)
-298394  s390x: Don't bail out on an unknown machine model.  [..]
-298421  accept4() syscall (366) support is missing for ARM
-298718  vex amd64->IR: 0xF 0xB1 0xCB 0x9C 0x8F 0x45
-298732  valgrind installation problem in ubuntu with kernel version 3.x
-298862  POWER Processor DFP instruction support missing, part 4
-298864  DWARF reader mis-parses DW_FORM_ref_addr
-298943  massif asserts with --pages-as-heap=yes when brk is changing [..]
-299053  Support DWARF4 DW_AT_high_pc constant form
-299104  == 273475 (Add support for AVX instructions)
-299316  Helgrind: hg_main.c:628 (map_threads_lookup): Assertion 'thr' failed.
-299629  dup3() syscall (358) support is missing for ARM
-299694  POWER Processor DFP instruction support missing, part 5
-299756  Ignore --free-fill for MEMPOOL_FREE and FREELIKE client requests
-299803  == 273475 (Add support for AVX instructions)
-299804  == 273475 (Add support for AVX instructions)
-299805  == 273475 (Add support for AVX instructions)
-300140  ARM - Missing (T1) SMMUL
-300195  == 296318 (ELF Debug info improvements (more than one rx/rw mapping))
-300389  Assertion `are_valid_hwcaps(VexArchAMD64, [..])' failed.
-300414  FCOM and FCOMP unimplemented for amd64 guest
-301204  infinite loop in canonicaliseSymtab with ifunc symbol
-301229  == 203877 (increase to 16Mb maximum allowed alignment for memalign etc)
-301265  add x86 support to Android build 
-301984  configure script doesn't detect certain versions of clang
-302205  Fix compiler warnings for POWER VEX code and POWER test cases
-302287  Unhandled movbe instruction on Atom processors
-302370  PPC: fnmadd, fnmsub, fnmadds, fnmsubs insns always negate the result
-302536  Fix for the POWER Valgrind regression test: memcheck-ISA2.0.
-302578  Unrecognized isntruction 0xc5 0x32 0xc2 0xca 0x09 vcmpngess
-302656  == 273475 (Add support for AVX instructions)
-302709  valgrind for ARM needs extra tls support for android emulator [..]
-302827  add wrapper for CDROM_GET_CAPABILITY
-302901  Valgrind crashes with dwz optimized debuginfo
-302918  Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
-303116  Add support for the POWER instruction popcntb
-303127  Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.
-303250  Assertion `instrs_in->arr_used <= 10000' failed w/ OpenSSL code
-303466  == 273475 (Add support for AVX instructions)
-303624  segmentation fault on Android 4.1 (e.g. on Galaxy Nexus OMAP) 
-303963  strstr() function produces wrong results under valgrind callgrind
-304054  CALL_FN_xx macros need to enforce stack alignment
-304561  tee system call not supported
-715750  (MacOSX): Incorrect invalid-address errors near 0xFFFFxxxx (mozbug#)
-n-i-bz  Add missing gdbserver xml files for shadow registers for ppc32
-n-i-bz  Bypass gcc4.4/4.5 code gen bugs causing out of memory or asserts
-n-i-bz  Fix assert in gdbserver for watchpoints watching the same address
-n-i-bz  Fix false positive in sys_clone on amd64 when optional args [..]
-n-i-bz  s390x: Shadow registers can now be examined using vgdb
-
-(3.8.0-TEST3:  9 August 2012, vex r2465, valgrind r12865)
-(3.8.0:       10 August 2012, vex r2465, valgrind r12866)
-
-
-
-Release 3.7.0 (5 November 2011)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.7.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, ARM/Android, X86/Darwin and AMD64/Darwin.
-Support for recent distros and toolchain components (glibc 2.14, gcc
-4.6, MacOSX 10.7) has been added.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for IBM z/Architecture (s390x) running Linux.  Valgrind can
-  analyse 64-bit programs running on z/Architecture.  Most user space
-  instructions up to and including z10 are supported.  Valgrind has
-  been tested extensively on z9, z10, and z196 machines running SLES
-  10/11, RedHat 5/6m, and Fedora. The Memcheck and Massif tools are
-  known to work well. Callgrind, Helgrind, and DRD work reasonably
-  well on z9 and later models. See README.s390 for more details.
-
-* Preliminary support for MacOSX 10.7 and XCode 4.  Both 32- and
-  64-bit processes are supported.  Some complex threaded applications
-  (Firefox) are observed to hang when run as 32 bit applications,
-  whereas 64-bit versions run OK.  The cause is unknown.  Memcheck
-  will likely report some false errors.  In general, expect some rough
-  spots.  This release also supports MacOSX 10.6, but drops support
-  for 10.5.
-
-* Preliminary support for Android (on ARM).  Valgrind can now run
-  large applications (eg, Firefox) on (eg) a Samsung Nexus S.  See
-  README.android for more details, plus instructions on how to get
-  started.
-
-* Support for the IBM Power ISA 2.06 (Power7 instructions)
-
-* General correctness and performance improvements for ARM/Linux, and,
-  by extension, ARM/Android.
-
-* Further solidification of support for SSE 4.2 in 64-bit mode.  AVX
-  instruction set support is under development but is not available in
-  this release.
-
-* Support for AIX5 has been removed.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck: some incremental changes:
-
-  - reduction of memory use in some circumstances
-
-  - improved handling of freed memory, which in some circumstances 
-    can cause detection of use-after-free that would previously have
-    been missed
-
-  - fix of a longstanding bug that could cause false negatives (missed
-    errors) in programs doing vector saturated narrowing instructions.
-
-* Helgrind: performance improvements and major memory use reductions,
-  particularly for large, long running applications which perform many
-  synchronisation (lock, unlock, etc) events.  Plus many smaller
-  changes:
-
-  - display of locksets for both threads involved in a race
-
-  - general improvements in formatting/clarity of error messages
-
-  - addition of facilities and documentation regarding annotation
-    of thread safe reference counted C++ classes
-
-  - new flag --check-stack-refs=no|yes [yes], to disable race checking
-    on thread stacks (a performance hack)
-
-  - new flag --free-is-write=no|yes [no], to enable detection of races
-    where one thread accesses heap memory but another one frees it,
-    without any coordinating synchronisation event
-
-* DRD: enabled XML output; added support for delayed thread deletion
-  in order to detect races that occur close to the end of a thread
-  (--join-list-vol); fixed a memory leak triggered by repeated client
-  memory allocatation and deallocation; improved Darwin support.
-
-* exp-ptrcheck: this tool has been renamed to exp-sgcheck
-
-* exp-sgcheck: this tool has been reduced in scope so as to improve
-  performance and remove checking that Memcheck does better.
-  Specifically, the ability to check for overruns for stack and global
-  arrays is unchanged, but the ability to check for overruns of heap
-  blocks has been removed.  The tool has accordingly been renamed to
-  exp-sgcheck ("Stack and Global Array Checking").
-
-* ==================== OTHER CHANGES ====================
-
-* GDB server: Valgrind now has an embedded GDB server.  That means it
-  is possible to control a Valgrind run from GDB, doing all the usual
-  things that GDB can do (single stepping, breakpoints, examining
-  data, etc).  Tool-specific functionality is also available.  For
-  example, it is possible to query the definedness state of variables
-  or memory from within GDB when running Memcheck; arbitrarily large
-  memory watchpoints are supported, etc.  To use the GDB server, start
-  Valgrind with the flag --vgdb-error=0 and follow the on-screen
-  instructions.
-
-* Improved support for unfriendly self-modifying code: a new option
-  --smc-check=all-non-file is available.  This adds the relevant
-  consistency checks only to code that originates in non-file-backed
-  mappings.  In effect this confines the consistency checking only to
-  code that is or might be JIT generated, and avoids checks on code
-  that must have been compiled ahead of time.  This significantly
-  improves performance on applications that generate code at run time.
-
-* It is now possible to build a working Valgrind using Clang-2.9 on
-  Linux.
-
-* new client requests VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.
-  These enable and disable error reporting on a per-thread, and
-  nestable, basis.  This is useful for hiding errors in particularly
-  troublesome pieces of code.  The MPI wrapper library (libmpiwrap.c)
-  now uses this facility.
-
-* Added the --mod-funcname option to cg_diff.
-
-* ==================== FIXED BUGS ====================
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-mailing the developers (or mailing lists) directly -- bugs that are
-not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
- 79311  malloc silly arg warning does not give stack trace
-210935  port valgrind.h (not valgrind) to win32 to support client requests
-214223  valgrind SIGSEGV on startup gcc 4.4.1 ppc32 (G4) Ubuntu 9.10
-243404  Port to zSeries
-243935  Helgrind: incorrect handling of ANNOTATE_HAPPENS_BEFORE()/AFTER()
-247223  non-x86: Suppress warning: 'regparm' attribute directive ignored
-250101  huge "free" memory usage due to m_mallocfree.c fragmentation
-253206  Some fixes for the faultstatus testcase
-255223  capget testcase fails when running as root
-256703  xlc_dbl_u32.c testcase broken
-256726  Helgrind tests have broken inline asm 
-259977  == 214223 (Valgrind segfaults doing __builtin_longjmp)
-264800  testcase compile failure on zseries
-265762  make public VEX headers compilable by G++ 3.x
-265771  assertion in jumps.c (r11523) fails with glibc-2.3
-266753  configure script does not give the user the option to not use QtCore
-266931  gen_insn_test.pl is broken
-266961  ld-linux.so.2 i?86-linux strlen issues
-266990  setns instruction causes false positive
-267020  Make directory for temporary files configurable at run-time.
-267342  == 267997 (segmentation fault on Mac OS 10.6)
-267383  Assertion 'vgPlain_strlen(dir) + vgPlain_strlen(file) + 1 < 256' failed
-267413  Assertion 'DRD_(g_threadinfo)[tid].synchr_nesting >= 1' failed.
-267488  regtest: darwin support for 64-bit build
-267552  SIGSEGV (misaligned_stack_error) with DRD, but not with other tools
-267630  Add support for IBM Power ISA 2.06 -- stage 1
-267769  == 267997 (Darwin: memcheck triggers segmentation fault)
-267819  Add client request for informing the core about reallocation
-267925  laog data structure quadratic for a single sequence of lock
-267968  drd: (vgDrd_thread_set_joinable): Assertion '0 <= (int)tid ..' failed
-267997  MacOSX: 64-bit V segfaults on launch when built with Xcode 4.0.1
-268513  missed optimizations in fold_Expr
-268619  s390x: fpr - gpr transfer facility 
-268620  s390x: reconsider "long displacement" requirement 
-268621  s390x: improve IR generation for XC
-268715  s390x: FLOGR is not universally available
-268792  == 267997 (valgrind seg faults on startup when compiled with Xcode 4)
-268930  s390x: MHY is not universally available
-269078  arm->IR: unhandled instruction SUB (SP minus immediate/register) 
-269079  Support ptrace system call on ARM
-269144  missing "Bad option" error message
-269209  conditional load and store facility (z196)
-269354  Shift by zero on x86 can incorrectly clobber CC_NDEP
-269641  == 267997 (valgrind segfaults immediately (segmentation fault))
-269736  s390x: minor code generation tweaks
-269778  == 272986 (valgrind.h: swap roles of VALGRIND_DO_CLIENT_REQUEST() ..)
-269863  s390x: remove unused function parameters
-269864  s390x: tweak s390_emit_load_cc 
-269884  == 250101 (overhead for huge blocks exhausts space too soon)
-270082  s390x: Make sure to point the PSW address to the next address on SIGILL
-270115  s390x: rewrite some testcases
-270309  == 267997 (valgrind crash on startup)
-270320  add support for Linux FIOQSIZE ioctl() call
-270326  segfault while trying to sanitize the environment passed to execle
-270794  IBM POWER7 support patch causes regression in none/tests
-270851  IBM POWER7 fcfidus instruction causes memcheck to fail
-270856  IBM POWER7 xsnmaddadp instruction causes memcheck to fail on 32bit app 
-270925  hyper-optimized strspn() in /lib64/libc-2.13.so needs fix
-270959  s390x: invalid use of R0 as base register
-271042  VSX configure check fails when it should not 
-271043  Valgrind build fails with assembler error on ppc64 with binutils 2.21 
-271259  s390x: fix code confusion 
-271337  == 267997 (Valgrind segfaults on MacOS X)
-271385  s390x: Implement Ist_MBE 
-271501  s390x: misc cleanups 
-271504  s390x: promote likely and unlikely 
-271579  ppc: using wrong enum type 
-271615  unhandled instruction "popcnt" (arch=amd10h) 
-271730  Fix bug when checking ioctls: duplicate check 
-271776  s390x: provide STFLE instruction support 
-271779  s390x: provide clock instructions like STCK 
-271799  Darwin: ioctls without an arg report a memory error 
-271820  arm: fix type confusion 
-271917  pthread_cond_timedwait failure leads to not-locked false positive 
-272067  s390x: fix DISP20 macro 
-272615  A typo in debug output in mc_leakcheck.c
-272661  callgrind_annotate chokes when run from paths containing regex chars
-272893  amd64->IR: 0x66 0xF 0x38 0x2B 0xC1 0x66 0xF 0x7F == (closed as dup)
-272955  Unhandled syscall error for pwrite64 on ppc64 arch 
-272967  make documentation build-system more robust 
-272986  Fix gcc-4.6 warnings with valgrind.h
-273318  amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 (missing PCMPxSTRx case)
-273318  unhandled PCMPxSTRx case: vex amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 
-273431  valgrind segfaults in evalCfiExpr (debuginfo.c:2039)
-273465  Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && ...'
-273536  Build error: multiple definition of `vgDrd_pthread_cond_initializer'
-273640  ppc64-linux: unhandled syscalls setresuid(164) and setresgid(169)
-273729  == 283000 (Illegal opcode for SSE2 "roundsd" instruction)
-273778  exp-ptrcheck: unhandled sysno == 259
-274089  exp-ptrcheck: unhandled sysno == 208
-274378  s390x: Various dispatcher tweaks
-274447  WARNING: unhandled syscall: 340
-274776  amd64->IR: 0x66 0xF 0x38 0x2B 0xC5 0x66
-274784  == 267997 (valgrind ls -l results in Segmentation Fault)
-274926  valgrind does not build against linux-3
-275148  configure FAIL with glibc-2.14
-275151  Fedora 15 / glibc-2.14 'make regtest' FAIL
-275168  Make Valgrind work for MacOSX 10.7 Lion
-275212  == 275284 (lots of false positives from __memcpy_ssse3_back et al)
-275278  valgrind does not build on Linux kernel 3.0.* due to silly
-275284  Valgrind memcpy/memmove redirection stopped working in glibc 2.14/x86_64
-275308  Fix implementation for ppc64 fres instruc
-275339  s390x: fix testcase compile warnings
-275517  s390x: Provide support for CKSM instruction
-275710  s390x: get rid of redundant address mode calculation
-275815  == 247894 (Valgrind doesn't know about Linux readahead(2) syscall)
-275852  == 250101 (valgrind uses all swap space and is killed)
-276784  Add support for IBM Power ISA 2.06 -- stage 3
-276987  gdbsrv: fix tests following recent commits
-277045  Valgrind crashes with  unhandled DW_OP_ opcode 0x2a
-277199  The test_isa_2_06_part1.c in none/tests/ppc64 should be a symlink
-277471  Unhandled syscall: 340
-277610  valgrind crashes in VG_(lseek)(core_fd, phdrs[idx].p_offset, ...)
-277653  ARM: support Thumb2 PLD instruction
-277663  ARM: NEON float VMUL by scalar incorrect
-277689  ARM: tests for VSTn with register post-index are broken
-277694  ARM: BLX LR instruction broken in ARM mode
-277780  ARM: VMOV.F32 (immediate) instruction is broken
-278057  fuse filesystem syscall deadlocks
-278078  Unimplemented syscall 280 on ppc32
-278349  F_GETPIPE_SZ and  F_SETPIPE_SZ Linux fcntl commands
-278454  VALGRIND_STACK_DEREGISTER has wrong output type
-278502  == 275284 (Valgrind confuses memcpy() and memmove())
-278892  gdbsrv: factorize gdb version handling, fix doc and typos
-279027  Support for MVCL and CLCL instruction
-279027  s390x: Provide support for CLCL and MVCL instructions
-279062  Remove a redundant check in the insn selector for ppc.
-279071  JDK creates PTEST with redundant REX.W prefix
-279212  gdbsrv: add monitor cmd v.info scheduler.
-279378  exp-ptrcheck: the 'impossible' happened on mkfifo call
-279698  memcheck discards valid-bits for packuswb
-279795  memcheck reports uninitialised values for mincore on amd64
-279994  Add support for IBM Power ISA 2.06 -- stage 3
-280083  mempolicy syscall check errors
-280290  vex amd64->IR: 0x66 0xF 0x38 0x28 0xC1 0x66 0xF 0x6F
-280710  s390x: config files for nightly builds
-280757  /tmp dir still used by valgrind even if TMPDIR is specified
-280965  Valgrind breaks fcntl locks when program does mmap
-281138  WARNING: unhandled syscall: 340
-281241  == 275168 (valgrind useless on Macos 10.7.1 Lion)
-281304  == 275168 (Darwin: dyld "cannot load inserted library")
-281305  == 275168 (unhandled syscall: unix:357 on Darwin 11.1)
-281468  s390x: handle do_clone and gcc clones in call traces
-281488  ARM: VFP register corruption
-281828  == 275284 (false memmove warning: "Source and destination overlap")
-281883  s390x: Fix system call wrapper for "clone".
-282105  generalise 'reclaimSuperBlock' to also reclaim splittable superblock
-282112  Unhandled instruction bytes: 0xDE 0xD9 0x9B 0xDF (fcompp)
-282238  SLES10: make check fails
-282979  strcasestr needs replacement with recent(>=2.12) glibc
-283000  vex amd64->IR: 0x66 0xF 0x3A 0xA 0xC0 0x9 0xF3 0xF
-283243  Regression in ppc64 memcheck tests
-283325  == 267997 (Darwin: V segfaults on startup when built with Xcode 4.0)
-283427  re-connect epoll_pwait syscall on ARM linux
-283600  gdbsrv: android: port vgdb.c
-283709  none/tests/faultstatus needs to account for page size
-284305  filter_gdb needs enhancement to work on ppc64
-284384  clang 3.1 -Wunused-value warnings in valgrind.h, memcheck.h
-284472  Thumb2 ROR.W encoding T2 not implemented
-284621  XML-escape process command line in XML output
-n-i-bz  cachegrind/callgrind: handle CPUID information for Core iX Intel CPUs
-        that have non-power-of-2 sizes (also AMDs)
-n-i-bz  don't be spooked by libraries mashed by elfhack
-n-i-bz  don't be spooked by libxul.so linked with gold
-n-i-bz  improved checking for VALGRIND_CHECK_MEM_IS_DEFINED
-
-(3.7.0-TEST1: 27  October 2011, vex r2228, valgrind r12245)
-(3.7.0.RC1:    1 November 2011, vex r2231, valgrind r12257)
-(3.7.0:        5 November 2011, vex r2231, valgrind r12258)
-
-
-
-Release 3.6.1 (16 February 2011)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.6.1 is a bug fix release.  It adds support for some SSE4
-instructions that were omitted in 3.6.0 due to lack of time.  Initial
-support for glibc-2.13 has been added.  A number of bugs causing
-crashing or assertion failures have been fixed.
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-mailing the developers (or mailing lists) directly -- bugs that are
-not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-188572  Valgrind on Mac should suppress setenv() mem leak
-194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 (proper FX{SAVE,RSTOR} support)
-210481  vex amd64->IR: Assertion `sz == 2 || sz == 4' failed (REX.W POPQ)
-246152  callgrind internal error after pthread_cancel on 32 Bit Linux
-250038  ppc64: Altivec LVSR and LVSL instructions fail their regtest
-254420  memory pool tracking broken 
-254957  Test code failing to compile due to changes in memcheck.h
-255009  helgrind/drd: crash on chmod with invalid parameter
-255130  readdwarf3.c parse_type_DIE confused by GNAT Ada types
-255355  helgrind/drd: crash on threaded programs doing fork
-255358  == 255355
-255418  (SSE4.x) rint call compiled with ICC
-255822  --gen-suppressions can create invalid files: "too many callers [...]"
-255888  closing valgrindoutput tag outputted to log-stream on error
-255963  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x9 0xDB 0x0 (ROUNDPD)
-255966  Slowness when using mempool annotations
-256387  vex x86->IR: 0xD4 0xA 0x2 0x7 (AAD and AAM)
-256600  super-optimized strcasecmp() false positive
-256669  vex amd64->IR: Unhandled LOOPNEL insn on amd64
-256968  (SSE4.x) vex amd64->IR: 0x66 0xF 0x38 0x10 0xD3 0x66 (BLENDVPx)
-257011  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0xE 0xFD 0xA0 (PBLENDW)
-257063  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x8 0xC0 0x0 (ROUNDPS)
-257276  Missing case in memcheck --track-origins=yes
-258870  (SSE4.x) Add support for EXTRACTPS SSE 4.1 instruction
-261966  (SSE4.x) support for CRC32B and CRC32Q is lacking (also CRC32{W,L})
-262985  VEX regression in valgrind 3.6.0 in handling PowerPC VMX
-262995  (SSE4.x) crash when trying to valgrind gcc-snapshot (PCMPxSTRx $0)
-263099  callgrind_annotate counts Ir improperly [...]
-263877  undefined coprocessor instruction on ARMv7
-265964  configure FAIL with glibc-2.13
-n-i-bz  Fix compile error w/ icc-12.x in guest_arm_toIR.c
-n-i-bz  Docs: fix bogus descriptions for VALGRIND_CREATE_BLOCK et al
-n-i-bz  Massif: don't assert on shmat() with --pages-as-heap=yes
-n-i-bz  Bug fixes and major speedups for the exp-DHAT space profiler
-n-i-bz  DRD: disable --free-is-write due to implementation difficulties
-
-(3.6.1: 16 February 2011, vex r2103, valgrind r11561).
-
-
-
-Release 3.6.0 (21 October 2010)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.6.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, X86/Darwin and AMD64/Darwin.  Support for recent distros
-and toolchain components (glibc 2.12, gcc 4.5, OSX 10.6) has been added.
-
-                    -------------------------
-
-Here are some highlights.  Details are shown further down:
-
-* Support for ARM/Linux.
-
-* Support for recent Linux distros: Ubuntu 10.10 and Fedora 14.
-
-* Support for Mac OS X 10.6, both 32- and 64-bit executables.
-
-* Support for the SSE4.2 instruction set.
-
-* Enhancements to the Callgrind profiler, including the ability to
-  handle CPUs with three levels of cache.
-
-* A new experimental heap profiler, DHAT.
-
-* A huge number of bug fixes and small enhancements.
-
-                    -------------------------
-
-Here are details of the above changes, together with descriptions of
-many other changes, and a list of fixed bugs.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for ARM/Linux.  Valgrind now runs on ARMv7 capable CPUs
-  running Linux.  It is known to work on Ubuntu 10.04, Ubuntu 10.10,
-  and Maemo 5, so you can run Valgrind on your Nokia N900 if you want.
-
-  This requires a CPU capable of running the ARMv7-A instruction set
-  (Cortex A5, A8 and A9).  Valgrind provides fairly complete coverage
-  of the user space instruction set, including ARM and Thumb integer
-  code, VFPv3, NEON and V6 media instructions.  The Memcheck,
-  Cachegrind and Massif tools work properly; other tools work to
-  varying degrees.
-
-* Support for recent Linux distros (Ubuntu 10.10 and Fedora 14), along
-  with support for recent releases of the underlying toolchain
-  components, notably gcc-4.5 and glibc-2.12.
-
-* Support for Mac OS X 10.6, both 32- and 64-bit executables.  64-bit
-  support also works much better on OS X 10.5, and is as solid as
-  32-bit support now.
-
-* Support for the SSE4.2 instruction set.  SSE4.2 is supported in
-  64-bit mode.  In 32-bit mode, support is only available up to and
-  including SSSE3.  Some exceptions: SSE4.2 AES instructions are not
-  supported in 64-bit mode, and 32-bit mode does in fact support the
-  bare minimum SSE4 instructions to needed to run programs on Mac OS X
-  10.6 on 32-bit targets.
-
-* Support for IBM POWER6 cpus has been improved.  The Power ISA up to
-  and including version 2.05 is supported.
-
-* ==================== TOOL CHANGES ====================
-
-* 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.
-
-* DRD has 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 tracing of all memory allocations and
-  deallocations.
-
-* DRD has several new annotations.  Custom barrier implementations can
-  now be annotated, as well as benign races on static variables.
-
-* DRD's happens before / happens after annotations have been made more
-  powerful, so that they can now also be used to annotate e.g. a smart
-  pointer implementation.
-
-* Helgrind's annotation set has also been drastically improved, so as
-  to provide to users a general set of annotations to describe locks,
-  semaphores, barriers and condition variables.  Annotations to
-  describe thread-safe reference counted heap objects have also been
-  added.
-
-* Memcheck has a new command-line option, --show-possibly-lost, which
-  is enabled by default.  When disabled, the leak detector will not
-  show possibly-lost blocks.
-
-* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),
-  has been added.  DHAT keeps track of allocated heap blocks, and also
-  inspects every memory reference to see which block (if any) is being
-  accessed.  This gives a lot of insight into block lifetimes,
-  utilisation, turnover, liveness, and the location of hot and cold
-  fields.  You can use DHAT to do hot-field profiling.
-
-* ==================== OTHER CHANGES ====================
-
-* Improved support for unfriendly self-modifying code: the extra
-  overhead incurred by --smc-check=all has been reduced by
-  approximately a factor of 5 as compared with 3.5.0.
-
-* Ability to show directory names for source files in error messages.
-  This is combined with a flexible mechanism for specifying which
-  parts of the paths should be shown.  This is enabled by the new flag
-  --fullpath-after.
-
-* A new flag, --require-text-symbol, which will stop the run if a
-  specified symbol is not found it a given shared object when it is
-  loaded into the process.  This makes advanced working with function
-  intercepting and wrapping safer and more reliable.
-
-* Improved support for the Valkyrie GUI, version 2.0.0.  GUI output
-  and control of Valgrind is now available for the tools Memcheck and
-  Helgrind.  XML output from Valgrind is available for Memcheck,
-  Helgrind and exp-Ptrcheck.
-
-* More reliable stack unwinding on amd64-linux, particularly in the
-  presence of function wrappers, and with gcc-4.5 compiled code.
-
-* Modest scalability (performance improvements) for massive
-  long-running applications, particularly for those with huge amounts
-  of code.
-
-* 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.
-
-* A rare but serious error in the 64-bit x86 CPU simulation was fixed.
-  The 32-bit simulator was not affected.  This did not occur often,
-  but when it did would usually crash the program under test.
-  Bug 245925.
-
-* A large number of bugs were fixed.  These are shown below.
-
-* A number of bugs were investigated, and were candidates for fixing,
-  but are not fixed in 3.6.0, due to lack of developer time.  They may
-  get fixed in later releases.  They are:
-
-  194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 0x24 0x49  (FXSAVE64)
-  212419  false positive "lock order violated" (A+B vs A) 
-  213685  Undefined value propagates past dependency breaking instruction
-  216837  Incorrect instrumentation of NSOperationQueue on Darwin 
-  237920  valgrind segfault on fork failure 
-  242137  support for code compiled by LLVM-2.8
-  242423  Another unknown Intel cache config value 
-  243232  Inconsistent Lock Orderings report with trylock 
-  243483  ppc: callgrind triggers VEX assertion failure 
-  243935  Helgrind: implementation of ANNOTATE_HAPPENS_BEFORE() is wrong
-  244677  Helgrind crash hg_main.c:616 (map_threads_lookup): Assertion
-          'thr' failed. 
-  246152  callgrind internal error after pthread_cancel on 32 Bit Linux 
-  249435  Analyzing wine programs with callgrind triggers a crash 
-  250038  ppc64: Altivec lvsr and lvsl instructions fail their regtest
-  250065  Handling large allocations 
-  250101  huge "free" memory usage due to m_mallocfree.c
-          "superblocks fragmentation"
-  251569  vex amd64->IR: 0xF 0x1 0xF9 0x8B 0x4C 0x24 (RDTSCP)
-  252091  Callgrind on ARM does not detect function returns correctly
-  252600  [PATCH] Allow lhs to be a pointer for shl/shr
-  254420  memory pool tracking broken
-  n-i-bz  support for adding symbols for JIT generated code
-
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-mailing the developers (or mailing lists) directly -- bugs that are
-not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-135264  dcbzl instruction missing
-142688  == 250799
-153699  Valgrind should report unaligned reads with movdqa
-180217  == 212335
-190429  Valgrind reports lost of errors in ld.so
-        with x86_64 2.9.90 glibc 
-197266  valgrind appears to choke on the xmms instruction
-        "roundsd" on x86_64 
-197988  Crash when demangling very large symbol names
-202315  unhandled syscall: 332 (inotify_init1)
-203256  Add page-level profiling to Massif
-205093  dsymutil=yes needs quotes, locking (partial fix)
-205241  Snow Leopard 10.6 support (partial fix)
-206600  Leak checker fails to upgrade indirect blocks when their
-        parent becomes reachable 
-210935  port valgrind.h (not valgrind) to win32 so apps run under
-        wine can make client requests
-211410  vex amd64->IR: 0x15 0xFF 0xFF 0x0 0x0 0x89
-        within Linux ip-stack checksum functions 
-212335  unhandled instruction bytes: 0xF3 0xF 0xBD 0xC0
-        (lzcnt %eax,%eax) 
-213685  Undefined value propagates past dependency breaking instruction
-        (partial fix)
-215914  Valgrind inserts bogus empty environment variable 
-217863  == 197988
-219538  adjtimex syscall wrapper wrong in readonly adjtime mode 
-222545  shmat fails under valgind on some arm targets 
-222560  ARM NEON support 
-230407  == 202315
-231076  == 202315
-232509  Docs build fails with formatting inside <title></title> elements 
-232793  == 202315
-235642  [PATCH] syswrap-linux.c: support evdev EVIOCG* ioctls 
-236546  vex x86->IR: 0x66 0xF 0x3A 0xA
-237202  vex amd64->IR: 0xF3 0xF 0xB8 0xC0 0x49 0x3B 
-237371  better support for VALGRIND_MALLOCLIKE_BLOCK 
-237485  symlink (syscall 57) is not supported on Mac OS 
-237723  sysno == 101 exp-ptrcheck: the 'impossible' happened:
-        unhandled syscall 
-238208  is_just_below_ESP doesn't take into account red-zone 
-238345  valgrind passes wrong $0 when executing a shell script 
-238679  mq_timedreceive syscall doesn't flag the reception buffer
-        as "defined"
-238696  fcntl command F_DUPFD_CLOEXEC not supported 
-238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 
-238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 
-238745  3.5.0 Make fails on PPC Altivec opcodes, though configure
-        says "Altivec off"
-239992  vex amd64->IR: 0x48 0xF 0xC4 0xC1 0x0 0x48 
-240488  == 197988
-240639  == 212335
-241377  == 236546
-241903  == 202315
-241920  == 212335
-242606  unhandled syscall: setegid (in Ptrcheck)
-242814  Helgrind "Impossible has happened" during
-        QApplication::initInstance(); 
-243064  Valgrind attempting to read debug information from iso 
-243270  Make stack unwinding in Valgrind wrappers more reliable
-243884  exp-ptrcheck: the 'impossible happened: unhandled syscall 
-        sysno = 277 (mq_open)
-244009  exp-ptrcheck unknown syscalls in analyzing lighttpd
-244493  ARM VFP d16-d31 registers support 
-244670  add support for audit_session_self syscall on Mac OS 10.6
-244921  The xml report of helgrind tool is not well format
-244923  In the xml report file, the <preamble> not escape the 
-        xml char, eg '<','&','>'
-245535  print full path names in plain text reports 
-245925  x86-64 red zone handling problem 
-246258  Valgrind not catching integer underruns + new [] s
-246311  reg/reg cmpxchg doesn't work on amd64
-246549  unhandled syscall unix:277 while testing 32-bit Darwin app 
-246888  Improve Makefile.vex.am 
-247510  [OS X 10.6] Memcheck reports unaddressable bytes passed 
-        to [f]chmod_extended
-247526  IBM POWER6 (ISA 2.05) support is incomplete
-247561  Some leak testcases fails due to reachable addresses in
-        caller save regs
-247875  sizeofIRType to handle Ity_I128 
-247894  [PATCH] unhandled syscall sys_readahead 
-247980  Doesn't honor CFLAGS passed to configure 
-248373  darwin10.supp is empty in the trunk 
-248822  Linux FIBMAP ioctl has int parameter instead of long
-248893  [PATCH] make readdwarf.c big endianess safe to enable
-        unwinding on big endian systems
-249224  Syscall 336 not supported (SYS_proc_info) 
-249359  == 245535
-249775  Incorrect scheme for detecting NEON capabilities of host CPU
-249943  jni JVM init fails when using valgrind
-249991  Valgrind incorrectly declares AESKEYGENASSIST support
-        since VEX r2011
-249996  linux/arm: unhandled syscall: 181 (__NR_pwrite64)
-250799  frexp$fenv_access_off function generates SIGILL 
-250998  vex x86->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x2E 
-251251  support pclmulqdq insn 
-251362  valgrind: ARM: attach to debugger either fails or provokes
-        kernel oops 
-251674  Unhandled syscall 294
-251818  == 254550
-
-254257  Add support for debugfiles found by build-id
-254550  [PATCH] Implement DW_ATE_UTF (DWARF4)
-254646  Wrapped functions cause stack misalignment on OS X
-        (and possibly Linux)
-254556  ARM: valgrinding anything fails with SIGSEGV for 0xFFFF0FA0
-
-(3.6.0: 21 October 2010, vex r2068, valgrind r11471).
-
-
-
-Release 3.5.0 (19 August 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.5.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.  The main improvement is that Valgrind
-now works on Mac OS X.
-
-This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux
-and X86/Darwin.  Support for recent distros and toolchain components
-(glibc 2.10, gcc 4.5) has been added.
-
-                    -------------------------
-
-Here is a short summary of the changes.  Details are shown further
-down:
-
-* Support for Mac OS X (10.5.x).
-
-* Improvements and simplifications to Memcheck's leak checker.
-
-* Clarification and simplifications in various aspects of Valgrind's
-  text output.
-
-* XML output for Helgrind and Ptrcheck.
-
-* Performance and stability improvements for Helgrind and DRD.
-
-* Genuinely atomic support for x86/amd64/ppc atomic instructions.
-
-* A new experimental tool, BBV, useful for computer architecture
-  research.
-
-* Improved Wine support, including ability to read Windows PDB
-  debuginfo.
-
-                    -------------------------
-
-Here are details of the above changes, followed by descriptions of
-many other minor changes, and a list of fixed bugs.
-
-
-* Valgrind now runs on Mac OS X.  (Note that Mac OS X is sometimes
-  called "Darwin" because that is the name of the OS core, which is the
-  level that Valgrind works at.)
-
-  Supported systems:
-
-  - It requires OS 10.5.x (Leopard).  Porting to 10.4.x is not planned
-    because it would require work and 10.4 is only becoming less common.
-
-  - 32-bit programs on x86 and AMD64 (a.k.a x86-64) machines are supported
-    fairly well.  For 10.5.x, 32-bit programs are the default even on
-    64-bit machines, so it handles most current programs.
-    
-  - 64-bit programs on x86 and AMD64 (a.k.a x86-64) machines are not
-    officially supported, but simple programs at least will probably work.
-    However, start-up is slow.
-
-  - PowerPC machines are not supported.
-
-  Things that don't work:
-
-  - The Ptrcheck tool.
-
-  - Objective-C garbage collection.
-
-  - --db-attach=yes.
-
-  - If you have Rogue Amoeba's "Instant Hijack" program installed,
-    Valgrind will fail with a SIGTRAP at start-up.  See
-    https://bugs.kde.org/show_bug.cgi?id=193917 for details and a
-    simple work-around.
-
-  Usage notes:
-
-  - You will likely find --dsymutil=yes a useful option, as error
-    messages may be imprecise without it.
-
-  - Mac OS X support is new and therefore will be less robust than the
-    Linux support.  Please report any bugs you find.
-
-  - Threaded programs may run more slowly than on Linux.
-
-  Many thanks to Greg Parker for developing this port over several years.
-
-
-* Memcheck's leak checker has been improved.  
-
-  - The results for --leak-check=summary now match the summary results
-    for --leak-check=full.  Previously they could differ because
-    --leak-check=summary counted "indirectly lost" blocks and
-    "suppressed" blocks as "definitely lost".
-
-  - Blocks that are only reachable via at least one interior-pointer,
-    but are directly pointed to by a start-pointer, were previously
-    marked as "still reachable".  They are now correctly marked as
-    "possibly lost".
-
-  - The default value for the --leak-resolution option has been
-    changed from "low" to "high".  In general, this means that more
-    leak reports will be produced, but each leak report will describe
-    fewer leaked blocks.
-
-  - With --leak-check=full, "definitely lost" and "possibly lost"
-    leaks are now considered as proper errors, ie. they are counted
-    for the "ERROR SUMMARY" and affect the behaviour of
-    --error-exitcode.  These leaks are not counted as errors if
-    --leak-check=summary is specified, however.
-
-  - Documentation for the leak checker has been improved.
-
-
-* Various aspects of Valgrind's text output have changed.
-
-  - Valgrind's start-up message has changed.  It is shorter but also
-    includes the command being run, which makes it easier to use
-    --trace-children=yes.  An example:
-
-  - Valgrind's shut-down messages have also changed.  This is most
-    noticeable with Memcheck, where the leak summary now occurs before
-    the error summary.  This change was necessary to allow leaks to be
-    counted as proper errors (see the description of the leak checker
-    changes above for more details).  This was also necessary to fix a
-    longstanding bug in which uses of suppressions against leaks were
-    not "counted", leading to difficulties in maintaining suppression
-    files (see https://bugs.kde.org/show_bug.cgi?id=186790).
-
-  - Behavior of -v has changed.  In previous versions, -v printed out
-    a mixture of marginally-user-useful information, and tool/core
-    statistics.  The statistics printing has now been moved to its own
-    flag, --stats=yes.  This means -v is less verbose and more likely
-    to convey useful end-user information.
-
-  - The format of some (non-XML) stack trace entries has changed a
-    little.  Previously there were six possible forms:
-
-      0x80483BF: really (a.c:20)
-      0x80483BF: really (in /foo/a.out)
-      0x80483BF: really
-      0x80483BF: (within /foo/a.out)
-      0x80483BF: ??? (a.c:20)
-      0x80483BF: ???
-
-    The third and fourth of these forms have been made more consistent
-    with the others.  The six possible forms are now:
-  
-      0x80483BF: really (a.c:20)
-      0x80483BF: really (in /foo/a.out)
-      0x80483BF: really (in ???)
-      0x80483BF: ??? (in /foo/a.out)
-      0x80483BF: ??? (a.c:20)
-      0x80483BF: ???
-
-    Stack traces produced when --xml=yes is specified are different
-    and unchanged.
-
-
-* Helgrind and Ptrcheck now support XML output, so they can be used
-  from GUI tools.  Also, the XML output mechanism has been
-  overhauled.
-
-  - The XML format has been overhauled and generalised, so it is more
-    suitable for error reporting tools in general.  The Memcheck
-    specific aspects of it have been removed.  The new format, which
-    is an evolution of the old format, is described in
-    docs/internals/xml-output-protocol4.txt.
-
-  - Memcheck has been updated to use the new format.
-
-  - Helgrind and Ptrcheck are now able to emit output in this format.
-
-  - The XML output mechanism has been overhauled.  XML is now output
-    to its own file descriptor, which means that:
-
-    * Valgrind can output text and XML independently.
-
-    * The longstanding problem of XML output being corrupted by 
-      unexpected un-tagged text messages  is solved.
-
-    As before, the destination for text output is specified using
-    --log-file=, --log-fd= or --log-socket=.
-
-    As before, XML output for a tool is enabled using --xml=yes.
-
-    Because there's a new XML output channel, the XML output
-    destination is now specified by --xml-file=, --xml-fd= or
-    --xml-socket=.
-
-    Initial feedback has shown this causes some confusion.  To
-    clarify, the two envisaged usage scenarios are:
-
-    (1) Normal text output.  In this case, do not specify --xml=yes
-        nor any of --xml-file=, --xml-fd= or --xml-socket=.
-
-    (2) XML output.  In this case, specify --xml=yes, and one of
-        --xml-file=, --xml-fd= or --xml-socket= to select the XML
-        destination, one of --log-file=, --log-fd= or --log-socket=
-        to select the destination for any remaining text messages,
-        and, importantly, -q.
-
-        -q makes Valgrind completely silent on the text channel,
-        except in the case of critical failures, such as Valgrind
-        itself segfaulting, or failing to read debugging information.
-        Hence, in this scenario, it suffices to check whether or not
-        any output appeared on the text channel.  If yes, then it is
-        likely to be a critical error which should be brought to the
-        attention of the user.  If no (the text channel produced no
-        output) then it can be assumed that the run was successful.
-
-        This allows GUIs to make the critical distinction they need to
-        make (did the run fail or not?) without having to search or
-        filter the text output channel in any way.
-
-    It is also recommended to use --child-silent-after-fork=yes in
-    scenario (2).
-
-
-* Improvements and changes in Helgrind:
-
-  - XML output, as described above
-
-  - Checks for consistent association between pthread condition
-    variables and their associated mutexes are now performed.
-
-  - pthread_spinlock functions are supported.
-
-  - Modest performance improvements.
-
-  - Initial (skeletal) support for describing the behaviour of
-    non-POSIX synchronisation objects through ThreadSanitizer
-    compatible ANNOTATE_* macros.
-
-  - More controllable tradeoffs between performance and the level of
-    detail of "previous" accesses in a race.  There are now three
-    settings:
-
-    * --history-level=full.  This is the default, and was also the
-      default in 3.4.x.  It shows both stacks involved in a race, but
-      requires a lot of memory and can be very slow in programs that
-      do many inter-thread synchronisation events.
-
-    * --history-level=none.  This only shows the later stack involved
-      in a race.  This can be much faster than --history-level=full,
-      but makes it much more difficult to find the other access
-      involved in the race.
-
-    The new intermediate setting is
-
-    * --history-level=approx
-
-      For the earlier (other) access, two stacks are presented.  The
-      earlier access is guaranteed to be somewhere in between the two
-      program points denoted by those stacks.  This is not as useful
-      as showing the exact stack for the previous access (as per
-      --history-level=full), but it is better than nothing, and it's
-      almost as fast as --history-level=none.
-
-
-* New features and improvements in DRD:
-
-  - The error messages printed by DRD are now easier to interpret.
-    Instead of using two different numbers to identify each thread
-    (Valgrind thread ID and DRD thread ID), DRD does now identify
-    threads via a single number (the DRD thread ID).  Furthermore
-    "first observed at" information is now printed for all error
-    messages related to synchronization objects.
-
-  - Added support for named semaphores (sem_open() and sem_close()).
-
-  - Race conditions between pthread_barrier_wait() and
-    pthread_barrier_destroy() calls are now reported.
-
-  - Added support for custom allocators through the macros
-    VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
-    in <valgrind/valgrind.h>). An alternative for these two macros is
-    the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
-    <valgrind/drd.h>).
-
-  - Added support for annotating non-POSIX synchronization objects
-    through several new ANNOTATE_*() macros.
-
-  - OpenMP: added support for the OpenMP runtime (libgomp) included
-    with gcc versions 4.3.0 and 4.4.0.
-
-  - Faster operation.
-
-  - Added two new command-line options (--first-race-only and
-    --segment-merging-interval).
-
-
-* Genuinely atomic support for x86/amd64/ppc atomic instructions
-
-  Valgrind will now preserve (memory-access) atomicity of LOCK-
-  prefixed x86/amd64 instructions, and any others implying a global
-  bus lock.  Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
-
-  This means that Valgrinded processes will "play nicely" in
-  situations where communication with other processes, or the kernel,
-  is done through shared memory and coordinated with such atomic
-  instructions.  Prior to this change, such arrangements usually
-  resulted in hangs, races or other synchronisation failures, because
-  Valgrind did not honour atomicity of such instructions.
-
-
-* A new experimental tool, BBV, has been added.  BBV generates basic
-  block vectors for use with the SimPoint analysis tool, which allows
-  a program's overall behaviour to be approximated by running only a
-  fraction of it.  This is useful for computer architecture
-  researchers.  You can run BBV by specifying --tool=exp-bbv (the
-  "exp-" prefix is short for "experimental").  BBV was written by
-  Vince Weaver.
-
-
-* Modestly improved support for running Windows applications under
-  Wine.  In particular, initial support for reading Windows .PDB debug
-  information has been added.
-
-
-* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been
-  added.  It is similar to VALGRIND_COUNT_LEAKS but counts blocks
-  instead of bytes.
-
-
-* The Valgrind client requests VALGRIND_PRINTF and
-  VALGRIND_PRINTF_BACKTRACE have been changed slightly.  Previously,
-  the string was always printed immediately on its own line.  Now, the
-  string will be added to a buffer but not printed until a newline is
-  encountered, or other Valgrind output is printed (note that for
-  VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered
-  "other Valgrind output").  This allows you to use multiple
-  VALGRIND_PRINTF calls to build up a single output line, and also to
-  print multiple output lines with a single request (by embedding
-  multiple newlines in the string).
-
-
-* The graphs drawn by Massif's ms_print program have changed slightly:
-
-  - The half-height chars '.' and ',' are no longer drawn, because
-    they are confusing.  The --y option can be used if the default
-    y-resolution is not high enough.
-
-  - Horizontal lines are now drawn after the top of a snapshot if
-    there is a gap until the next snapshot.  This makes it clear that
-    the memory usage has not dropped to zero between snapshots.
-
-
-* Something that happened in 3.4.0, but wasn't clearly announced: the
-  option --read-var-info=yes can be used by some tools (Memcheck,
-  Helgrind and DRD).  When enabled, it causes Valgrind to read DWARF3
-  variable type and location information.  This makes those tools
-  start up more slowly and increases memory consumption, but
-  descriptions of data addresses in error messages become more
-  detailed.
-
-
-* exp-Omega, an experimental instantaneous leak-detecting tool, was
-  disabled in 3.4.0 due to a lack of interest and maintenance,
-  although the source code was still in the distribution.  The source
-  code has now been removed from the distribution.  For anyone
-  interested, the removal occurred in SVN revision r10247.
-
-
-* Some changes have been made to the build system.
-
-  - VEX/ is now integrated properly into the build system.  This means
-    that dependency tracking within VEX/ now works properly, "make
-    install" will work without requiring "make" before it, and
-    parallel builds (ie. 'make -j') now work (previously a
-    .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'
-    was effectively ignored).
-
-  - The --with-vex configure option has been removed.  It was of
-    little use and removing it simplified the build system.
-
-  - The location of some install files has changed.  This should not
-    affect most users.  Those who might be affected:
-
-    * For people who use Valgrind with MPI programs, the installed
-      libmpiwrap.so library has moved from
-      $(INSTALL)/<platform>/libmpiwrap.so to
-      $(INSTALL)/libmpiwrap-<platform>.so.
-
-    * For people who distribute standalone Valgrind tools, the
-      installed libraries such as $(INSTALL)/<platform>/libcoregrind.a
-      have moved to $(INSTALL)/libcoregrind-<platform>.a.
-
-    These changes simplify the build system.
-
-  - Previously, all the distributed suppression (*.supp) files were
-    installed.  Now, only default.supp is installed.  This should not
-    affect users as the other installed suppression files were not
-    read; the fact that they were installed was a mistake.
-
-
-* KNOWN LIMITATIONS:
-
-  - Memcheck is unusable with the Intel compiler suite version 11.1,
-    when it generates code for SSE2-and-above capable targets.  This
-    is because of icc's use of highly optimised inlined strlen
-    implementations.  It causes Memcheck to report huge numbers of
-    false errors even in simple programs.  Helgrind and DRD may also
-    have problems.
-
-    Versions 11.0 and earlier may be OK, but this has not been
-    properly tested.
-
-
-The following bugs have been fixed or resolved.  Note that "n-i-bz"
-stands for "not in bugzilla" -- that is, a bug that was reported to us
-but never got a bugzilla entry.  We encourage you to file bugs in
-bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-mailing the developers (or mailing lists) directly -- bugs that are
-not entered into bugzilla tend to get forgotten about or ignored.
-
-To see details of a given bug, visit
-https://bugs.kde.org/show_bug.cgi?id=XXXXXX
-where XXXXXX is the bug number as listed below.
-
-84303   How about a LockCheck tool? 
-91633   dereference of null ptr in vgPlain_st_basetype 
-97452   Valgrind doesn't report any pthreads problems 
-100628  leak-check gets assertion failure when using 
-        VALGRIND_MALLOCLIKE_BLOCK on malloc()ed memory 
-108528  NPTL pthread cleanup handlers not called 
-110126  Valgrind 2.4.1 configure.in tramples CFLAGS 
-110128  mallinfo is not implemented... 
-110770  VEX: Generated files not always updated when making valgrind
-111102  Memcheck: problems with large (memory footprint) applications 
-115673  Vex's decoder should never assert 
-117564  False positive: Syscall param clone(child_tidptr) contains
-        uninitialised byte(s) 
-119404  executing ssh from inside valgrind fails 
-133679  Callgrind does not write path names to sources with dwarf debug
-        info
-135847  configure.in problem with non gnu compilers (and possible fix) 
-136154  threads.c:273 (vgCallgrind_post_signal): Assertion
-        '*(vgCallgrind_current_fn_stack.top) == 0' failed. 
-136230  memcheck reports "possibly lost", should be "still reachable" 
-137073  NULL arg to MALLOCLIKE_BLOCK causes crash 
-137904  Valgrind reports a memory leak when using POSIX threads,
-        while it shouldn't 
-139076  valgrind VT_GETSTATE error 
-142228  complaint of elf_dynamic_do_rela in trivial usage 
-145347  spurious warning with USBDEVFS_REAPURB 
-148441  (wine) can't find memory leak in Wine, win32 binary 
-        executable file.
-148742  Leak-check fails assert on exit 
-149878  add (proper) check for calloc integer overflow 
-150606  Call graph is broken when using callgrind control 
-152393  leak errors produce an exit code of 0. I need some way to 
-        cause leak errors to result in a nonzero exit code. 
-157154  documentation (leak-resolution doc speaks about num-callers
-        def=4) + what is a loss record
-159501  incorrect handling of ALSA ioctls 
-162020  Valgrinding an empty/zero-byte file crashes valgrind 
-162482  ppc: Valgrind crashes while reading stabs information 
-162718  x86: avoid segment selector 0 in sys_set_thread_area() 
-163253  (wine) canonicaliseSymtab forgot some fields in DiSym 
-163560  VEX/test_main.c is missing from valgrind-3.3.1 
-164353  malloc_usable_size() doesn't return a usable size 
-165468  Inconsistent formatting in memcheck manual -- please fix 
-169505  main.c:286 (endOfInstr):
-        Assertion 'ii->cost_offset == *cost_offset' failed 
-177206  Generate default.supp during compile instead of configure
-177209  Configure valt_load_address based on arch+os 
-177305  eventfd / syscall 323 patch lost
-179731  Tests fail to build because of inlining of non-local asm labels
-181394  helgrind: libhb_core.c:3762 (msm_write): Assertion 
-        'ordxx == POrd_EQ || ordxx == POrd_LT' failed. 
-181594  Bogus warning for empty text segment 
-181707  dwarf doesn't require enumerations to have name 
-185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64 
-185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
-        Assertion '!already_present' failed.
-185359  exp-ptrcheck: unhandled syscall getresuid()
-185794  "WARNING: unhandled syscall: 285" (fallocate) on x86_64
-185816  Valgrind is unable to handle debug info for files with split
-        debug info that are prelinked afterwards 
-185980  [darwin] unhandled syscall: sem_open 
-186238  bbToIR_AMD64: disInstr miscalculated next %rip
-186507  exp-ptrcheck unhandled syscalls prctl, etc. 
-186790  Suppression pattern used for leaks are not reported 
-186796  Symbols with length>200 in suppression files are ignored 
-187048  drd: mutex PTHREAD_PROCESS_SHARED attribute missinterpretation
-187416  exp-ptrcheck: support for __NR_{setregid,setreuid,setresuid}
-188038  helgrind: hg_main.c:926: mk_SHVAL_fail: the 'impossible' happened
-188046  bashisms in the configure script
-188127  amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA
-188161  memcheck: --track-origins=yes asserts "mc_machine.c:672
-        (get_otrack_shadow_offset_wrk): the 'impossible' happened."
-188248  helgrind: pthread_cleanup_push, pthread_rwlock_unlock, 
-        assertion fail "!lock->heldBy" 
-188427  Add support for epoll_create1 (with patch) 
-188530  Support for SIOCGSTAMPNS
-188560  Include valgrind.spec in the tarball
-188572  Valgrind on Mac should suppress setenv() mem leak 
-189054  Valgrind fails to build because of duplicate non-local asm labels 
-189737  vex amd64->IR: unhandled instruction bytes: 0xAC
-189762  epoll_create syscall not handled (--tool=exp-ptrcheck)
-189763  drd assertion failure: s_threadinfo[tid].is_recording 
-190219  unhandled syscall: 328 (x86-linux)
-190391  dup of 181394; see above
-190429  Valgrind reports lots of errors in ld.so with x86_64 2.9.90 glibc 
-190820  No debug information on powerpc-linux
-191095  PATCH: Improve usbdevfs ioctl handling 
-191182  memcheck: VALGRIND_LEAK_CHECK quadratic when big nr of chunks
-        or big nr of errors
-191189  --xml=yes should obey --gen-suppressions=all 
-191192  syslog() needs a suppression on macosx 
-191271  DARWIN: WARNING: unhandled syscall: 33554697 a.k.a.: 265 
-191761  getrlimit on MacOSX 
-191992  multiple --fn-skip only works sometimes; dependent on order 
-192634  V. reports "aspacem sync_check_mapping_callback: 
-        segment mismatch" on Darwin
-192954  __extension__ missing on 2 client requests 
-194429  Crash at start-up with glibc-2.10.1 and linux-2.6.29 
-194474  "INSTALL" file has different build instructions than "README"
-194671  Unhandled syscall (sem_wait?) from mac valgrind 
-195069  memcheck: reports leak (memory still reachable) for 
-        printf("%d', x) 
-195169  drd: (vgDrd_barrier_post_wait):
-        Assertion 'r->sg[p->post_iteration]' failed. 
-195268  valgrind --log-file doesn't accept ~/...
-195838  VEX abort: LibVEX_N_SPILL_BYTES too small for CPUID boilerplate 
-195860  WARNING: unhandled syscall: unix:223 
-196528  need a error suppression for pthread_rwlock_init under os x? 
-197227  Support aio_* syscalls on Darwin
-197456  valgrind should reject --suppressions=(directory) 
-197512  DWARF2 CFI reader: unhandled CFI instruction 0:10 
-197591  unhandled syscall 27 (mincore) 
-197793  Merge DCAS branch to the trunk == 85756, 142103
-197794  Avoid duplicate filenames in Vex 
-197898  make check fails on current SVN 
-197901  make check fails also under exp-ptrcheck in current SVN 
-197929  Make --leak-resolution=high the default 
-197930  Reduce spacing between leak reports 
-197933  Print command line of client at start-up, and shorten preamble 
-197966  unhandled syscall 205 (x86-linux, --tool=exp-ptrcheck)
-198395  add BBV to the distribution as an experimental tool 
-198624  Missing syscalls on Darwin: 82, 167, 281, 347 
-198649  callgrind_annotate doesn't cumulate counters 
-199338  callgrind_annotate sorting/thresholds are broken for all but Ir 
-199977  Valgrind complains about an unrecognized instruction in the
-        atomic_incs test program
-200029  valgrind isn't able to read Fedora 12 debuginfo 
-200760  darwin unhandled syscall: unix:284 
-200827  DRD doesn't work on Mac OS X 
-200990  VG_(read_millisecond_timer)() does not work correctly 
-201016  Valgrind does not support pthread_kill() on Mac OS 
-201169  Document --read-var-info
-201323  Pre-3.5.0 performance sanity checking 
-201384  Review user manual for the 3.5.0 release 
-201585  mfpvr not implemented on ppc 
-201708  tests failing because x86 direction flag is left set 
-201757  Valgrind doesn't handle any recent sys_futex additions 
-204377  64-bit valgrind can not start a shell script
-        (with #!/path/to/shell) if the shell is a 32-bit executable
-n-i-bz  drd: fixed assertion failure triggered by mutex reinitialization.
-n-i-bz  drd: fixed a bug that caused incorrect messages to be printed
-        about memory allocation events with memory access tracing enabled
-n-i-bz  drd: fixed a memory leak triggered by vector clock deallocation
-
-(3.5.0: 19 Aug 2009, vex r1913, valgrind r10846).
-
-
-
-Release 3.4.1 (28 February 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.4.1 is a bug-fix release that fixes some regressions and assertion
-failures in debug info reading in 3.4.0, most notably incorrect stack
-traces on amd64-linux on older (glibc-2.3 based) systems. Various
-other debug info problems are also fixed.  A number of bugs in the
-exp-ptrcheck tool introduced in 3.4.0 have been fixed.
-
-In view of the fact that 3.4.0 contains user-visible regressions
-relative to 3.3.x, upgrading to 3.4.1 is recommended.  Packagers are
-encouraged to ship 3.4.1 in preference to 3.4.0.
-
-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
-bugzilla" -- that is, a bug that was reported to us but never got a
-bugzilla entry.  We encourage you to file bugs in bugzilla
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly -- bugs that are not entered
-into bugzilla tend to get forgotten about or ignored.
-
-n-i-bz  Fix various bugs reading icc-11 generated debug info
-n-i-bz  Fix various bugs reading gcc-4.4 generated debug info
-n-i-bz  Preliminary support for glibc-2.10 / Fedora 11
-n-i-bz  Cachegrind and Callgrind: handle non-power-of-two cache sizes,
-        so as to support (eg) 24k Atom D1 and Core2 with 3/6/12MB L2.
-179618  exp-ptrcheck crashed / exit prematurely
-179624  helgrind: false positive races with pthread_create and
-        recv/open/close/read
-134207  pkg-config output contains @VG_PLATFORM@
-176926  floating point exception at valgrind startup with PPC 440EPX
-181594  Bogus warning for empty text segment
-173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant rex prefixes)
-181707  Dwarf3 doesn't require enumerations to have name
-185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
-185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
-        Assertion '!already_present' failed.
-185359  exp-ptrcheck unhandled syscall getresuid()
-
-(3.4.1.RC1:  24 Feb 2008, vex r1884, valgrind r9253).
-(3.4.1:      28 Feb 2008, vex r1884, valgrind r9293).
-
-
-
-Release 3.4.0 (2 January 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.4.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.  This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros
-(using gcc 4.4, glibc 2.8 and 2.9) has been added.
-
-3.4.0 brings some significant tool improvements.  Memcheck can now
-report the origin of uninitialised values, the thread checkers
-Helgrind and DRD are much improved, and we have a new experimental
-tool, exp-Ptrcheck, which is able to detect overruns of stack and
-global arrays.  In detail:
-
-* Memcheck is now able to track the origin of uninitialised values.
-  When it reports an uninitialised value error, it will try to show
-  the origin of the value, as either a heap or stack allocation.
-  Origin tracking is expensive and so is not enabled by default.  To
-  use it, specify --track-origins=yes.  Memcheck's speed will be
-  essentially halved, and memory usage will be significantly
-  increased.  Nevertheless it can drastically reduce the effort
-  required to identify the root cause of uninitialised value errors,
-  and so is often a programmer productivity win, despite running more
-  slowly.
-
-* A version (1.4.0) of the Valkyrie GUI, that works with Memcheck in
-  3.4.0, will be released shortly.
-
-* Helgrind's race detection algorithm has been completely redesigned
-  and reimplemented, to address usability and scalability concerns:
-
-  - The new algorithm has a lower false-error rate: it is much less
-    likely to report races that do not really exist.
-
-  - Helgrind will display full call stacks for both accesses involved
-    in a race.  This makes it easier to identify the root causes of
-    races.
-
-  - Limitations on the size of program that can run have been removed.
-
-  - Performance has been modestly improved, although that is very
-    workload-dependent.
-
-  - Direct support for Qt4 threading has been added.
-
-  - pthread_barriers are now directly supported.
-
-  - Helgrind works well on all supported Linux targets.
-
-* The DRD thread debugging tool has seen major improvements:
-
-  - Greatly improved performance and significantly reduced memory
-    usage.
-
-  - Support for several major threading libraries (Boost.Thread, Qt4,
-    glib, OpenMP) has been added.
-
-  - Support for atomic instructions, POSIX semaphores, barriers and
-    reader-writer locks has been added.
-
-  - Works now on PowerPC CPUs too.
-
-  - Added support for printing thread stack usage at thread exit time.
-
-  - Added support for debugging lock contention.
-
-  - Added a manual for Drd.
-
-* A new experimental tool, exp-Ptrcheck, has been added.  Ptrcheck
-  checks for misuses of pointers.  In that sense it is a bit like
-  Memcheck.  However, Ptrcheck can do things Memcheck can't: it can
-  detect overruns of stack and global arrays, it can detect
-  arbitrarily far out-of-bounds accesses to heap blocks, and it can
-  detect accesses heap blocks that have been freed a very long time
-  ago (millions of blocks in the past).
-
-  Ptrcheck currently works only on x86-linux and amd64-linux.  To use
-  it, use --tool=exp-ptrcheck.  A simple manual is provided, as part
-  of the main Valgrind documentation.  As this is an experimental
-  tool, we would be particularly interested in hearing about your
-  experiences with it.
-
-* exp-Omega, an experimental instantaneous leak-detecting tool, is no
-  longer built by default, although the code remains in the repository
-  and the tarball.  This is due to three factors: a perceived lack of
-  users, a lack of maintenance, and concerns that it may not be
-  possible to achieve reliable operation using the existing design.
-
-* As usual, support for the latest Linux distros and toolchain
-  components has been added.  It should work well on Fedora Core 10,
-  OpenSUSE 11.1 and Ubuntu 8.10.  gcc-4.4 (in its current pre-release
-  state) is supported, as is glibc-2.9.  The C++ demangler has been
-  updated so as to work well with C++ compiled by even the most recent
-  g++'s.
-
-* You can now use frame-level wildcards in suppressions.  This was a
-  frequently-requested enhancement.  A line "..." in a suppression now
-  matches zero or more frames.  This makes it easier to write
-  suppressions which are precise yet insensitive to changes in
-  inlining behaviour.
-
-* 3.4.0 adds support on x86/amd64 for the SSSE3 instruction set.
-
-* Very basic support for IBM Power6 has been added (64-bit processes only).
-
-* Valgrind is now cross-compilable.  For example, it is possible to
-  cross compile Valgrind on an x86/amd64-linux host, so that it runs
-  on a ppc32/64-linux target.
-
-* You can set the main thread's stack size at startup using the
-  new --main-stacksize= flag (subject of course to ulimit settings).
-  This is useful for running apps that need a lot of stack space.
-
-* The limitation that you can't use --trace-children=yes together
-  with --db-attach=yes has been removed.
-
-* The following bugs have been fixed.  Note that "n-i-bz" stands for
-  "not in bugzilla" -- that is, a bug that was reported to us but
-  never got a bugzilla entry.  We encourage you to file bugs in
-  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-  mailing the developers (or mailing lists) directly.
-
-  n-i-bz  Make return types for some client requests 64-bit clean
-  n-i-bz  glibc 2.9 support
-  n-i-bz  ignore unsafe .valgrindrc's (CVE-2008-4865)
-  n-i-bz  MPI_Init(0,0) is valid but libmpiwrap.c segfaults
-  n-i-bz  Building in an env without gdb gives bogus gdb attach
-  92456   Tracing the origin of uninitialised memory
-  106497  Valgrind does not demangle some C++ template symbols
-  162222  ==106497
-  151612  Suppression with "..." (frame-level wildcards in .supp files)
-  156404  Unable to start oocalc under memcheck on openSUSE 10.3 (64-bit)
-  159285  unhandled syscall:25 (stime, on x86-linux)
-  159452  unhandled ioctl 0x8B01 on "valgrind iwconfig"
-  160954  ppc build of valgrind crashes with illegal instruction (isel)
-  160956  mallinfo implementation, w/ patch
-  162092  Valgrind fails to start gnome-system-monitor
-  162819  malloc_free_fill test doesn't pass on glibc2.8 x86
-  163794  assertion failure with "--track-origins=yes"
-  163933  sigcontext.err and .trapno must be set together
-  163955  remove constraint !(--db-attach=yes && --trace-children=yes)
-  164476  Missing kernel module loading system calls
-  164669  SVN regression: mmap() drops posix file locks
-  166581  Callgrind output corruption when program forks
-  167288  Patch file for missing system calls on Cell BE
-  168943  unsupported scas instruction pentium
-  171645  Unrecognised instruction (MOVSD, non-binutils encoding)
-  172417  x86->IR: 0x82 ...
-  172563  amd64->IR: 0xD9 0xF5  -  fprem1
-  173099  .lds linker script generation error
-  173177  [x86_64] syscalls: 125/126/179 (capget/capset/quotactl)
-  173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant prefixes)
-  174532  == 173751
-  174908  --log-file value not expanded correctly for core file
-  175044  Add lookup_dcookie for amd64
-  175150  x86->IR: 0xF2 0xF 0x11 0xC1 (movss non-binutils encoding)
-
-Developer-visible changes:
-
-* Valgrind's debug-info reading machinery has been majorly overhauled.
-  It can now correctly establish the addresses for ELF data symbols,
-  which is something that has never worked properly before now.
-
-  Also, Valgrind can now read DWARF3 type and location information for
-  stack and global variables.  This makes it possible to use the
-  framework to build tools that rely on knowing the type and locations
-  of stack and global variables, for example exp-Ptrcheck.
-
-  Reading of such information is disabled by default, because most
-  tools don't need it, and because it is expensive in space and time.
-  However, you can force Valgrind to read it, using the
-  --read-var-info=yes flag.  Memcheck, Helgrind and DRD are able to
-  make use of such information, if present, to provide source-level
-  descriptions of data addresses in the error messages they create.
-
-(3.4.0.RC1:  24 Dec 2008, vex r1878, valgrind r8882).
-(3.4.0:       3 Jan 2009, vex r1878, valgrind r8899).
index 38d1089444a03b9b9fed27d35a2579977b0c5036..2b43c91fadbc11db469f92f9a6f0187cea8386ea 100644 (file)
--- a/NEWS.old
+++ b/NEWS.old
-Release 3.3.1 (4 June 2008)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.3.1 fixes a bunch of bugs in 3.3.0, adds support for glibc-2.8 based
-systems (openSUSE 11, Fedora Core 9), improves the existing glibc-2.7
-support, and adds support for the SSSE3 (Core 2) instruction set.
-
-3.3.1 will likely be the last release that supports some very old
-systems.  In particular, the next major release, 3.4.0, will drop
-support for the old LinuxThreads threading library, and for gcc
-versions prior to 3.0.
-
-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
-bugzilla" -- that is, a bug that was reported to us but never got a
-bugzilla entry.  We encourage you to file bugs in bugzilla
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly -- bugs that are not entered
-into bugzilla tend to get forgotten about or ignored.
-
-n-i-bz  Massif segfaults at exit
-n-i-bz  Memcheck asserts on Altivec code
-n-i-bz  fix sizeof bug in Helgrind
-n-i-bz  check fd on sys_llseek
-n-i-bz  update syscall lists to kernel 2.6.23.1
-n-i-bz  support sys_sync_file_range
-n-i-bz  handle sys_sysinfo, sys_getresuid, sys_getresgid on ppc64-linux
-n-i-bz  intercept memcpy in 64-bit ld.so's
-n-i-bz  Fix wrappers for sys_{futimesat,utimensat}
-n-i-bz  Minor false-error avoidance fixes for Memcheck
-n-i-bz  libmpiwrap.c: add a wrapper for MPI_Waitany
-n-i-bz  helgrind support for glibc-2.8
-n-i-bz  partial fix for mc_leakcheck.c:698 assert:
-        'lc_shadows[i]->data + lc_shadows[i] ...
-n-i-bz  Massif/Cachegrind output corruption when programs fork
-n-i-bz  register allocator fix: handle spill stores correctly
-n-i-bz  add support for PA6T PowerPC CPUs
-126389  vex x86->IR: 0xF 0xAE (FXRSTOR)
-158525  ==126389
-152818  vex x86->IR: 0xF3 0xAC (repz lodsb) 
-153196  vex x86->IR: 0xF2 0xA6 (repnz cmpsb) 
-155011  vex x86->IR: 0xCF (iret)
-155091  Warning [...] unhandled DW_OP_ opcode 0x23
-156960  ==155901
-155528  support Core2/SSSE3 insns on x86/amd64
-155929  ms_print fails on massif outputs containing long lines
-157665  valgrind fails on shmdt(0) after shmat to 0
-157748  support x86 PUSHFW/POPFW
-158212  helgrind: handle pthread_rwlock_try{rd,wr}lock.
-158425  sys_poll incorrectly emulated when RES==0
-158744  vex amd64->IR: 0xF0 0x41 0xF 0xC0 (xaddb)
-160907  Support for a couple of recent Linux syscalls
-161285  Patch -- support for eventfd() syscall
-161378  illegal opcode in debug libm (FUCOMPP)
-160136  ==161378
-161487  number of suppressions files is limited to 10
-162386  ms_print typo in milliseconds time unit for massif
-161036  exp-drd: client allocated memory was never freed
-162663  signalfd_wrapper fails on 64bit linux
-
-(3.3.1.RC1:  2 June 2008, vex r1854, valgrind r8169).
-(3.3.1:      4 June 2008, vex r1854, valgrind r8180).
-
-
-
-Release 3.3.0 (7 December 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.3.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.  This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros
-(using gcc 4.3, glibc 2.6 and 2.7) has been added.
-
-The main excitement in 3.3.0 is new and improved tools.  Helgrind
-works again, Massif has been completely overhauled and much improved,
-Cachegrind now does branch-misprediction profiling, and a new category
-of experimental tools has been created, containing two new tools:
-Omega and DRD.  There are many other smaller improvements.  In detail:
-
-- Helgrind has been completely overhauled and works for the first time
-  since Valgrind 2.2.0.  Supported functionality is: detection of
-  misuses of the POSIX PThreads API, detection of potential deadlocks
-  resulting from cyclic lock dependencies, and detection of data
-  races.  Compared to the 2.2.0 Helgrind, the race detection algorithm
-  has some significant improvements aimed at reducing the false error
-  rate.  Handling of various kinds of corner cases has been improved.
-  Efforts have been made to make the error messages easier to
-  understand.  Extensive documentation is provided.
-
-- Massif has been completely overhauled.  Instead of measuring
-  space-time usage -- which wasn't always useful and many people found
-  confusing -- it now measures space usage at various points in the
-  execution, including the point of peak memory allocation.  Its
-  output format has also changed: instead of producing PostScript
-  graphs and HTML text, it produces a single text output (via the new
-  'ms_print' script) that contains both a graph and the old textual
-  information, but in a more compact and readable form.  Finally, the
-  new version should be more reliable than the old one, as it has been
-  tested more thoroughly.
-
-- Cachegrind has been extended to do branch-misprediction profiling.
-  Both conditional and indirect branches are profiled.  The default
-  behaviour of Cachegrind is unchanged.  To use the new functionality,
-  give the option --branch-sim=yes.
-
-- A new category of "experimental tools" has been created.  Such tools
-  may not work as well as the standard tools, but are included because
-  some people will find them useful, and because exposure to a wider
-  user group provides tool authors with more end-user feedback.  These
-  tools have a "exp-" prefix attached to their names to indicate their
-  experimental nature.  Currently there are two experimental tools:
-
-  * exp-Omega: an instantaneous leak detector.  See
-    exp-omega/docs/omega_introduction.txt.
-
-  * exp-DRD: a data race detector based on the happens-before
-    relation.  See exp-drd/docs/README.txt.
-
-- Scalability improvements for very large programs, particularly those
-  which have a million or more malloc'd blocks in use at once.  These
-  improvements mostly affect Memcheck.  Memcheck is also up to 10%
-  faster for all programs, with x86-linux seeing the largest
-  improvement.
-
-- Works well on the latest Linux distros.  Has been tested on Fedora
-  Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3.  glibc 2.6 and
-  2.7 are supported.  gcc-4.3 (in its current pre-release state) is
-  supported.  At the same time, 3.3.0 retains support for older
-  distros.
-
-- The documentation has been modestly reorganised with the aim of
-  making it easier to find information on common-usage scenarios.
-  Some advanced material has been moved into a new chapter in the main
-  manual, so as to unclutter the main flow, and other tidying up has
-  been done.
-
-- There is experimental support for AIX 5.3, both 32-bit and 64-bit
-  processes.  You need to be running a 64-bit kernel to use Valgrind
-  on a 64-bit executable.
-
-- There have been some changes to command line options, which may
-  affect you:
-
-  * --log-file-exactly and 
-    --log-file-qualifier options have been removed.
-
-    To make up for this --log-file option has been made more powerful.
-    It now accepts a %p format specifier, which is replaced with the
-    process ID, and a %q{FOO} format specifier, which is replaced with
-    the contents of the environment variable FOO.
-
-  * --child-silent-after-fork=yes|no [no]
-
-    Causes Valgrind to not show any debugging or logging output for
-    the child process resulting from a fork() call.  This can make the
-    output less confusing (although more misleading) when dealing with
-    processes that create children.
-
-  * --cachegrind-out-file, --callgrind-out-file and --massif-out-file
-
-    These control the names of the output files produced by
-    Cachegrind, Callgrind and Massif.  They accept the same %p and %q
-    format specifiers that --log-file accepts.  --callgrind-out-file
-    replaces Callgrind's old --base option.
-
-  * Cachegrind's 'cg_annotate' script no longer uses the --<pid>
-    option to specify the output file.  Instead, the first non-option
-    argument is taken to be the name of the output file, and any
-    subsequent non-option arguments are taken to be the names of
-    source files to be annotated.
-
-  * Cachegrind and Callgrind now use directory names where possible in
-    their output files.  This means that the -I option to
-    'cg_annotate' and 'callgrind_annotate' should not be needed in
-    most cases.  It also means they can correctly handle the case
-    where two source files in different directories have the same
-    name.
-
-- Memcheck offers a new suppression kind: "Jump".  This is for
-  suppressing jump-to-invalid-address errors.  Previously you had to
-  use an "Addr1" suppression, which didn't make much sense.
-
-- Memcheck has new flags --malloc-fill=<hexnum> and
-  --free-fill=<hexnum> which free malloc'd / free'd areas with the
-  specified byte.  This can help shake out obscure memory corruption
-  problems.  The definedness and addressability of these areas is
-  unchanged -- only the contents are affected.
-
-- The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and
-  VALGRIND_SET_VBITS have changed slightly.  They no longer issue
-  addressability errors -- if either array is partially unaddressable,
-  they just return 3 (as before).  Also, SET_VBITS doesn't report
-  definedness errors if any of the V bits are undefined.
-
-- The following Memcheck client requests have been removed:
-    VALGRIND_MAKE_NOACCESS
-    VALGRIND_MAKE_WRITABLE
-    VALGRIND_MAKE_READABLE
-    VALGRIND_CHECK_WRITABLE
-    VALGRIND_CHECK_READABLE
-    VALGRIND_CHECK_DEFINED
-  They were deprecated in 3.2.0, when equivalent but better-named client
-  requests were added.  See the 3.2.0 release notes for more details.
-
-- The behaviour of the tool Lackey has changed slightly.  First, the output
-  from --trace-mem has been made more compact, to reduce the size of the
-  traces.  Second, a new option --trace-superblocks has been added, which
-  shows the addresses of superblocks (code blocks) as they are executed.
-
-- The following bugs have been fixed.  Note that "n-i-bz" stands for
-  "not in bugzilla" -- that is, a bug that was reported to us but
-  never got a bugzilla entry.  We encourage you to file bugs in
-  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
-  mailing the developers (or mailing lists) directly.
-
-  n-i-bz  x86_linux_REDIR_FOR_index() broken
-  n-i-bz  guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.
-  n-i-bz  Support x86 INT insn (INT (0xCD) 0x40 - 0x43)
-  n-i-bz  Add sys_utimensat system call for Linux x86 platform
-   79844  Helgrind complains about race condition which does not exist
-   82871  Massif output function names too short
-   89061  Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...'
-   92615  Write output from Massif at crash
-   95483  massif feature request: include peak allocation in report
-  112163  MASSIF crashed with signal 7 (SIGBUS) after running 2 days
-  119404  problems running setuid executables (partial fix)
-  121629  add instruction-counting mode for timing
-  127371  java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65
-  129937  ==150380
-  129576  Massif loses track of memory, incorrect graphs
-  132132  massif --format=html output does not do html entity escaping
-  132950  Heap alloc/usage summary
-  133962  unhandled instruction bytes: 0xF2 0x4C 0xF 0x10
-  134990  use -fno-stack-protector if possible
-  136382  ==134990
-  137396  I would really like helgrind to work again...
-  137714  x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq)
-  141631  Massif: percentages don't add up correctly
-  142706  massif numbers don't seem to add up
-  143062  massif crashes on app exit with signal 8 SIGFPE
-  144453  (get_XCon): Assertion 'xpt->max_children != 0' failed.
-  145559  valgrind aborts when malloc_stats is called
-  145609  valgrind aborts all runs with 'repeated section!'
-  145622  --db-attach broken again on x86-64
-  145837  ==149519
-  145887  PPC32: getitimer() system call is not supported
-  146252  ==150678
-  146456  (update_XCon): Assertion 'xpt->curr_space >= -space_delta'...
-  146701  ==134990
-  146781  Adding support for private futexes
-  147325  valgrind internal error on syscall (SYS_io_destroy, 0)
-  147498  amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))
-  147545  Memcheck: mc_main.c:817 (get_sec_vbits8): Assertion 'n' failed.
-  147628  SALC opcode 0xd6 unimplemented
-  147825  crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
-  148174  Incorrect type of freed_list_volume causes assertion [...]
-  148447  x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f
-  149182  PPC Trap instructions not implemented in valgrind
-  149504  Assertion hit on alloc_xpt->curr_space >= -space_delta
-  149519  ppc32: V aborts with SIGSEGV on execution of a signal handler
-  149892  ==137714
-  150044  SEGV during stack deregister
-  150380  dwarf/gcc interoperation (dwarf3 read problems)
-  150408  ==148447
-  150678  guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed
-  151209  V unable to execute programs for users with UID > 2^16
-  151938  help on --db-command= misleading
-  152022  subw $0x28, %%sp causes assertion failure in memcheck
-  152357  inb and outb not recognized in 64-bit mode
-  152501  vex x86->IR: 0x27 0x66 0x89 0x45 (daa) 
-  152818  vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb)
-
-Developer-visible changes:
-
-- The names of some functions and types within the Vex IR have
-  changed.  Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.
-  Any existing standalone tools will have to be updated to reflect
-  these changes.  The new names should be clearer.  The file
-  VEX/pub/libvex_ir.h is also much better commented.
-
-- A number of new debugging command line options have been added.
-  These are mostly of use for debugging the symbol table and line
-  number readers:
-
-  --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
-  --trace-cfi=no|yes        show call-frame-info details? [no]
-  --debug-dump=syms         mimic /usr/bin/readelf --syms
-  --debug-dump=line         mimic /usr/bin/readelf --debug-dump=line
-  --debug-dump=frames       mimic /usr/bin/readelf --debug-dump=frames
-  --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]
-
-- Internally, the code base has been further factorised and
-  abstractified, particularly with respect to support for non-Linux
-  OSs.
-
-(3.3.0.RC1:  2 Dec 2007, vex r1803, valgrind r7268).
-(3.3.0.RC2:  5 Dec 2007, vex r1804, valgrind r7282).
-(3.3.0.RC3:  9 Dec 2007, vex r1804, valgrind r7288).
-(3.3.0:     10 Dec 2007, vex r1804, valgrind r7290).
-
-
-
-Release 3.2.3 (29 Jan 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Unfortunately 3.2.2 introduced a regression which can cause an
-assertion failure ("vex: the `impossible' happened: eqIRConst") when
-running obscure pieces of SSE code.  3.2.3 fixes this and adds one
-more glibc-2.5 intercept.  In all other respects it is identical to
-3.2.2.  Please do not use (or package) 3.2.2; instead use 3.2.3.
-
-n-i-bz   vex: the `impossible' happened: eqIRConst
-n-i-bz   Add an intercept for glibc-2.5 __stpcpy_chk
-
-(3.2.3: 29 Jan 2007, vex r1732, valgrind r6560).
-
-
-Release 3.2.2 (22 Jan 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.2 fixes a bunch of bugs in 3.2.1, adds support for glibc-2.5 based
-systems (openSUSE 10.2, Fedora Core 6), improves support for icc-9.X
-compiled code, and brings modest performance improvements in some
-areas, including amd64 floating point, powerpc support, and startup
-responsiveness on all targets.
-
-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
-bugzilla" -- that is, a bug that was reported to us but never got a
-bugzilla entry.  We encourage you to file bugs in bugzilla
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly.
-
-129390   ppc?->IR: some kind of VMX prefetch (dstt)
-129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)
-134319   ==129968
-133054   'make install' fails with syntax errors
-118903   ==133054
-132998   startup fails in when running on UML
-134207   pkg-config output contains @VG_PLATFORM@
-134727   valgrind exits with "Value too large for defined data type"
-n-i-bz   ppc32/64: support mcrfs
-n-i-bz   Cachegrind/Callgrind: Update cache parameter detection
-135012   x86->IR: 0xD7 0x8A 0xE0 0xD0 (xlat)
-125959   ==135012
-126147   x86->IR: 0xF2 0xA5 0xF 0x77 (repne movsw)
-136650   amd64->IR: 0xC2 0x8 0x0
-135421   x86->IR: unhandled Grp5(R) case 6
-n-i-bz   Improved documentation of the IR intermediate representation
-n-i-bz   jcxz (x86) (users list, 8 Nov)
-n-i-bz   ExeContext hashing fix
-n-i-bz   fix CFI reading failures ("Dwarf CFI 0:24 0:32 0:48 0:7")
-n-i-bz   fix Cachegrind/Callgrind simulation bug
-n-i-bz   libmpiwrap.c: fix handling of MPI_LONG_DOUBLE
-n-i-bz   make User errors suppressible
-136844   corrupted malloc line when using --gen-suppressions=yes
-138507   ==136844
-n-i-bz   Speed up the JIT's register allocator
-n-i-bz   Fix confusing leak-checker flag hints
-n-i-bz   Support recent autoswamp versions
-n-i-bz   ppc32/64 dispatcher speedups
-n-i-bz   ppc64 front end rld/rlw improvements
-n-i-bz   ppc64 back end imm64 improvements
-136300   support 64K pages on ppc64-linux
-139124   == 136300
-n-i-bz   fix ppc insn set tests for gcc >= 4.1
-137493   x86->IR: recent binutils no-ops
-137714   x86->IR: 0x66 0xF 0xF7 0xC6 (maskmovdqu)
-138424   "failed in UME with error 22" (produce a better error msg)
-138856   ==138424
-138627   Enhancement support for prctl ioctls
-138896   Add support for usb ioctls
-136059   ==138896
-139050   ppc32->IR: mfspr 268/269 instructions not handled
-n-i-bz   ppc32->IR: lvxl/stvxl
-n-i-bz   glibc-2.5 support
-n-i-bz   memcheck: provide replacement for mempcpy
-n-i-bz   memcheck: replace bcmp in ld.so
-n-i-bz   Use 'ifndef' in VEX's Makefile correctly
-n-i-bz   Suppressions for MVL 4.0.1 on ppc32-linux
-n-i-bz   libmpiwrap.c: Fixes for MPICH
-n-i-bz   More robust handling of hinted client mmaps
-139776   Invalid read in unaligned memcpy with Intel compiler v9
-n-i-bz   Generate valid XML even for very long fn names
-n-i-bz   Don't prompt about suppressions for unshown reachable leaks
-139910   amd64 rcl is not supported
-n-i-bz   DWARF CFI reader: handle DW_CFA_undefined
-n-i-bz   DWARF CFI reader: handle icc9 generated CFI info better
-n-i-bz   fix false uninit-value errs in icc9 generated FP code
-n-i-bz   reduce extraneous frames in libmpiwrap.c
-n-i-bz   support pselect6 on amd64-linux
-
-(3.2.2: 22 Jan 2007, vex r1729, valgrind r6545).
-
-
-Release 3.2.1 (16 Sept 2006)
+Release 3.18.0 (15 Oct 2021)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.1 adds x86/amd64 support for all SSE3 instructions except monitor
-and mwait, further reduces memcheck's false error rate on all
-platforms, adds support for recent binutils (in OpenSUSE 10.2 and
-Fedora Rawhide) and fixes a bunch of bugs in 3.2.0.  Some of the fixed
-bugs were causing large programs to segfault with --tool=callgrind and
---tool=cachegrind, so an upgrade is recommended.
-
-In view of the fact that any 3.3.0 release is unlikely to happen until
-well into 1Q07, we intend to keep the 3.2.X line alive for a while
-yet, and so we tentatively plan a 3.2.2 release sometime in December
-06.
-
-The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
-bugzilla" -- that is, a bug that was reported to us but never got a
-bugzilla entry.
-
-n-i-bz   Expanding brk() into last available page asserts
-n-i-bz   ppc64-linux stack RZ fast-case snafu
-n-i-bz   'c' in --gen-supps=yes doesn't work
-n-i-bz   VG_N_SEGMENTS too low (users, 28 June)
-n-i-bz   VG_N_SEGNAMES too low (Stu Robinson)
-106852   x86->IR: fisttp (SSE3)
-117172   FUTEX_WAKE does not use uaddr2
-124039   Lacks support for VKI_[GP]IO_UNIMAP*
-127521   amd64->IR: 0xF0 0x48 0xF 0xC7 (cmpxchg8b)
-128917   amd64->IR: 0x66 0xF 0xF6 0xC4 (psadbw,SSE2)
-129246   JJ: ppc32/ppc64 syscalls, w/ patch
-129358   x86->IR: fisttpl (SSE3)
-129866   cachegrind/callgrind causes executable to die
-130020   Can't stat .so/.exe error while reading symbols
-130388   Valgrind aborts when process calls malloc_trim()
-130638   PATCH: ppc32 missing system calls
-130785   amd64->IR: unhandled instruction "pushfq"
-131481:  (HINT_NOP) vex x86->IR: 0xF 0x1F 0x0 0xF
-131298   ==131481
-132146   Programs with long sequences of bswap[l,q]s
-132918   vex amd64->IR: 0xD9 0xF8 (fprem)
-132813   Assertion at priv/guest-x86/toIR.c:652 fails
-133051   'cfsi->len > 0 && cfsi->len < 2000000' failed
-132722   valgrind header files are not standard C
-n-i-bz   Livelocks entire machine (users list, Timothy Terriberry)
-n-i-bz   Alex Bennee mmap problem (9 Aug)
-n-i-bz   BartV: Don't print more lines of a stack-trace than were obtained.
-n-i-bz   ppc32 SuSE 10.1 redir
-n-i-bz   amd64 padding suppressions
-n-i-bz   amd64 insn printing fix.
-n-i-bz   ppc cmp reg,reg fix
-n-i-bz   x86/amd64 iropt e/rflag reduction rules
-n-i-bz   SuSE 10.1 (ppc32) minor fixes
-133678   amd64->IR: 0x48 0xF 0xC5 0xC0 (pextrw?)
-133694   aspacem assertion: aspacem_minAddr <= holeStart
-n-i-bz   callgrind: fix warning about malformed creator line 
-n-i-bz   callgrind: fix annotate script for data produced with 
-         --dump-instr=yes
-n-i-bz   callgrind: fix failed assertion when toggling 
-         instrumentation mode
-n-i-bz   callgrind: fix annotate script fix warnings with
-         --collect-jumps=yes
-n-i-bz   docs path hardwired (Dennis Lubert)
-
-The following bugs were not fixed, due primarily to lack of developer
-time, and also because bug reporters did not answer requests for
-feedback in time for the release:
-
-129390   ppc?->IR: some kind of VMX prefetch (dstt)
-129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)
-133054   'make install' fails with syntax errors
-n-i-bz   Signal race condition (users list, 13 June, Johannes Berg)
-n-i-bz   Unrecognised instruction at address 0x70198EC2 (users list,
-         19 July, Bennee)
-132998   startup fails in when running on UML
-
-The following bug was tentatively fixed on the mainline but the fix
-was considered too risky to push into 3.2.X:
-
-133154   crash when using client requests to register/deregister stack
-
-(3.2.1: 16 Sept 2006, vex r1658, valgrind r6070).
-
-
-Release 3.2.0 (7 June 2006)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.  This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux.
-
-Performance, especially of Memcheck, is improved, Addrcheck has been
-removed, Callgrind has been added, PPC64/Linux support has been added,
-Lackey has been improved, and MPI support has been added.  In detail:
-
-- Memcheck has improved speed and reduced memory use.  Run times are
-  typically reduced by 15-30%, averaging about 24% for SPEC CPU2000.
-  The other tools have smaller but noticeable speed improvements.  We
-  are interested to hear what improvements users get.
-
-  Memcheck uses less memory due to the introduction of a compressed
-  representation for shadow memory.  The space overhead has been
-  reduced by a factor of up to four, depending on program behaviour.
-  This means you should be able to run programs that use more memory
-  than before without hitting problems.
-
-- Addrcheck has been removed.  It has not worked since version 2.4.0,
-  and the speed and memory improvements to Memcheck make it redundant.
-  If you liked using Addrcheck because it didn't give undefined value
-  errors, you can use the new Memcheck option --undef-value-errors=no
-  to get the same behaviour.
-
-- The number of undefined-value errors incorrectly reported by
-  Memcheck has been reduced (such false reports were already very
-  rare).  In particular, efforts have been made to ensure Memcheck
-  works really well with gcc 4.0/4.1-generated code on X86/Linux and
-  AMD64/Linux.
-
-- Josef Weidendorfer's popular Callgrind tool has been added.  Folding
-  it in was a logical step given its popularity and usefulness, and
-  makes it easier for us to ensure it works "out of the box" on all
-  supported targets.  The associated KDE KCachegrind GUI remains a
-  separate project.
-
-- A new release of the Valkyrie GUI for Memcheck, version 1.2.0,
-  accompanies this release.  Improvements over previous releases
-  include improved robustness, many refinements to the user interface,
-  and use of a standard autoconf/automake build system.  You can get
-  it from http://www.valgrind.org/downloads/guis.html.
-
-- Valgrind now works on PPC64/Linux.  As with the AMD64/Linux port,
-  this supports programs using to 32G of address space.  On 64-bit
-  capable PPC64/Linux setups, you get a dual architecture build so
-  that both 32-bit and 64-bit executables can be run.  Linux on POWER5
-  is supported, and POWER4 is also believed to work.  Both 32-bit and
-  64-bit DWARF2 is supported.  This port is known to work well with
-  both gcc-compiled and xlc/xlf-compiled code.
-
-- Floating point accuracy has been improved for PPC32/Linux.
-  Specifically, the floating point rounding mode is observed on all FP
-  arithmetic operations, and multiply-accumulate instructions are
-  preserved by the compilation pipeline.  This means you should get FP
-  results which are bit-for-bit identical to a native run.  These
-  improvements are also present in the PPC64/Linux port.
-
-- Lackey, the example tool, has been improved:
-
-  * It has a new option --detailed-counts (off by default) which
-    causes it to print out a count of loads, stores and ALU operations
-    done, and their sizes.
-
-  * It has a new option --trace-mem (off by default) which causes it
-    to print out a trace of all memory accesses performed by a
-    program.  It's a good starting point for building Valgrind tools
-    that need to track memory accesses.  Read the comments at the top
-    of the file lackey/lk_main.c for details.
-
-  * The original instrumentation (counting numbers of instructions,
-    jumps, etc) is now controlled by a new option --basic-counts.  It
-    is on by default.
-
-- MPI support: partial support for debugging distributed applications
-  using the MPI library specification has been added.  Valgrind is
-  aware of the memory state changes caused by a subset of the MPI
-  functions, and will carefully check data passed to the (P)MPI_
-  interface.
-
-- A new flag, --error-exitcode=, has been added.  This allows changing
-  the exit code in runs where Valgrind reported errors, which is
-  useful when using Valgrind as part of an automated test suite.
-
-- Various segfaults when reading old-style "stabs" debug information
-  have been fixed.
-
-- A simple performance evaluation suite has been added.  See
-  perf/README and README_DEVELOPERS for details.  There are
-  various bells and whistles.
-
-- New configuration flags:
-    --enable-only32bit
-    --enable-only64bit
-  By default, on 64 bit platforms (ppc64-linux, amd64-linux) the build
-  system will attempt to build a Valgrind which supports both 32-bit
-  and 64-bit executables.  This may not be what you want, and you can
-  override the default behaviour using these flags.
-
-Please note that Helgrind is still not working.  We have made an
-important step towards making it work again, however, with the
-addition of function wrapping (see below).
-
-Other user-visible changes:
-
-- Valgrind now has the ability to intercept and wrap arbitrary
-  functions.  This is a preliminary step towards making Helgrind work
-  again, and was required for MPI support.
-
-- There are some changes to Memcheck's client requests.  Some of them
-  have changed names:
-
-    MAKE_NOACCESS  --> MAKE_MEM_NOACCESS
-    MAKE_WRITABLE  --> MAKE_MEM_UNDEFINED
-    MAKE_READABLE  --> MAKE_MEM_DEFINED
-
-    CHECK_WRITABLE --> CHECK_MEM_IS_ADDRESSABLE
-    CHECK_READABLE --> CHECK_MEM_IS_DEFINED
-    CHECK_DEFINED  --> CHECK_VALUE_IS_DEFINED
-
-  The reason for the change is that the old names are subtly
-  misleading.  The old names will still work, but they are deprecated
-  and may be removed in a future release.
-
-  We also added a new client request:
-  
-    MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)
-    
-  which is like MAKE_MEM_DEFINED but only affects a byte if the byte is
-  already addressable.
-
-- The way client requests are encoded in the instruction stream has
-  changed.  Unfortunately, this means 3.2.0 will not honour client
-  requests compiled into binaries using headers from earlier versions
-  of Valgrind.  We will try to keep the client request encodings more 
-  stable in future.
-
-BUGS FIXED:
-
-108258   NPTL pthread cleanup handlers not called 
-117290   valgrind is sigKILL'd on startup
-117295   == 117290
-118703   m_signals.c:1427 Assertion 'tst->status == VgTs_WaitSys'
-118466   add %reg, %reg generates incorrect validity for bit 0
-123210   New: strlen from ld-linux on amd64
-123244   DWARF2 CFI reader: unhandled CFI instruction 0:18
-123248   syscalls in glibc-2.4: openat, fstatat, symlinkat
-123258   socketcall.recvmsg(msg.msg_iov[i] points to uninit
-123535   mremap(new_addr) requires MREMAP_FIXED in 4th arg
-123836   small typo in the doc
-124029   ppc compile failed: `vor' gcc 3.3.5
-124222   Segfault: @@don't know what type ':' is
-124475   ppc32: crash (syscall?) timer_settime()
-124499   amd64->IR: 0xF 0xE 0x48 0x85 (femms)
-124528   FATAL: aspacem assertion failed: segment_is_sane
-124697   vex x86->IR: 0xF 0x70 0xC9 0x0 (pshufw)
-124892   vex x86->IR: 0xF3 0xAE (REPx SCASB)
-126216   == 124892
-124808   ppc32: sys_sched_getaffinity() not handled
-n-i-bz   Very long stabs strings crash m_debuginfo
-n-i-bz   amd64->IR: 0x66 0xF 0xF5 (pmaddwd)
-125492   ppc32: support a bunch more syscalls
-121617   ppc32/64: coredumping gives assertion failure
-121814   Coregrind return error as exitcode patch
-126517   == 121814
-125607   amd64->IR: 0x66 0xF 0xA3 0x2 (btw etc)
-125651   amd64->IR: 0xF8 0x49 0xFF 0xE3 (clc?)
-126253   x86 movx is wrong
-126451   3.2 SVN doesn't work on ppc32 CPU's without FPU
-126217   increase # threads
-126243   vex x86->IR: popw mem
-126583   amd64->IR: 0x48 0xF 0xA4 0xC2 (shld $1,%rax,%rdx)
-126668   amd64->IR: 0x1C 0xFF (sbb $0xff,%al)
-126696   support for CDROMREADRAW ioctl and CDROMREADTOCENTRY fix
-126722   assertion: segment_is_sane at m_aspacemgr/aspacemgr.c:1624
-126938   bad checking for syscalls linkat, renameat, symlinkat
-
-(3.2.0RC1: 27 May  2006, vex r1626, valgrind r5947).
-(3.2.0:     7 June 2006, vex r1628, valgrind r5957).
-
-
-Release 3.1.1 (15 March 2006)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.1.1 fixes a bunch of bugs reported in 3.1.0.  There is no new
-functionality.  The fixed bugs are:
-
-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
- a bugzilla entry).
-
-n-i-bz   ppc32: fsub 3,3,3 in dispatcher doesn't clear NaNs
-n-i-bz   ppc32: __NR_{set,get}priority
-117332   x86: missing line info with icc 8.1
-117366   amd64: 0xDD 0x7C fnstsw
-118274   == 117366
-117367   amd64: 0xD9 0xF4 fxtract
-117369   amd64: __NR_getpriority (140)
-117419   ppc32: lfsu f5, -4(r11)
-117419   ppc32: fsqrt
-117936   more stabs problems (segfaults while reading debug info)
-119914   == 117936
-120345   == 117936
-118239   amd64: 0xF 0xAE 0x3F (clflush)
-118939   vm86old system call
-n-i-bz   memcheck/tests/mempool reads freed memory
-n-i-bz   AshleyP's custom-allocator assertion
-n-i-bz   Dirk strict-aliasing stuff
-n-i-bz   More space for debugger cmd line (Dan Thaler)
-n-i-bz   Clarified leak checker output message
-n-i-bz   AshleyP's --gen-suppressions output fix
-n-i-bz   cg_annotate's --sort option broken
-n-i-bz   OSet 64-bit fastcmp bug
-n-i-bz   VG_(getgroups) fix (Shinichi Noda)
-n-i-bz   ppc32: allocate from callee-saved FP/VMX regs
-n-i-bz   misaligned path word-size bug in mc_main.c
-119297   Incorrect error message for sse code
-120410   x86: prefetchw (0xF 0xD 0x48 0x4)
-120728   TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls
-120658   Build fixes for gcc 2.96
-120734   x86: Support for changing EIP in signal handler
-n-i-bz   memcheck/tests/zeropage de-looping fix
-n-i-bz   x86: fxtract doesn't work reliably
-121662   x86: lock xadd (0xF0 0xF 0xC0 0x2)
-121893   calloc does not always return zeroed memory
-121901   no support for syscall tkill
-n-i-bz   Suppression update for Debian unstable
-122067   amd64: fcmovnu (0xDB 0xD9)
-n-i-bz   ppc32: broken signal handling in cpu feature detection
-n-i-bz   ppc32: rounding mode problems (improved, partial fix only)
-119482   ppc32: mtfsb1
-n-i-bz   ppc32: mtocrf/mfocrf
-
-(3.1.1:  15 March 2006, vex r1597, valgrind r5771).
-
-
-Release 3.1.0 (25 November 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.1.0 is a feature release with a number of significant improvements:
-AMD64 support is much improved, PPC32 support is good enough to be
-usable, and the handling of memory management and address space is
-much more robust.  In detail:
-
-- AMD64 support is much improved.  The 64-bit vs. 32-bit issues in
-  3.0.X have been resolved, and it should "just work" now in all
-  cases.  On AMD64 machines both 64-bit and 32-bit versions of
-  Valgrind are built.  The right version will be invoked
-  automatically, even when using --trace-children and mixing execution
-  between 64-bit and 32-bit executables.  Also, many more instructions
-  are supported.
-
-- PPC32 support is now good enough to be usable.  It should work with
-  all tools, but please let us know if you have problems.  Three
-  classes of CPUs are supported: integer only (no FP, no Altivec),
-  which covers embedded PPC uses, integer and FP but no Altivec
-  (G3-ish), and CPUs capable of Altivec too (G4, G5).
-
-- Valgrind's address space management has been overhauled.  As a
-  result, Valgrind should be much more robust with programs that use
-  large amounts of memory.  There should be many fewer "memory
-  exhausted" messages, and debug symbols should be read correctly on
-  large (eg. 300MB+) executables.  On 32-bit machines the full address
-  space available to user programs (usually 3GB or 4GB) can be fully
-  utilised.  On 64-bit machines up to 32GB of space is usable; when
-  using Memcheck that means your program can use up to about 14GB.
-
-  A side effect of this change is that Valgrind is no longer protected
-  against wild writes by the client.  This feature was nice but relied
-  on the x86 segment registers and so wasn't portable.
-
-- Most users should not notice, but as part of the address space
-  manager change, the way Valgrind is built has been changed.  Each
-  tool is now built as a statically linked stand-alone executable,
-  rather than as a shared object that is dynamically linked with the
-  core.  The "valgrind" program invokes the appropriate tool depending
-  on the --tool option.  This slightly increases the amount of disk
-  space used by Valgrind, but it greatly simplified many things and
-  removed Valgrind's dependence on glibc.
-
-Please note that Addrcheck and Helgrind are still not working.  Work
-is underway to reinstate them (or equivalents).  We apologise for the
-inconvenience.
-
-Other user-visible changes:
-
-- The --weird-hacks option has been renamed --sim-hints.
-
-- The --time-stamp option no longer gives an absolute date and time.
-  It now prints the time elapsed since the program began.
-
-- It should build with gcc-2.96.
-
-- Valgrind can now run itself (see README_DEVELOPERS for how).
-  This is not much use to you, but it means the developers can now
-  profile Valgrind using Cachegrind.  As a result a couple of
-  performance bad cases have been fixed.
-
-- The XML output format has changed slightly.  See
-  docs/internals/xml-output.txt.
-
-- Core dumping has been reinstated (it was disabled in 3.0.0 and 3.0.1).
-  If your program crashes while running under Valgrind, a core file with
-  the name "vgcore.<pid>" will be created (if your settings allow core
-  file creation).  Note that the floating point information is not all
-  there.  If Valgrind itself crashes, the OS will create a normal core
-  file.
-
-The following are some user-visible changes that occurred in earlier
-versions that may not have been announced, or were announced but not
-widely noticed.  So we're mentioning them now.
-
-- The --tool flag is optional once again;  if you omit it, Memcheck
-  is run by default.
-
-- The --num-callers flag now has a default value of 12.  It was
-  previously 4.
-
-- The --xml=yes flag causes Valgrind's output to be produced in XML
-  format.  This is designed to make it easy for other programs to
-  consume Valgrind's output.  The format is described in the file
-  docs/internals/xml-format.txt.
-
-- The --gen-suppressions flag supports an "all" value that causes every
-  suppression to be printed without asking.
-
-- The --log-file option no longer puts "pid" in the filename, eg. the
-  old name "foo.pid12345" is now "foo.12345".
-
-- There are several graphical front-ends for Valgrind, such as Valkyrie,
-  Alleyoop and Valgui.  See http://www.valgrind.org/downloads/guis.html
-  for a list.
-
-BUGS FIXED:
-
-109861  amd64 hangs at startup
-110301  ditto
-111554  valgrind crashes with Cannot allocate memory
-111809  Memcheck tool doesn't start java
-111901  cross-platform run of cachegrind fails on opteron
-113468  (vgPlain_mprotect_range): Assertion 'r != -1' failed.
- 92071  Reading debugging info uses too much memory
-109744  memcheck loses track of mmap from direct ld-linux.so.2
-110183  tail of page with _end
- 82301  FV memory layout too rigid
- 98278  Infinite recursion possible when allocating memory
-108994  Valgrind runs out of memory due to 133x overhead
-115643  valgrind cannot allocate memory
-105974  vg_hashtable.c static hash table
-109323  ppc32: dispatch.S uses Altivec insn, which doesn't work on POWER. 
-109345  ptrace_setregs not yet implemented for ppc
-110831  Would like to be able to run against both 32 and 64 bit 
-        binaries on AMD64
-110829  == 110831
-111781  compile of valgrind-3.0.0 fails on my linux (gcc 2.X prob)
-112670  Cachegrind: cg_main.c:486 (handleOneStatement ...
-112941  vex x86: 0xD9 0xF4 (fxtract)
-110201  == 112941
-113015  vex amd64->IR: 0xE3 0x14 0x48 0x83 (jrcxz)
-113126  Crash with binaries built with -gstabs+/-ggdb
-104065  == 113126
-115741  == 113126
-113403  Partial SSE3 support on x86
-113541  vex: Grp5(x86) (alt encoding inc/dec) case 1
-113642  valgrind crashes when trying to read debug information
-113810  vex x86->IR: 66 0F F6 (66 + PSADBW == SSE PSADBW)
-113796  read() and write() do not work if buffer is in shared memory
-113851  vex x86->IR: (pmaddwd): 0x66 0xF 0xF5 0xC7
-114366  vex amd64 cannnot handle __asm__( "fninit" )
-114412  vex amd64->IR: 0xF 0xAD 0xC2 0xD3 (128-bit shift, shrdq?)
-114455  vex amd64->IR: 0xF 0xAC 0xD0 0x1 (also shrdq)
-115590: amd64->IR: 0x67 0xE3 0x9 0xEB (address size override)
-115953  valgrind svn r5042 does not build with parallel make (-j3)
-116057  maximum instruction size - VG_MAX_INSTR_SZB too small?
-116483  shmat failes with invalid argument
-102202  valgrind crashes when realloc'ing until out of memory
-109487  == 102202
-110536  == 102202
-112687  == 102202
-111724  vex amd64->IR: 0x41 0xF 0xAB (more BT{,S,R,C} fun n games)
-111748  vex amd64->IR: 0xDD 0xE2 (fucom)
-111785  make fails if CC contains spaces
-111829  vex x86->IR: sbb AL, Ib
-111851  vex x86->IR: 0x9F 0x89 (lahf/sahf)
-112031  iopl on AMD64 and README_MISSING_SYSCALL_OR_IOCTL update
-112152  code generation for Xin_MFence on x86 with SSE0 subarch
-112167  == 112152
-112789  == 112152
-112199  naked ar tool is used in vex makefile
-112501  vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)
-113583  == 112501
-112538  memalign crash
-113190  Broken links in docs/html/
-113230  Valgrind sys_pipe on x86-64 wrongly thinks file descriptors
-        should be 64bit
-113996  vex amd64->IR: fucomp (0xDD 0xE9)
-114196  vex x86->IR: out %eax,(%dx) (0xEF 0xC9 0xC3 0x90)
-114289  Memcheck fails to intercept malloc when used in an uclibc environment
-114756  mbind syscall support
-114757  Valgrind dies with assertion: Assertion 'noLargerThan > 0' failed
-114563  stack tracking module not informed when valgrind switches threads
-114564  clone() and stacks
-114565  == 114564
-115496  glibc crashes trying to use sysinfo page
-116200  enable fsetxattr, fgetxattr, and fremovexattr for amd64
-
-(3.1.0RC1: 20 November 2005, vex r1466, valgrind r5224).
-(3.1.0:    26 November 2005, vex r1471, valgrind r5235).
-
-
-Release 3.0.1 (29 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.0.1 fixes a bunch of bugs reported in 3.0.0.  There is no new
-functionality.  Some of the fixed bugs are critical, so if you
-use/distribute 3.0.0, an upgrade to 3.0.1 is recommended.  The fixed
-bugs are:
-
-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
- a bugzilla entry).
-
-109313  (== 110505) x86 cmpxchg8b
-n-i-bz  x86: track but ignore changes to %eflags.AC (alignment check)
-110102  dis_op2_E_G(amd64)
-110202  x86 sys_waitpid(#286)
-110203  clock_getres(,0)
-110208  execve fail wrong retval
-110274  SSE1 now mandatory for x86
-110388  amd64 0xDD 0xD1
-110464  amd64 0xDC 0x1D FCOMP
-110478  amd64 0xF 0xD PREFETCH
-n-i-bz  XML <unique> printing wrong
-n-i-bz  Dirk r4359 (amd64 syscalls from trunk)
-110591  amd64 and x86: rdtsc not implemented properly
-n-i-bz  Nick r4384 (stub implementations of Addrcheck and Helgrind)
-110652  AMD64 valgrind crashes on cwtd instruction
-110653  AMD64 valgrind crashes on sarb $0x4,foo(%rip) instruction
-110656  PATH=/usr/bin::/bin valgrind foobar stats ./fooba
-110657  Small test fixes
-110671  vex x86->IR: unhandled instruction bytes: 0xF3 0xC3 (rep ret)
-n-i-bz  Nick (Cachegrind should not assert when it encounters a client
-        request.)
-110685  amd64->IR: unhandled instruction bytes: 0xE1 0x56 (loope Jb)
-110830  configuring with --host fails to build 32 bit on 64 bit target
-110875  Assertion when execve fails
-n-i-bz  Updates to Memcheck manual
-n-i-bz  Fixed broken malloc_usable_size()
-110898  opteron instructions missing: btq btsq btrq bsfq
-110954  x86->IR: unhandled instruction bytes: 0xE2 0xF6 (loop Jb)
-n-i-bz  Make suppressions work for "???" lines in stacktraces.
-111006  bogus warnings from linuxthreads
-111092  x86: dis_Grp2(Reg): unhandled case(x86) 
-111231  sctp_getladdrs() and sctp_getpaddrs() returns uninitialized
-        memory
-111102  (comment #4)   Fixed 64-bit unclean "silly arg" message
-n-i-bz  vex x86->IR: unhandled instruction bytes: 0x14 0x0
-n-i-bz  minor umount/fcntl wrapper fixes
-111090  Internal Error running Massif
-101204  noisy warning
-111513  Illegal opcode for SSE instruction (x86 movups)
-111555  VEX/Makefile: CC is set to gcc
-n-i-bz  Fix XML bugs in FAQ
-
-(3.0.1: 29 August 05,
-        vex/branches/VEX_3_0_BRANCH r1367,
-        valgrind/branches/VALGRIND_3_0_BRANCH r4574).
-
-
-
-Release 3.0.0 (3 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.0.0 is a major overhaul of Valgrind.  The most significant user
-visible change is that Valgrind now supports architectures other than
-x86.  The new architectures it supports are AMD64 and PPC32, and the
-infrastructure is present for other architectures to be added later.
-
-AMD64 support works well, but has some shortcomings:
-
-- It generally won't be as solid as the x86 version.  For example,
-  support for more obscure instructions and system calls may be missing.
-  We will fix these as they arise.
-
-- Address space may be limited; see the point about
-  position-independent executables below.
-
-- If Valgrind is built on an AMD64 machine, it will only run 64-bit
-  executables.  If you want to run 32-bit x86 executables under Valgrind
-  on an AMD64, you will need to build Valgrind on an x86 machine and
-  copy it to the AMD64 machine.  And it probably won't work if you do
-  something tricky like exec'ing a 32-bit program from a 64-bit program
-  while using --trace-children=yes.  We hope to improve this situation
-  in the future.
-
-The PPC32 support is very basic.  It may not work reliably even for
-small programs, but it's a start.  Many thanks to Paul Mackerras for
-his great work that enabled this support.  We are working to make
-PPC32 usable as soon as possible.
-
-Other user-visible changes:
-
-- Valgrind is no longer built by default as a position-independent
-  executable (PIE), as this caused too many problems.
-
-  Without PIE enabled, AMD64 programs will only be able to access 2GB of
-  address space.  We will fix this eventually, but not for the moment.
-  
-  Use --enable-pie at configure-time to turn this on.
-
-- Support for programs that use stack-switching has been improved.  Use
-  the --max-stackframe flag for simple cases, and the
-  VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and
-  VALGRIND_STACK_CHANGE client requests for trickier cases.
-
-- Support for programs that use self-modifying code has been improved,
-  in particular programs that put temporary code fragments on the stack.
-  This helps for C programs compiled with GCC that use nested functions,
-  and also Ada programs.  This is controlled with the --smc-check
-  flag, although the default setting should work in most cases.
-
-- Output can now be printed in XML format.  This should make it easier
-  for tools such as GUI front-ends and automated error-processing
-  schemes to use Valgrind output as input.  The --xml flag controls this.
-  As part of this change, ELF directory information is read from executables,
-  so absolute source file paths are available if needed.
-
-- Programs that allocate many heap blocks may run faster, due to
-  improvements in certain data structures.
-
-- Addrcheck is currently not working.  We hope to get it working again
-  soon.  Helgrind is still not working, as was the case for the 2.4.0
-  release.
-
-- The JITter has been completely rewritten, and is now in a separate
-  library, called Vex.  This enabled a lot of the user-visible changes,
-  such as new architecture support.  The new JIT unfortunately translates
-  more slowly than the old one, so programs may take longer to start.
-  We believe the code quality is produces is about the same, so once
-  started, programs should run at about the same speed.  Feedback about
-  this would be useful.
-
-  On the plus side, Vex and hence Memcheck tracks value flow properly
-  through floating point and vector registers, something the 2.X line
-  could not do.  That means that Memcheck is much more likely to be
-  usably accurate on vectorised code.
-
-- There is a subtle change to the way exiting of threaded programs
-  is handled.  In 3.0, Valgrind's final diagnostic output (leak check,
-  etc) is not printed until the last thread exits.  If the last thread
-  to exit was not the original thread which started the program, any
-  other process wait()-ing on this one to exit may conclude it has
-  finished before the diagnostic output is printed.  This may not be
-  what you expect.  2.X had a different scheme which avoided this
-  problem, but caused deadlocks under obscure circumstances, so we
-  are trying something different for 3.0.
-
-- Small changes in control log file naming which make it easier to
-  use valgrind for debugging MPI-based programs.  The relevant
-  new flags are --log-file-exactly= and --log-file-qualifier=.
-
-- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding
-  support was added.  In principle this means Valgrind can produce
-  meaningful backtraces on x86 code compiled with -fomit-frame-pointer
-  providing you also compile your code with -fasynchronous-unwind-tables.
-
-- The documentation build system has been completely redone.
-  The documentation masters are now in XML format, and from that
-  HTML, PostScript and PDF documentation is generated.  As a result
-  the manual is now available in book form.  Note that the
-  documentation in the source tarballs is pre-built, so you don't need
-  any XML processing tools to build Valgrind from a tarball.
-
-Changes that are not user-visible:
-
-- The code has been massively overhauled in order to modularise it.
-  As a result we hope it is easier to navigate and understand.
-
-- Lots of code has been rewritten.
-
-BUGS FIXED:
-
-110046  sz == 4 assertion failed 
-109810  vex amd64->IR: unhandled instruction bytes: 0xA3 0x4C 0x70 0xD7
-109802  Add a plausible_stack_size command-line parameter ?
-109783  unhandled ioctl TIOCMGET (running hw detection tool discover) 
-109780  unhandled ioctl BLKSSZGET (running fdisk -l /dev/hda)
-109718  vex x86->IR: unhandled instruction: ffreep 
-109429  AMD64 unhandled syscall: 127 (sigpending)
-109401  false positive uninit in strchr from ld-linux.so.2
-109385  "stabs" parse failure 
-109378  amd64: unhandled instruction REP NOP
-109376  amd64: unhandled instruction LOOP Jb 
-109363  AMD64 unhandled instruction bytes 
-109362  AMD64 unhandled syscall: 24 (sched_yield)
-109358  fork() won't work with valgrind-3.0 SVN
-109332  amd64 unhandled instruction: ADC Ev, Gv
-109314  Bogus memcheck report on amd64
-108883  Crash; vg_memory.c:905 (vgPlain_init_shadow_range):
-        Assertion `vgPlain_defined_init_shadow_page()' failed.
-108349  mincore syscall parameter checked incorrectly 
-108059  build infrastructure: small update
-107524  epoll_ctl event parameter checked on EPOLL_CTL_DEL
-107123  Vex dies with unhandled instructions: 0xD9 0x31 0xF 0xAE
-106841  auxmap & openGL problems
-106713  SDL_Init causes valgrind to exit
-106352  setcontext and makecontext not handled correctly 
-106293  addresses beyond initial client stack allocation 
-        not checked in VALGRIND_DO_LEAK_CHECK
-106283  PIE client programs are loaded at address 0
-105831  Assertion `vgPlain_defined_init_shadow_page()' failed.
-105039  long run-times probably due to memory manager 
-104797  valgrind needs to be aware of BLKGETSIZE64
-103594  unhandled instruction: FICOM
-103320  Valgrind 2.4.0 fails to compile with gcc 3.4.3 and -O0
-103168  potentially memory leak in coregrind/ume.c 
-102039  bad permissions for mapped region at address 0xB7C73680
-101881  weird assertion problem
-101543  Support fadvise64 syscalls
-75247   x86_64/amd64 support (the biggest "bug" we have ever fixed)
-
-(3.0RC1: 27 July   05, vex r1303, valgrind r4283).
-(3.0.0:   3 August 05, vex r1313, valgrind r4316).
-
-
-
-Stable release 2.4.1 (1 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-(The notes for this release have been lost.  Sorry!  It would have
-contained various bug fixes but no new features.)
-
-
-
-Stable release 2.4.0 (March 2005) -- CHANGES RELATIVE TO 2.2.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.4.0 brings many significant changes and bug fixes.  The most
-significant user-visible change is that we no longer supply our own
-pthread implementation.  Instead, Valgrind is finally capable of
-running the native thread library, either LinuxThreads or NPTL.
-
-This means our libpthread has gone, along with the bugs associated
-with it.  Valgrind now supports the kernel's threading syscalls, and
-lets you use your standard system libpthread.  As a result:
-
-* There are many fewer system dependencies and strange library-related
-  bugs.  There is a small performance improvement, and a large
-  stability improvement.
-
-* On the downside, Valgrind can no longer report misuses of the POSIX
-  PThreads API.  It also means that Helgrind currently does not work.
-  We hope to fix these problems in a future release.
-
-Note that running the native thread libraries does not mean Valgrind
-is able to provide genuine concurrent execution on SMPs.  We still
-impose the restriction that only one thread is running at any given
-time.
-
-There are many other significant changes too:
-
-* Memcheck is (once again) the default tool.
-
-* The default stack backtrace is now 12 call frames, rather than 4.
-
-* Suppressions can have up to 25 call frame matches, rather than 4.
-
-* Memcheck and Addrcheck use less memory.  Under some circumstances,
-  they no longer allocate shadow memory if there are large regions of
-  memory with the same A/V states - such as an mmaped file.
-
-* The memory-leak detector in Memcheck and Addrcheck has been
-  improved.  It now reports more types of memory leak, including
-  leaked cycles.  When reporting leaked memory, it can distinguish
-  between directly leaked memory (memory with no references), and
-  indirectly leaked memory (memory only referred to by other leaked
-  memory).
-
-* Memcheck's confusion over the effect of mprotect() has been fixed:
-  previously mprotect could erroneously mark undefined data as
-  defined.
-
-* Signal handling is much improved and should be very close to what
-  you get when running natively.  
-
-  One result of this is that Valgrind observes changes to sigcontexts
-  passed to signal handlers.  Such modifications will take effect when
-  the signal returns.  You will need to run with --single-step=yes to
-  make this useful.
-
-* Valgrind is built in Position Independent Executable (PIE) format if
-  your toolchain supports it.  This allows it to take advantage of all
-  the available address space on systems with 4Gbyte user address
-  spaces.
-
-* Valgrind can now run itself (requires PIE support).
-
-* Syscall arguments are now checked for validity.  Previously all
-  memory used by syscalls was checked, but now the actual values
-  passed are also checked.
-
-* Syscall wrappers are more robust against bad addresses being passed
-  to syscalls: they will fail with EFAULT rather than killing Valgrind
-  with SIGSEGV.
-
-* Because clone() is directly supported, some non-pthread uses of it
-  will work.  Partial sharing (where some resources are shared, and
-  some are not) is not supported.
-
-* open() and readlink() on /proc/self/exe are supported.
-
-BUGS FIXED:
-
-88520   pipe+fork+dup2 kills the main program
-88604  Valgrind Aborts when using $VALGRIND_OPTS and user progra...
-88614  valgrind: vg_libpthread.c:2323 (read): Assertion `read_pt...
-88703  Stabs parser fails to handle ";"
-88886  ioctl wrappers for TIOCMBIS and TIOCMBIC
-89032  valgrind pthread_cond_timedwait fails
-89106  the 'impossible' happened
-89139  Missing sched_setaffinity & sched_getaffinity
-89198  valgrind lacks support for SIOCSPGRP and SIOCGPGRP
-89263  Missing ioctl translations for scsi-generic and CD playing
-89440  tests/deadlock.c line endings
-89481  `impossible' happened: EXEC FAILED
-89663  valgrind 2.2.0 crash on Redhat 7.2
-89792  Report pthread_mutex_lock() deadlocks instead of returnin...
-90111  statvfs64 gives invalid error/warning
-90128  crash+memory fault with stabs generated by gnat for a run...
-90778  VALGRIND_CHECK_DEFINED() not as documented in memcheck.h
-90834  cachegrind crashes at end of program without reporting re...
-91028  valgrind: vg_memory.c:229 (vgPlain_unmap_range): Assertio...
-91162  valgrind crash while debugging drivel 1.2.1
-91199  Unimplemented function
-91325  Signal routing does not propagate the siginfo structure
-91599  Assertion `cv == ((void *)0)'
-91604  rw_lookup clears orig and sends the NULL value to rw_new
-91821  Small problems building valgrind with $top_builddir ne $t...
-91844  signal 11 (SIGSEGV) at get_tcb (libpthread.c:86) in corec...
-92264  UNIMPLEMENTED FUNCTION: pthread_condattr_setpshared
-92331  per-target flags necessitate AM_PROG_CC_C_O
-92420  valgrind doesn't compile with linux 2.6.8.1/9
-92513  Valgrind 2.2.0 generates some warning messages
-92528  vg_symtab2.c:170 (addLoc): Assertion `loc->size > 0' failed.
-93096  unhandled ioctl 0x4B3A and 0x5601
-93117  Tool and core interface versions do not match
-93128  Can't run valgrind --tool=memcheck because of unimplement...
-93174  Valgrind can crash if passed bad args to certain syscalls
-93309  Stack frame in new thread is badly aligned
-93328  Wrong types used with sys_sigprocmask()
-93763  /usr/include/asm/msr.h is missing
-93776  valgrind: vg_memory.c:508 (vgPlain_find_map_space): Asser...
-93810  fcntl() argument checking a bit too strict
-94378  Assertion `tst->sigqueue_head != tst->sigqueue_tail' failed.
-94429  valgrind 2.2.0 segfault with mmap64 in glibc 2.3.3
-94645  Impossible happened: PINSRW mem
-94953  valgrind: the `impossible' happened: SIGSEGV
-95667  Valgrind does not work with any KDE app
-96243  Assertion 'res==0' failed
-96252  stage2 loader of valgrind fails to allocate memory
-96520  All programs crashing at _dl_start (in /lib/ld-2.3.3.so) ...
-96660  ioctl CDROMREADTOCENTRY causes bogus warnings
-96747  After looping in a segfault handler, the impossible happens
-96923  Zero sized arrays crash valgrind trace back with SIGFPE
-96948  valgrind stops with assertion failure regarding mmap2
-96966  valgrind fails when application opens more than 16 sockets
-97398  valgrind: vg_libpthread.c:2667 Assertion failed
-97407  valgrind: vg_mylibc.c:1226 (vgPlain_safe_fd): Assertion `...
-97427  "Warning: invalid file descriptor -1 in syscall close()" ...
-97785  missing backtrace
-97792  build in obj dir fails - autoconf / makefile cleanup
-97880  pthread_mutex_lock fails from shared library (special ker...
-97975  program aborts without ang VG messages
-98129  Failed when open and close file 230000 times using stdio
-98175  Crashes when using valgrind-2.2.0 with a program using al...
-98288  Massif broken
-98303  UNIMPLEMENTED FUNCTION pthread_condattr_setpshared
-98630  failed--compilation missing warnings.pm, fails to make he...
-98756  Cannot valgrind signal-heavy kdrive X server
-98966  valgrinding the JVM fails with a sanity check assertion
-99035  Valgrind crashes while profiling
-99142  loops with message "Signal 11 being dropped from thread 0...
-99195  threaded apps crash on thread start (using QThread::start...
-99348  Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_off...
-99568  False negative due to mishandling of mprotect
-99738  valgrind memcheck crashes on program that uses sigitimer
-99923  0-sized allocations are reported as leaks
-99949  program seg faults after exit()
-100036         "newSuperblock's request for 1048576 bytes failed"
-100116         valgrind: (pthread_cond_init): Assertion `sizeof(* cond) ...
-100486         memcheck reports "valgrind: the `impossible' happened: V...
-100833         second call to "mremap" fails with EINVAL
-101156         (vgPlain_find_map_space): Assertion `(addr & ((1 << 12)-1...
-101173         Assertion `recDepth >= 0 && recDepth < 500' failed
-101291         creating threads in a forked process fails
-101313         valgrind causes different behavior when resizing a window...
-101423         segfault for c++ array of floats
-101562         valgrind massif dies on SIGINT even with signal handler r...
-
-
-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.2.0 brings nine months worth of improvements and bug fixes.  We
-believe it to be a worthy successor to 2.0.0.  There are literally
-hundreds of bug fixes and minor improvements.  There are also some
-fairly major user-visible changes:
-
-* A complete overhaul of handling of system calls and signals, and 
-  their interaction with threads.  In general, the accuracy of the 
-  system call, thread and signal simulations is much improved:
-
-  - Blocking system calls behave exactly as they do when running
-    natively (not on valgrind).  That is, if a syscall blocks only the
-    calling thread when running natively, than it behaves the same on
-    valgrind.  No more mysterious hangs because V doesn't know that some
-    syscall or other, should block only the calling thread.
-
-  - Interrupted syscalls should now give more faithful results.
-
-  - Signal contexts in signal handlers are supported.
-
-* Improvements to NPTL support to the extent that V now works 
-  properly on NPTL-only setups.
-
-* Greater isolation between Valgrind and the program being run, so
-  the program is less likely to inadvertently kill Valgrind by
-  doing wild writes.
-
-* Massif: a new space profiling tool.  Try it!  It's cool, and it'll
-  tell you in detail where and when your C/C++ code is allocating heap.
-  Draws pretty .ps pictures of memory use against time.  A potentially
-  powerful tool for making sense of your program's space use.
-
-* File descriptor leakage checks.  When enabled, Valgrind will print out
-  a list of open file descriptors on exit.
-
-* Improved SSE2/SSE3 support.
-
-* Time-stamped output; use --time-stamp=yes
-
-
-
-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.2.0 is not much different from 2.1.2, released seven weeks ago.
-A number of bugs have been fixed, most notably #85658, which gave
-problems for quite a few people.  There have been many internal
-cleanups, but those are not user visible.
-
-The following bugs have been fixed since 2.1.2:
 
-85658   Assert in coregrind/vg_libpthread.c:2326 (open64) !=
-        (void*)0 failed
-        This bug was reported multiple times, and so the following
-        duplicates of it are also fixed: 87620, 85796, 85935, 86065, 
-        86919, 86988, 87917, 88156
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
+AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
+AMD64/macOS 10.13 and nanoMIPS/Linux.
 
-80716   Semaphore mapping bug caused by unmap (sem_destroy)
-        (Was fixed prior to 2.1.2)
+* ==================== CORE CHANGES ===================
 
-86987   semctl and shmctl syscalls family is not handled properly
+* The libiberty demangler has been updated, which brings support for
+  Rust v0 name demangling. [Update: alas, due to a bug, this support
+  isn't working in 3.18.0.]
 
-86696   valgrind 2.1.2 + RH AS2.1 + librt
+* __libc_freeres isn't called anymore after the program recieves a
+  fatal signal. Causing some internal glibc resources to hang around,
+  but preventing any crashes after the program has ended.
 
-86730   valgrind locks up at end of run with assertion failure 
-        in __pthread_unwind
+* The DWARF reader is now very much faster at startup when just
+  --read-inline-info=yes (the default in most cases) is given.
 
-86641   memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
-        (also fixes 74298, a duplicate of this)
+* glibc 2.34, which moved various functions from libpthread.so into
+  libc.so, is now supported.
 
-85947   MMX/SSE unhandled instruction 'sfence'
+* ================== PLATFORM CHANGES =================
 
-84978   Wrong error "Conditional jump or move depends on
-        uninitialised value" resulting from "sbbl %reg, %reg"
+* arm64:
 
-86254   ssort() fails when signed int return type from comparison is 
-        too small to handle result of unsigned int subtraction
+  - v8.2 scalar and vector FABD, FACGE, FACGT and FADD.
+  - v8.2 FP compare & conditional compare instructions.
+  - Zero variants of v8.2 FP compare instructions.
 
-87089   memalign( 4, xxx) makes valgrind assert
+* s390:
 
-86407   Add support for low-level parallel port driver ioctls.
+  - Support the miscellaneous-instruction-extensions facility 3 and
+    the vector-enhancements facility 2.  This enables programs
+    compiled with "-march=arch13" or "-march=z15" to be executed
+    under Valgrind.
 
-70587   Add timestamps to Valgrind output? (wishlist)
+* ppc64:
 
-84937   vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
-        (fixed prior to 2.1.2)
+  - ISA 3.1 support is now complete
+  - ISA 3.0 support for the darn instruction added.
+  - ISA 3.0 support for the vector system call instruction scv added.
+  - ISA 3.0 support for the copy, paste and cpabort instructions added.
+* Support for X86/FreeBSD and AMD64/FreeBSD has been added.
+
+* ==================== OTHER CHANGES ====================
+
+* Memcheck on amd64: minor fixes to remove some false positive
+  undef-value errors
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+208531  [PATCH]: FreeBSD support for valgrind
+368960  WARNING: unhandled amd64-linux syscall: 163 (acct)
+407589  [Linux] Add support for C11 aligned_alloc() and GNU reallocarray()
+423963  Error in child thread when CLONE_PIDFD is used
+426148  crash with "impossible happened" when running BPF CO-RE programs
+429375  PPC ISA 3.1 support is missing, part 9
+431157  PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2
+431306  Update demangler to support Rust v0 name mangling
+432387  s390x: z15 instructions support
+433437  FreeBSD support, part 1
+433438  FreeBSD support, part 2
+433439  FreeBSD support, part 3
+433469  FreeBSD support, part 4
+433473  FreeBSD support, part 5
+433477  FreeBSD support, part 6
+433479  FreeBSD support, part 7
+433504  FreeBSD support, part 8
+433506  FreeBSD support, part 9
+433507  FreeBSD support, part 10
+433508  FreeBSD support, part 11
+433510  FreeBSD support, part 12
+433801  PPC ISA 3.1 support is missing, part 10 (ISA 3.1 support complete)
+433863  s390x: memcheck/tests/s390x/{cds,cs,csg} failures
+434296  s390x: False-positive memcheck diagnostics from vector string
+        instructions
+434840  PPC64 darn instruction not supported
+435665  PPC ISA 3.0 copy, paste, cpabort instructions are not supported 
+435908  valgrind tries to fetch from deubginfod for files which already
+        have debug information
+438871  unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2
+439046  valgrind is unusably large when linked with lld
+439090  Implement close_range(2)
+439326  Valgrind 3.17.0 won't compile with Intel 2021 oneAPI compilers
+439590  glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so*
+440670  unhandled ppc64le-linux syscall: 252 statfs64 and 253 fstatfs64
+440906  Fix impossible constraint issue in P10 testcase.
+441512  Remove a unneeded / unnecessary prefix check.
+441534  Update the expected output for test_isa_3_1_VRT.
+442061  very slow execution under Fedora 34 (readdwarf3)
+443031  Gcc -many change requires explicit .machine directives
+443033  Add support for the ISA 3.0 mcrxrx instruction
+443034  Sraw, srawi, srad, sradi, mfs
+443178  Powerpc, test jm-mfspr expected output needs to be updated.
+443179  Need new test for the lxvx and stxvx instructions on ISA 2.07 and
+        ISA 3.0 systems.
+443180  The subnormal test and the ISA 3.0 test generate compiler warnings
+443314  In the latest GIT version, Valgrind with "--trace-flags" crashes
+        at "al" register
+443605  Don't call final_tidyup (__libc_freeres) on FatalSignal
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+(3.18.0.RC1: 12 Oct 2021)
+(3.18.0:     15 Oct 2021)
+
+
+
+Release 3.17.0 (19 Mar 2021)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-86317   cannot load libSDL-1.2.so.0 using valgrind
+3.17.0 fixes a number of bugs and adds some functional changes: support for
+GCC 11, Clang 11, DWARF5 debuginfo, the 'debuginfod' debuginfo server, and
+some new instructions for Arm64, S390 and POWER.  There are also some tool
+updates.
 
-86989   memcpy from mac_replace_strmem.c complains about
-        uninitialized pointers passed when length to copy is zero
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
+support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
+
+* ==================== CORE CHANGES ===================
+
+* DWARF version 5 support.  Valgrind can now read DWARF version 5 debuginfo as
+  produced by GCC 11.
+
+* Valgrind now supports debuginfod, an HTTP server for distributing ELF/DWARF
+  debugging information. When a debuginfo file cannot be found locally,
+  Valgrind is able to query debuginfod servers for the file using its
+  build-id. See the user manual for more information about debuginfod support.
+
+* ================== PLATFORM CHANGES =================
+
+* arm64:
+
+  - Inaccuracies resulting from double-rounding in the simulation of
+    floating-point multiply-add/subtract instructions have been fixed.  These
+    should now behave exactly as the hardware does.
+
+  - Partial support for the ARM v8.2 instruction set.  v8.2 support work is
+    ongoing.  Support for the half-word variants of at least the following
+    instructions has been added:
+       FABS <Hd>, <Hn>
+       FABS <Vd>.<T>, <Vn>.<T>
+       FNEG <Hd>, <Hn>
+       FNEG <Vd>.<T>, <Vn>.<T>
+       FSQRT <Hd>, <Hn>
+       FSQRT <Vd>.<T>, <Vn>.<T>
+       FADDP
+
+* s390:
+
+  - Implement the new instructions/features that were added to z/Architecture
+    with the vector-enhancements facility 1.  Also cover the instructions from
+    the vector-packed-decimal facility that are defined outside the chapter
+    "Vector Decimal Instructions", but not the ones from that chapter itself.
+
+    For a detailed list of newly supported instructions see the updates to
+    `docs/internals/s390-opcodes.csv'.
+
+    Since the miscellaneous instruction extensions facility 2 was already
+    added in Valgrind 3.16.0, this completes the support necessary to run
+    general programs built with `--march=z14' under Valgrind.  The
+    vector-packed-decimal facility is currently not exploited by the standard
+    toolchain and libraries.
+
+* ppc64:
+
+  - Various bug fixes.  Fix for the sync field to limit setting just two of
+    the two bits in the L-field. Fix the write size for the stxsibx and
+    stxsihx instructions.  Fix the modsw and modsd instructions.
+
+  - Partial support for ISA 3.1 has been added.  Support for the VSX PCV mask
+    instructions, bfloat16 GER instructions, and bfloat16 to/from float 32-bit
+    conversion instructions are still missing.
+
+* ==================== TOOL CHANGES ====================
+
+* General tool changes
+
+  - All the tools and their vgpreload libraries are now installed under
+    libexec because they cannot be executed directly and should be run through
+    the valgrind executable. This should be an internal, not user visible,
+    change, but might impact valgrind packagers.
+
+  - The --track-fds option now respects -q, --quiet and won't output anything
+    if no file descriptors are leaked. It also won't report the standard stdin
+    (0), stdout (1) or stderr (2) descriptors as being leaked with
+    --trace-fds=yes anymore. To track whether the standard file descriptors
+    are still open at the end of the program run use --trace-fds=all.
+
+* DHAT:
+
+  - DHAT has been extended, with two new modes of operation. The new
+    --mode=copy flag triggers copy profiling, which records calls to memcpy,
+    strcpy, and similar functions. The new --mode=ad-hoc flag triggers ad hoc
+    profiling, which records calls to the DHAT_AD_HOC_EVENT client request in
+    the new dhat/dhat.h file. This is useful for learning more about hot code
+    paths. See the user manual for more information about the new modes.
+
+  - Because of these changes, DHAT's file format has changed. DHAT output
+    files produced with earlier versions of DHAT will not work with this
+    version of DHAT's viewer, and DHAT output files produced with this version
+    of DHAT will not work with earlier versions of DHAT's viewer.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+140178  open("/proc/self/exe", ...); doesn't quite work
+140939 --track-fds reports leakage of stdout/in/err and doesn't respect -q
+217695  malloc/calloc/realloc/memalign failure doesn't set errno to ENOMEM
+338633  gdbserver_tests/nlcontrolc.vgtest hangs on arm64
+345077  linux syscall execveat support (linux 3.19)
+361770  Missing F_ADD_SEALS
+369029  handle linux syscalls sched_getattr and sched_setattr
+384729  __libc_freeres inhibits cross-platform valgrind
+388787  Support for C++17 new/delete
+391853  Makefile.all.am:L247 and @SOLARIS_UNDEF_LARGESOURCE@ being empty
+396656  Warnings while reading debug info
+397605  ioctl FICLONE mishandled
+401416  Compile failure with openmpi 4.0
+408663  Suppression file for musl libc
+404076  s390x: z14 vector instructions not implemented
+410743  shmat() calls for 32-bit programs fail when running in 64-bit valgrind
+        (actually affected all x86 and nanomips regardless of host bitness)
+413547  regression test does not check for Arm 64 features.
+414268  Enable AArch64 feature detection and decoding for v8.x instructions
+415293  Incorrect call-graph tracking due to new _dl_runtime_resolve_xsave*
+422174  unhandled instruction bytes: 0x48 0xE9 (REX prefixed JMP instruction)
+422261  platform selection fails for unqualified client name
+422623  epoll_ctl warns for uninitialized padding on non-amd64 64bit arches
+423021  PPC:  Add missing ISA 3.0 documentation link and HWCAPS test.
+423195  PPC ISA 3.1 support is missing, part 1
+423361  Adds io_uring support on arm64/aarch64 (and all other arches)
+424012  crash with readv/writev having invalid but not NULL arg2 iovec
+424298  amd64: Implement RDSEED
+425232  PPC ISA 3.1 support is missing, part 2
+425820  Failure to recognize vpcmpeqq as a dependency breaking idiom.
+426014  arm64: implement fmadd and fmsub as Iop_MAdd/Sub
+426123  PPC ISA 3.1 support is missing, part 3
+426144  Fix "condition variable has not been initialized" on Fedora 33.
+427400  PPC ISA 3.1 support is missing, part 4
+427401  PPC ISA 3.1 support is missing, part 5
+427404  PPC ISA 3.1 support is missing, part 6
+427870  lmw, lswi and related PowerPC insns aren't allowed on ppc64le
+427787  Support new faccessat2 linux syscall (439)
+427969  debuginfo section duplicates a section in the main ELF file
+428035  drd: Unbreak the musl build
+428648  s390_emit_load_mem panics due to 20-bit offset for vector load
+428716  cppcheck detects potential leak in VEX/useful/smchash.c
+428909  helgrind: need to intercept duplicate libc definitions for Fedora 33
+429352  PPC ISA 3.1 support is missing, part 7
+429354  PPC ISA 3.1 support is missing, part 8
+429692  unhandled ppc64le-linux syscall: 147 (getsid)
+429864  s390x: C++ atomic test_and_set yields false-positive memcheck
+        diagnostics
+429952  Errors when building regtest with clang
+430354  ppc stxsibx and stxsihx instructions write too much data
+430429  valgrind.h doesn't compile on s390x with clang
+430485  expr_is_guardable doesn't handle Iex_Qop
+431556  Complete arm64 FADDP v8.2 instruction support
+432102  Add support for DWARF5 as produced by GCC11
+432161  Addition of arm64 v8.2 FADDP, FNEG and FSQRT
+432381  drd: Process STACK_REGISTER client requests
+432552  [AArch64] invalid error emitted for pre-decremented byte/hword addresses
+432672  vg_regtest: test-specific environment variables not reset between tests
+432809  VEX should support REX.W + POPF
+432861  PPC modsw and modsd give incorrect results for 1 mod 12
+432870  gdbserver_tests:nlcontrolc hangs with newest glibc2.33 x86-64
+432215  Add debuginfod functionality
+433323  Use pkglibexecdir as vglibdir
+433500  DRD regtest faulures when libstdc++ and libgcc debuginfo are installed
+433629  valgrind/README has type "abd" instead of "and"
+433641  Rust std::sys::unix::fs::try_statx Syscall param fstatat(file_name)
+433898  arm64: Handle sp, lr, fp as DwReg in CfiExpr
+434193  GCC 9+ inlined strcmp causes "Conditional jump or move [..] value" report
+n-i-bz  helgrind: If hg_cli__realloc fails, return NULL.
+n-i-bz  arm64 front end: avoid Memcheck false positives relating to CPUID
+
+(3.17.0.RC1: 13 Mar 2021)
+(3.17.0.RC2: 17 Mar 2021)
+(3.17.0:     19 Mar 2021)
+
+
+
+Release 3.16.1 (22 June 2020)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-85811   gnu pascal symbol causes segmentation fault; ok in 2.0.0
+3.16.1 fixes two critical bugs discovered after 3.16.0 was frozen.  It also
+fixes character encoding problems in the documentation HTML.
 
-79138   writing to sbrk()'d memory causes segfault
+422677  PPC sync instruction L field should only be 2 bits in ISA 3.0
+422715  32-bit x86: vex: the `impossible' happened: expr_is_guardable: unhandled expr
 
-77369   sched deadlock while signal received during pthread_join
-        and the joined thread exited
+(3.16.1, 22 June 2020, 36d6727e1d768333a536f274491e5879cab2c2f7)
 
-88115   In signal handler for SIGFPE,  siginfo->si_addr is wrong 
-        under Valgrind
 
-78765   Massif crashes on app exit if FP exceptions are enabled
 
-Additionally there are the following changes, which are not 
-connected to any bug report numbers, AFAICS:
+Release 3.16.0 (27 May 2020)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Fix scary bug causing mis-identification of SSE stores vs
-  loads and so causing memcheck to sometimes give nonsense results
-  on SSE code.
+3.16.0 is a feature release with many improvements and the usual collection of
+bug fixes.
 
-* Add support for the POSIX message queue system calls.
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
+support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
 
-* Fix to allow 32-bit Valgrind to run on AMD64 boxes.  Note: this does
-  NOT allow Valgrind to work with 64-bit executables - only with 32-bit
-  executables on an AMD64 box.
+* ==================== CORE CHANGES ===================
 
-* At configure time, only check whether linux/mii.h can be processed 
-  so that we don't generate ugly warnings by trying to compile it.
+* It is now possible to dynamically change the value of many command line
+  options while your program (or its children) are running under Valgrind.
 
-* Add support for POSIX clocks and timers.
+  To see the list of dynamically changeable options, run
+     "valgrind --help-dyn-options".
 
+  You can change the options from the shell by using vgdb to launch
+  the monitor command "v.clo <clo option>...".
+  The same monitor command can be used from a gdb connected
+  to the valgrind gdbserver.
+  Your program can also change the dynamically changeable options using
+  the client request VALGRIND_CLO_CHANGE(option).
+
+* ================== PLATFORM CHANGES =================
+
+* MIPS: preliminary support for nanoMIPS instruction set has been added.
+
+* ==================== TOOL CHANGES ====================
+
+* DHAT:
+
+  - The implicit memcpy done by each call to realloc now counts towards the
+    read and write counts of resized heap blocks, making those counts higher
+    and more accurate.
+
+* Cachegrind:
+
+  - cg_annotate's --auto and --show-percs options now default to 'yes', because
+    they are usually wanted.
+
+* Callgrind:
+
+  - callgrind_annotate's --auto and --show-percs options now default to 'yes',
+    because they are usually wanted.
+
+  - The command option --collect-systime has been enhanced to specify
+    the unit used to record the elapsed time spent during system calls.
+    The command option now accepts the values no|yes|msec|usec|nsec,
+    where yes is a synonym of msec.  When giving the value nsec, the
+    system cpu time of system calls is also recorded.
+
+* Memcheck:
+
+  - Several memcheck options are now dynamically changeable.
+    Use  valgrind --help-dyn-options  to list them.
+
+  - The release 3.15 introduced a backward incompatible change for
+    some suppression entries related to preadv and pwritev syscalls.
+    When reading a suppression entry using the unsupported 3.14 format,
+    valgrind will now produce a warning to say the suppression entry will not
+    work, and suggest the needed change.
+
+  - Significantly fewer false positive errors on optimised code generated by
+    Clang and GCC.  In particular, Memcheck now deals better with the
+    situation where the compiler will transform C-level "A && B" into "B && A"
+    under certain circumstances (in which the transformation is valid).
+    Handling of integer equality/non-equality checks on partially defined
+    values is also improved on some architectures.
+
+* exp-sgcheck:
+
+  - The exprimental Stack and Global Array Checking tool has been removed.
+    It only ever worked on x86 and amd64, and even on those it had a
+    high false positive rate and was slow.  An alternative for detecting
+    stack and global array overruns is using the AddressSanitizer (ASAN)
+    facility of the GCC and Clang compilers, which require you to rebuild
+    your code with -fsanitize=address.
+
+* ==================== OTHER CHANGES ====================
+
+* New and modified GDB server monitor features:
+
+  - Option -T tells vgdb to output a timestamp in the vgdb information messages.
+
+  - The gdbserver monitor commands that require an address and an optional
+    length argument now accepts the alternate 'C like' syntax "address[length]".
+    For example, the memcheck command "monitor who_points_at 0x12345678 120"
+    can now also be given as "monitor who_points_at 0x12345678[120]".
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+343099  Linux setns syscall wrapper missing, unhandled syscall: 308
+        == 368923 WARNING: unhandled arm64-linux syscall: 268 (setns)
+        == 369031 WARNING: unhandled amd64-linux syscall: 308 (setns)
+385386  Assertion failed "szB >= CACHE_ENTRY_SIZE" at m_debuginfo/image.c:517
+400162  Patch: Guard against __GLIBC_PREREQ for musl libc
+400593  In Coregrind, use statx for some internal syscalls if [f]stat[64] fail
+400872  Add nanoMIPS support to Valgrind
+403212  drd/tests/trylock hangs on FreeBSD
+404406  s390x: z14 miscellaneous instructions not implemented
+405201  Incorrect size of struct vki_siginfo on 64-bit Linux architectures
+406561  mcinfcallWSRU gdbserver_test fails on ppc64
+406824  Unsupported baseline
+407218  Add support for the copy_file_range syscall
+407307  Intercept stpcpy also in ld.so for arm64
+407376  Update Xen support to 4.12 (4.13, actually) and add more coverage
+        == 390553
+407764  drd cond_post_wait gets wrong (?) condition on s390x z13 system
+408009  Expose rdrand and f16c even on avx if host cpu supports them
+408091  Missing pkey syscalls
+408414  Add support for missing for preadv2 and pwritev2 syscalls
+409141  Valgrind hangs when SIGKILLed
+409206  Support for Linux PPS and PTP ioctls
+409367  exit_group() after signal to thread waiting in futex() causes hangs
+409429  amd64: recognize 'cmpeq' variants as a dependency breaking idiom
+409780  References to non-existent configure.in
+410556  Add support for BLKIO{MIN,OPT} and BLKALIGNOFF ioctls
+410599  Non-deterministic behaviour of pth_self_kill_15_other test
+410757  discrepancy for preadv2/pwritev2 syscalls across different versions
+411134  Allow the user to change a set of command line options during execution
+411451  amd64->IR of bt/btc/bts/btr with immediate clears zero flag
+412344  Problem setting mips flags with specific paths
+412408  unhandled arm-linux syscall: 124 - adjtime - on arm-linux
+413119  Ioctl wrapper for DRM_IOCTL_I915_GEM_MMAP
+413330  avx-1 test fails on AMD EPYC 7401P 24-Core Processor
+413603  callgrind_annotate/cg_annotate truncate function names at '#'
+414565  Specific use case bug found in SysRes VG_(do_sys_sigprocmask)
+415136  ARMv8.1 Compare-and-Swap instructions are not supported
+415757  vex x86->IR: 0x66 0xF 0xCE 0x4F (bswapw)
+416239  valgrind crashes when handling clock_adjtime
+416285  Use prlimit64 in VG_(getrlimit) and VG_(setrlimit)
+416286  DRD reports "conflicting load" error on std::mutex::lock()
+416301  s390x: "compare and signal" not supported
+416387  finit_module and bpf syscalls are unhandled on arm64
+416464  Fix false reports for uninitialized memory for PR_CAPBSET_READ/DROP
+416667  gcc10 ppc64le impossible constraint in 'asm' in test_isa.
+416753  new 32bit time syscalls for 2038+
+417075  pwritev(vector[...]) suppression ignored
+        417075 is not fixed, but incompatible supp entries are detected
+        and a warning is produced for these.
+417187  [MIPS] Conditional branch problem since 'grail' changes
+417238  Test memcheck/tests/vbit-test fails on mips64 BE
+417266  Make memcheck/tests/linux/sigqueue usable with musl
+417281  s390x: /bin/true segfaults with "grail" enabled
+417427  commit to fix vki_siginfo_t definition created numerous regression
+        errors on ppc64
+417452  s390_insn_store_emit: dst->tag for HRcVec128
+417578  Add suppressions for glibc DTV leaks
+417906  clone with CLONE_VFORK and no CLONE_VM fails
+418004  Grail code additions break ppc64.
+418435  s390x: spurious "Conditional jump or move depends on uninitialised [..]"
+418997  s390x: Support Iex_ITE for float and vector types
+419503  s390x: Avoid modifying registers returned from isel functions
+421321  gcc10 arm64 build needs __getauxval for linking with libgcc
+421570  std_mutex fails on Arm v8.1 h/w
+434035  vgdb might crash if valgrind is killed
+n-i-bz  Fix minor one time leaks in dhat.
+n-i-bz  Add --run-cxx-freeres=no in outer args to avoid inner crashes.
+n-i-bz  Add support for the Linux io_uring system calls
+n-i-bz  sys_statx: don't complain if both |filename| and |buf| are NULL.
+n-i-bz  Fix non-glibc build of test suite with s390x_features
+n-i-bz  MinGW, include/valgrind.h: Fix detection of 64-bit mode
+423195  PPC ISA 3.1 support is missing, part 1
+
+(3.16.0.RC1:  18 May 2020, git 6052ee66a0cf5234e8e2a2b49a8760226bc13b92)
+(3.16.0.RC2:  19 May 2020, git 940ec1ca69a09f7fdae3e800b7359f85c13c4b37)
+(3.16.0:      27 May 2020, git bf5e647edb9e96cbd5c57cc944984402eeee296d)
+
+
+
+Release 3.15.0 (12 April 2019)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+3.15.0 is a feature release with many improvements and the usual collection of
+bug fixes.
 
-Developer (cvs head) release 2.1.2 (18 July 2004)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.1.2 contains four months worth of bug fixes and refinements.
-Although officially a developer release, we believe it to be stable
-enough for widespread day-to-day use.  2.1.2 is pretty good, so try it
-first, although there is a chance it won't work.  If so then try 2.0.0
-and tell us what went wrong."  2.1.2 fixes a lot of problems present
-in 2.0.0 and is generally a much better product.
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
+support for X86/macOS 10.13 and AMD64/macOS 10.13.
 
-Relative to 2.1.1, a large number of minor problems with 2.1.1 have
-been fixed, and so if you use 2.1.1 you should try 2.1.2.  Users of
-the last stable release, 2.0.0, might also want to try this release.
+* ==================== CORE CHANGES ===================
 
-The following bugs, and probably many more, have been fixed.  These
-are listed at http://bugs.kde.org.  Reporting a bug for valgrind in
-the http://bugs.kde.org is much more likely to get you a fix than
-mailing developers directly, so please continue to keep sending bugs
-there.
+* The XTree Massif output format now makes use of the information obtained
+  when specifying --read-inline-info=yes.
 
-76869   Crashes when running any tool under Fedora Core 2 test1
-        This fixes the problem with returning from a signal handler 
-        when VDSOs are turned off in FC2.
+* amd64 (x86_64): the RDRAND and F16C insn set extensions are now supported.
 
-69508   java 1.4.2 client fails with erroneous "stack size too small".
-        This fix makes more of the pthread stack attribute related 
-        functions work properly.  Java still doesn't work though.
+* ==================== TOOL CHANGES ====================
 
-71906   malloc alignment should be 8, not 4
-        All memory returned by malloc/new etc is now at least
-        8-byte aligned.
+* DHAT: 
 
-81970   vg_alloc_ThreadState: no free slots available
-        (closed because the workaround is simple: increase
-         VG_N_THREADS, rebuild and try again.)
+  - DHAT been thoroughly overhauled, improved, and given a GUI.  As a result,
+    it has been promoted from an experimental tool to a regular tool.  Run it
+    with --tool=dhat instead of --tool=exp-dhat.
 
-78514   Conditional jump or move depends on uninitialized value(s)
-        (a slight mishanding of FP code in memcheck)
+  - DHAT now prints only minimal data when the program ends, instead writing
+    the bulk of the profiling data to a file.  As a result, the --show-top-n
+    and --sort-by options have been removed.
+    
+  - Profile results can be viewed with the new viewer, dh_view.html.  When
+    a run ends, a short message is printed, explaining how to view the result.
+    
+  - See the documentation for more details.
+
+* Cachegrind:
+
+  - cg_annotate has a new option, --show-percs, which prints percentages next
+    to all event counts.
+
+* Callgrind:
+
+  - callgrind_annotate has a new option, --show-percs, which prints percentages
+    next to all event counts.
+
+  - callgrind_annotate now inserts commas in call counts, and
+    sort the caller/callee lists in the call tree.
+
+* Massif:
+
+  - The default value for --read-inline-info is now "yes" on
+    Linux/Android/Solaris. It is still "no" on other OS.
+
+* Memcheck:
+
+  - The option --xtree-leak=yes (to output leak result in xtree format)
+    automatically activates the option --show-leak-kinds=all, as xtree
+    visualisation tools such as kcachegrind can in any case select what kind
+    of leak to visualise.
+
+  - There has been further work to avoid false positives.  In particular,
+    integer equality on partially defined inputs (C == and !=) is now handled
+    better.
+
+* ==================== OTHER CHANGES ====================
+
+* The new option --show-error-list=no|yes displays, at the end of the run, the
+  list of detected errors and the used suppressions.  Prior to this change,
+  showing this information could only be done by specifying "-v -v", but that
+  also produced a lot of other possibly-non-useful messages.  The option -s is
+  equivalent to --show-error-list=yes.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+385411  s390x: z13 vector floating-point instructions not implemented
+397187  z13 vector register support for vgdb gdbserver
+398183  Vex errors with _mm256_shuffle_epi8/vpshufb
+398870  Please add support for instruction vcvtps2ph
+399287  amd64 front end: Illegal Instruction vcmptrueps
+399301  Use inlined frames in Massif XTree output. 
+399322  Improve callgrind_annotate output
+399444  VEX/priv/guest_s390_toIR.c:17407: (style) Mismatching assignment [..]
+400164  helgrind test encounters mips x-compiler warnings and assembler error
+400490  s390x: VRs allocated as if separate from FPRs
+400491  s390x: Operand of LOCH treated as unsigned integer
+400975  Compile error: error: '-mips64r2' conflicts with the other architecture
+        options, which specify a mips64 processor
+401112  LLVM 5.0 generates comparison against partially initialized data
+401277  More bugs in z13 support
+401454  Add a --show-percs option to cg_annotate and callgrind_annotate.
+401578  drd: crashes sometimes on fork()
+401627  memcheck errors with glibc avx2 optimized wcsncmp
+401822  none/tests/ppc64/jm-vmx fails and produces assembler warnings
+401827  none/tests/ppc64/test_isa_2_06_part3 failure on ppc64le (xvrsqrtesp)
+401828  none/tests/ppc64/test_isa_2_06_part1 failure on ppc64le (fcfids and
+        fcfidus)
+402006  mark helper regs defined in final_tidyup before freeres_wrapper call
+402048  WARNING: unhandled ppc64[be|le]-linux syscall: 26 (ptrace)
+402123  invalid assembler opcodes for mips32r2
+402134  assertion fail in mc_translate.c (noteTmpUsesIn) Iex_VECRET on arm64
+402327  Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x13 (DW_OP_drop)
+402341  drd/tests/tsan_thread_wrappers_pthread.h:369: suspicious code ?
+402351  mips64 libvexmultiarch_test fails on s390x
+402369  Overhaul DHAT
+402395  coregrind/vgdb-invoker-solaris.c: 2 * poor error checking
+402480  Do not use %rsp in clobber list
+402481  vbit-test fails on x86 for Iop_CmpEQ64 iselInt64Expr Sar64
+402515  Implement new option --show-error-list=no|yes / -s
+402519  POWER 3.0 addex instruction incorrectly implemented
+402781  Redo the cache used to process indirect branch targets
+403123  vex amd64->IR:0xF3 0x48 0xF 0xAE 0xD3 (wrfsbase)
+403552  s390x: wrong facility bit checked for vector facility
+404054  memcheck powerpc subfe x, x, x initializes x to 0 or -1 based on CA
+404638  Add VG_(replaceIndexXA)
+404843  s390x: backtrace sometimes ends prematurely
+404888  autotools cleanup series
+405079  unhandled ppc64le-linux syscall: 131 (quotactl)
+405182  Valgrind fails to build with Clang
+405205  filter_libc: remove the line holding the futex syscall error entirely
+405356  PPC64, xvcvsxdsp, xvcvuxdsp are supposed to write the 32-bit result to
+        the upper and lower 32-bits of the 64-bit result
+405362  PPC64, vmsummbm instruction doesn't handle overflow case correctly
+405363  PPC64, xvcvdpsxws, xvcvdpuxws, do not handle NaN arguments correctly.
+405365  PPC64, function _get_maxmin_fp_NaN() doesn't handle QNaN, SNaN case
+        correctly.
+405403  s390x disassembler cannot be used on x86
+405430  Use gcc -Wimplicit-fallthrough=2 by default if available
+405458  MIPS mkFormVEC arguments swapped?
+405716  drd: Fix an integer overflow in the stack margin calculation
+405722  Support arm64 core dump
+405733  PPC64, xvcvdpsp should write 32-bit result to upper and lower 32-bits
+        of the 64-bit destination field.
+405734  PPC64, vrlwnm, vrlwmi, vrldrm, vrldmi do not work properly when me < mb
+405782  "VEX temporary storage exhausted" when attempting to debug slic3r-pe
+406198  none/tests/ppc64/test_isa_3_0_other test sporadically including CA
+        bit in output.
+406256  PPC64, vector floating point instructions don't handle subnormal
+        according to VSCR[NJ] bit setting.
+406352  cachegrind/callgrind fails ann tests because of missing a.c
+406354  dhat is broken on x86 (32bit)
+406355  mcsignopass, mcsigpass, mcbreak fail due to difference in gdb output
+406357  gdbserver_tests fails because of gdb output change
+406360  memcheck/tests/libstdc++.supp needs more supression variants
+406422  none/tests/amd64-linux/map_32bits.vgtest fails too easily
+406465  arm64 insn selector fails on "t0 = <expr>" where <expr> has type Ity_F16
+407340  PPC64, does not support the vlogefp, vexptefp instructions.
+n-i-bz  add syswrap for PTRACE_GET|SET_THREAD_AREA on amd64.
+n-i-bz  Fix callgrind_annotate non deterministic order for equal total
+n-i-bz  callgrind_annotate --threshold=100 does not print all functions.
+n-i-bz  callgrind_annotate Use of uninitialized value in numeric gt (>)
+n-i-bz  amd64 (x86_64): RDRAND and F16C insn set extensions are supported
+
+(3.15.0.RC1:  8 April 2019, git ce94d674de5b99df173aad4c3ee48fc2a92e5d9c)
+(3.15.0.RC2: 11 April 2019, git 0c8be9bbede189ec580ec270521811766429595f)
+(3.15.0:     14 April 2019, git 270037da8b508954f0f7d703a0bebf5364eec548)
+
+
+
+Release 3.14.0 (9 October 2018)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-77952   pThread Support (crash) (due to initialisation-ordering probs)
-        (also 85118)
+3.14.0 is a feature release with many improvements and the usual collection of
+bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.  There is also preliminary
+support for X86/macOS 10.13, AMD64/macOS 10.13.
+
+* ==================== CORE CHANGES ===================
+
+* The new option --keep-debuginfo=no|yes (default no) can be used to retain
+  debug info for unloaded code.  This allows saved stack traces (e.g. for
+  memory leaks) to include file/line info for code that has been dlclose'd (or
+  similar).  See the user manual for more information and known limitations.
+
+* Ability to specify suppressions based on source file name and line number.
+
+* Majorly overhauled register allocator.  No end-user changes, but the JIT
+  generates code a bit more quickly now.
+
+* ================== PLATFORM CHANGES =================
+
+* Preliminary support for macOS 10.13 has been added.
+
+* mips: support for MIPS32/MIPS64 Revision 6 has been added.
+
+* mips: support for MIPS SIMD architecture (MSA) has been added.
+
+* mips: support for MIPS N32 ABI has been added.
+
+* s390: partial support for vector instructions (integer and string) has been
+  added.
+
+* ==================== TOOL CHANGES ====================
+
+* Helgrind: Addition of a flag
+  --delta-stacktrace=no|yes [yes on linux amd64/x86]
+  which specifies how full history stack traces should be computed.
+  Setting this to =yes can speed up Helgrind by 25% when using
+  --history-level=full.
+
+* Memcheck: reduced false positive rate for optimised code created by Clang 6
+  / LLVM 6 on x86, amd64 and arm64.  In particular, Memcheck analyses code
+  blocks more carefully to determine where it can avoid expensive definedness
+  checks without loss of precision.  This is controlled by the flag
+  --expensive-definedness-checks=no|auto|yes [auto].
+
+* ==================== OTHER CHANGES ====================
+
+* Valgrind is now buildable with link-time optimisation (LTO).  A new
+  configure option --enable-lto=yes allows building Valgrind with LTO.  If the
+  toolchain supports it, this produces a smaller/faster Valgrind (up to 10%).
+  Note that if you are doing Valgrind development, --enable-lto=yes massively
+  slows down the build process.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+79362   Debug info is lost for .so files when they are dlclose'd
+208052  strlcpy error when n = 0
+255603  exp-sgcheck Assertion '!already_present' failed
+338252  building valgrind with -flto (link time optimisation) fails
+345763  MIPS N32 ABI support
+368913  WARNING: unhandled arm64-linux syscall: 117 (ptrace)
+        == 388664  unhandled arm64-linux syscall: 117  (ptrace)
+372347  Replacement problem of the additional c++14/c++17 new/delete operators
+373069  memcheck/tests/leak_cpp_interior fails with GCC 5.1+
+376257  helgrind history full speed up using a cached stack
+379373  Fix syscall param msg->desc.port.name points to uninitialised byte(s)
+        on macOS 10.12
+379748  Fix missing pselect syscall (OS X 10.11)
+379754  Fix missing syscall ulock_wait (OS X 10.12)
+380397  s390x: __GI_strcspn() replacemenet needed
+381162  possible array overrun in VEX register allocator
+381272  ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
+381274  powerpc too chatty even with --sigill-diagnostics=no
+381289  epoll_pwait can have a NULL sigmask
+381553  VEX register allocator v3
+381556  arm64: Handle feature registers access on 4.11 Linux kernel or later
+381769  Use ucontext_t instead of struct ucontext
+381805  arm32 needs ld.so index hardwire for new glibc security fixes
+382256  gz compiler flag test doesn't work for gold
+382407  vg_perf needs "--terse" command line option
+382515  "Assertion 'di->have_dinfo' failed." on wine's dlls/mscoree/tests/[..]
+382563  MIPS MSA ASE support
+382998  xml-socket doesn't work
+383275  massif: m_xarray.c:162 (ensureSpaceXA): Assertion '!xa->arr' failed
+383723  Fix missing kevent_qos syscall (macOS 10.11)
+        == 385604  illegal hardware instruction (OpenCV cv::namedWindow)
+384096  Mention AddrCheck at Memcheck's command line option [..]
+384230  vex x86->IR: 0x67 0xE8 0xAB 0x68
+        == 384156  vex x86->IR: 0x67 0xE8 0x6B 0x6A
+        == 386115  vex x86->IR: 0x67 0xE8 0xD3 0x8B any program
+        == 388407  vex x86->IR: 0x67 0xE8 0xAB 0x29
+        == 394903  vex x86->IR: 0x67 0xE8 0x1B 0xDA
+384337  performance improvements to VEX register allocator v2 and v3
+384526  reduce number of spill insns generated by VEX register allocator v3
+384584  Callee saved regs listed first for AMD64, X86, and PPC architectures
+384631  Sanitise client args as printed with -v
+384633  Add a simple progress-reporting facility
+384987  VEX regalloc: allocate caller-save registers for short lived vregs
+385055  PPC VEX temporary storage exhausted
+385182  PPC64 is missing support for the DSCR
+385183  PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp
+385207  PPC64, generate_store_FPRF() generates too many Iops
+385208  PPC64, xxperm instruction exhausts temporary memory
+385210  PPC64, vpermr instruction could exhaust temporary memory
+385279  unhandled syscall: mach:43 (mach_generate_activity_id)
+        == 395136  valgrind: m_syswrap/syswrap-main.c:438 (Bool eq_Syscall[..]
+        == 387045  Valgrind crashing on High Sierra when testing any newly [..]
+385334  PPC64, fix vpermr, xxperm, xxpermr mask value.
+385408  s390x: z13 vector "support" instructions not implemented
+385409  s390x: z13 vector integer instructions not implemented
+385410  s390x: z13 vector string instructions not implemented
+385412  s390x: new non-vector z13 instructions not implemented
+385868  glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning.
+385912  none/tests/rlimit_nofile fails on newer glibc/kernel.
+385939  Optionally exit on the first error
+386318  valgrind.org/info/tools.html is missing SGCheck
+386425  running valgrind + wine on armv7l gives illegal opcode
+386397  PPC64, valgrind truncates powerpc timebase to 32-bits.
+387410  MIPSr6 support
+387664  Memcheck: make expensive-definedness-checks be the default
+387712  s390x cgijnl reports Conditional jump depends on uninitialised value
+387766  asm shifts cause false positive "Conditional jump or move depends
+        on uninitialised value"
+387773  .gnu_debugaltlink paths resolve relative to .debug file, not symlink
+388174  valgrind with Wine quits with "Assertion 'cfsi_fits' failed"
+388786  Support bpf syscall in amd64 Linux
+388862  Add replacements for wmemchr and wcsnlen on Linux
+389065  valgrind meets gcc flag -Wlogical-op
+389373  exp-sgcheck the 'impossible' happened as Ist_LoadG is not instrumented
+390471  suppression by specification of source-file line number
+390723  make xtree dump files world wide readable, similar to log files
+391164  constraint bug in tests/ppc64/test_isa_2_07_part1.c for mtfprwa
+391861  Massif Assertion 'n_ips >= 1 && n_ips <= VG_(clo_backtrace_size)'
+392118  unhandled amd64-linux syscall: 332 (statx)
+392449  callgrind not clearing the number of calls properly
+393017  Add missing support for xsmaxcdp instruction, bug fixes for xsmincdp,
+        lxssp, stxssp and stxvl instructions.
+393023  callgrind_control risks using the wrong vgdb
+393062  build-id ELF phdrs read causes "debuginfo reader: ensure_valid failed"
+393099  posix_memalign() invalid write if alignment == 0
+393146  failing assert "is_DebugInfo_active(di)"
+395709  PPC64 is missing support for the xvnegsp instruction
+395682  Accept read-only PT_LOAD segments and .rodata by ld -z separate-code
+        == 384727
+396475  valgrind OS-X build: config.h not found (out-of-tree macOS builds)
+395991  arm-linux: wine's unit tests enter a signal delivery loop [..]
+396839  s390x: Trap instructions not implemented
+396887  arch_prctl should return EINVAL on unknown option
+        == 397286 crash before launching binary (Unsupported arch_prctl option)
+        == 397393 valgrind: the 'impossible' happened: (Archlinux)
+        == 397521 valgrind: the 'impossible' happened: Unsupported [..]
+396906  compile tests failure on mips32-linux: broken inline asm in tests on
+        mips32-linux
+397012  glibc ld.so uses arch_prctl on i386
+397089  amd64: Incorrect decoding of three-register vmovss/vmovsd opcode 11h
+397354  utimensat should ignore timespec tv_sec if tv_nsec is UTIME_NOW/OMIT
+397424  glibc 2.27 and gdb_server tests
+398028  Assertion `cfsi_fits` failing in simple C program
+398066  s390x: cgijl dep1, 0 reports false unitialised values warning
+
+n-i-bz  Fix missing workq_ops operations (macOS)
+n-i-bz  fix bug in strspn replacement
+n-i-bz  Add support for the Linux BLKFLSBUF ioctl
+n-i-bz  Add support for the Linux BLKREPORTZONE and BLKRESETZONE ioctls
+n-i-bz  Fix possible stack trashing by semctl syscall wrapping
+n-i-bz  Add support for the Linux membarrier() system call
+n-i-bz  x86 front end: recognise and handle UD2 correctly
+n-i-bz  Signal delivery for x86-linux: ensure that the stack pointer is
+        correctly aligned before entering the handler.
+
+(3.14.0.RC1: 30 September 2018, git c2aeea2d28acb0639bcc8cc1e4ab115067db1eae)
+(3.14.0.RC2: 3 October 2018, git 3e214c4858a6fdd5697e767543a0c19e30505582)
+(3.14.0:     9 October 2018, git 353a3587bb0e2757411f9138f5e936728ed6cc4f)
+
+
+
+Release 3.13.0 (15 June 2017)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-80942   Addrcheck wasn't doing overlap checking as it should.
-78048   return NULL on malloc/new etc failure, instead of asserting
-73655   operator new() override in user .so files often doesn't get picked up
-83060   Valgrind does not handle native kernel AIO
-69872   Create proper coredumps after fatal signals
-82026   failure with new glibc versions: __libc_* functions are not exported
-70344   UNIMPLEMENTED FUNCTION: tcdrain 
-81297   Cancellation of pthread_cond_wait does not require mutex
-82872   Using debug info from additional packages (wishlist)
-83025   Support for ioctls FIGETBSZ and FIBMAP
-83340   Support for ioctl HDIO_GET_IDENTITY
-79714   Support for the semtimedop system call.
-77022   Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
-82098   hp2ps ansification (wishlist)
-83573   Valgrind SIGSEGV on execve
-82999   show which cmdline option was erroneous (wishlist)
-83040   make valgrind VPATH and distcheck-clean (wishlist)
-83998   Assertion `newfd > vgPlain_max_fd' failed (see below)
-82722   Unchecked mmap in as_pad leads to mysterious failures later
-78958   memcheck seg faults while running Mozilla 
-85416   Arguments with colon (e.g. --logsocket) ignored
+3.13.0 is a feature release with many improvements and the usual collection of
+bug fixes.
 
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
+X86/Solaris, AMD64/Solaris and AMD64/MacOSX 10.12.
 
-Additionally there are the following changes, which are not 
-connected to any bug report numbers, AFAICS:
-
-* Rearranged address space layout relative to 2.1.1, so that
-  Valgrind/tools will run out of memory later than currently in many
-  circumstances.  This is good news esp. for Calltree.  It should
-  be possible for client programs to allocate over 800MB of
-  memory when using memcheck now.
-
-* Improved checking when laying out memory.  Should hopefully avoid
-  the random segmentation faults that 2.1.1 sometimes caused.
-
-* Support for Fedora Core 2 and SuSE 9.1.  Improvements to NPTL
-  support to the extent that V now works properly on NPTL-only setups.
-
-* Renamed the following options:
-  --logfile-fd  -->  --log-fd
-  --logfile     -->  --log-file
-  --logsocket   -->  --log-socket
-  to be consistent with each other and other options (esp. --input-fd).
-
-* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
-  improve the checking of other interface related ioctls.
-
-* Fix building with gcc-3.4.1.
-
-* Remove limit on number of semaphores supported.
-
-* Add support for syscalls: set_tid_address (258), acct (51).
-
-* Support instruction "repne movs" -- not official but seems to occur.
-
-* Implement an emulated soft limit for file descriptors in addition to
-  the current reserved area, which effectively acts as a hard limit. The
-  setrlimit system call now simply updates the emulated limits as best
-  as possible - the hard limit is not allowed to move at all and just
-  returns EPERM if you try and change it.  This should stop reductions
-  in the soft limit causing assertions when valgrind tries to allocate
-  descriptors from the reserved area.
-  (This actually came from bug #83998).
-
-* Major overhaul of Cachegrind implementation.  First user-visible change
-  is that cachegrind.out files are now typically 90% smaller than they
-  used to be;  code annotation times are correspondingly much smaller.
-  Second user-visible change is that hit/miss counts for code that is
-  unloaded at run-time is no longer dumped into a single "discard" pile,
-  but accurately preserved.
-
-* Client requests for telling valgrind about memory pools.
-
-
-
-Developer (cvs head) release 2.1.1 (12 March 2004)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.1.1 contains some internal structural changes needed for V's
-long-term future.  These don't affect end-users.  Most notable
-user-visible changes are:
-
-* Greater isolation between Valgrind and the program being run, so
-  the program is less likely to inadvertently kill Valgrind by
-  doing wild writes.
-
-* Massif: a new space profiling tool.  Try it!  It's cool, and it'll
-  tell you in detail where and when your C/C++ code is allocating heap.
-  Draws pretty .ps pictures of memory use against time.  A potentially
-  powerful tool for making sense of your program's space use.
-
-* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
-  various signal/syscall things, and various problems with debug
-  info readers.
-
-* Support for glibc-2.3.3 based systems.
-
-We are now doing automatic overnight build-and-test runs on a variety
-of distros.  As a result, we believe 2.1.1 builds and runs on:
-Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
-
-
-The following bugs, and probably many more, have been fixed.  These
-are listed at http://bugs.kde.org.  Reporting a bug for valgrind in
-the http://bugs.kde.org is much more likely to get you a fix than
-mailing developers directly, so please continue to keep sending bugs
-there.
-
-69616   glibc 2.3.2 w/NPTL is massively different than what valgrind expects 
-69856   I don't know how to instrument MMXish stuff (Helgrind)
-73892   valgrind segfaults starting with Objective-C debug info 
-        (fix for S-type stabs)
-73145   Valgrind complains too much about close(<reserved fd>) 
-73902   Shadow memory allocation seems to fail on RedHat 8.0 
-68633   VG_N_SEMAPHORES too low (V itself was leaking semaphores)
-75099   impossible to trace multiprocess programs 
-76839   the `impossible' happened: disInstr: INT but not 0x80 ! 
-76762   vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed. 
-76747   cannot include valgrind.h in c++ program 
-76223   parsing B(3,10) gave NULL type => impossible happens 
-75604   shmdt handling problem 
-76416   Problems with gcc 3.4 snap 20040225 
-75614   using -gstabs when building your programs the `impossible' happened
-75787   Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
-75294   gcc 3.4 snapshot's libstdc++ have unsupported instructions. 
-        (REP RET)
-73326   vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed. 
-72596   not recognizing __libc_malloc 
-69489   Would like to attach ddd to running program 
-72781   Cachegrind crashes with kde programs 
-73055   Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
-73026   Descriptor leak check reports port numbers wrongly 
-71705   README_MISSING_SYSCALL_OR_IOCTL out of date 
-72643   Improve support for SSE/SSE2 instructions 
-72484   valgrind leaves it's own signal mask in place when execing 
-72650   Signal Handling always seems to restart system calls 
-72006   The mmap system call turns all errors in ENOMEM 
-71781   gdb attach is pretty useless 
-71180   unhandled instruction bytes: 0xF 0xAE 0x85 0xE8 
-69886   writes to zero page cause valgrind to assert on exit 
-71791   crash when valgrinding gimp 1.3 (stabs reader problem)
-69783   unhandled syscall: 218 
-69782   unhandled instruction bytes: 0x66 0xF 0x2B 0x80 
-70385   valgrind fails if the soft file descriptor limit is less 
-        than about 828
-69529   "rep; nop" should do a yield 
-70827   programs with lots of shared libraries report "mmap failed" 
-        for some of them when reading symbols 
-71028   glibc's strnlen is optimised enough to confuse valgrind 
-
-
-
-
-Unstable (cvs head) release 2.1.0 (15 December 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
-(Julian).  It looks eminently usable, and given that it fixes some
-significant bugs, may well be worth using on a day-to-day basis.
-2.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
-8.2, RedHat 8.
-
-2.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
-handling of system calls and signals, and their interaction with
-threads.  In general, the accuracy of the system call, thread and
-signal simulations is much improved.  Specifically:
-
-- Blocking system calls behave exactly as they do when running
-  natively (not on valgrind).  That is, if a syscall blocks only the
-  calling thread when running natively, than it behaves the same on
-  valgrind.  No more mysterious hangs because V doesn't know that some
-  syscall or other, should block only the calling thread.
-
-- Interrupted syscalls should now give more faithful results.
-
-- Finally, signal contexts in signal handlers are supported.  As a
-  result, konqueror on SuSE 9 no longer segfaults when notified of
-  file changes in directories it is watching.
-
-Other changes:
-
-- Robert Walsh's file descriptor leakage checks.  When enabled,
-  Valgrind will print out a list of open file descriptors on
-  exit.  Along with each file descriptor, Valgrind prints out a stack
-  backtrace of where the file was opened and any details relating to the
-  file descriptor such as the file name or socket details.
-  To use, give: --track-fds=yes
-
-- Implemented a few more SSE/SSE2 instructions.
-
-- Less crud on the stack when you do 'where' inside a GDB attach.
-
-- Fixed the following bugs:
-  68360: Valgrind does not compile against 2.6.0-testX kernels
-  68525: CVS head doesn't compile on C90 compilers
-  68566: pkgconfig support (wishlist)
-  68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
-  69140: valgrind not able to explicitly specify a path to a binary. 
-  69432: helgrind asserts encountering a MutexErr when there are 
-         EraserErr suppressions
-
-- Increase the max size of the translation cache from 200k average bbs
-  to 300k average bbs.  Programs on the size of OOo (680m17) are
-  thrashing the cache at the smaller size, creating large numbers of
-  retranslations and wasting significant time as a result.
-
-
-
-Stable release 2.0.0 (5 Nov 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-2.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
-improves support for SuSE 9 and the Red Hat "Severn" beta.
+* ==================== CORE CHANGES ===================
 
-- Further improvements to SSE/SSE2 support.  The entire test suite of
-  the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
-  20030307Z '-g -O -xW' now works.  I think this gives pretty good
-  coverage of SSE/SSE2 floating point instructions, or at least the
-  subset emitted by Icc.
+* The translation cache size has been increased to keep up with the demands of
+  large applications.  The maximum number of sectors has increased from 24 to
+  48.  The default number of sectors has increased from 16 to 32 on all
+  targets except Android, where the increase is from 6 to 12.
 
-- Also added support for the following instructions:
-    MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
-    PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
+* The amount of memory that Valgrind can use has been increased from 64GB to
+  128GB.  In particular this means your application can allocate up to about
+  60GB when running on Memcheck.
 
-- CFI support for GDB version 6.  Needed to enable newer GDBs
-  to figure out where they are when using --gdb-attach=yes.
+* Valgrind's default load address has been changed from 0x3800'0000 to
+  0x5800'0000, so as to make it possible to load larger executables.  This
+  should make it possible to load executables of size at least 1200MB.
 
-- Fix this:
-      mc_translate.c:1091 (memcheck_instrument): Assertion
-      `u_in->size == 4 || u_in->size == 16' failed.
+* A massive spaceleak caused by reading compressed debuginfo files has been
+  fixed.  Valgrind should now be entirely usable with gcc-7.0 "-gz" created
+  debuginfo.
 
-- Return an error rather than panicing when given a bad socketcall.
+* The C++ demangler has been updated.
 
-- Fix checking of syscall rt_sigtimedwait().
+* Support for demangling Rust symbols has been added.
 
-- Implement __NR_clock_gettime (syscall 265).  Needed on Red Hat Severn.
+* A new representation of stack traces, the "XTree", has been added.  An XTree
+  is a tree of stacktraces with data associated with the stacktraces.  This is
+  used by various tools (Memcheck, Helgrind, Massif) to report on the heap
+  consumption of your program.  Reporting is controlled by the new options
+  --xtree-memory=none|allocs|full and --xtree-memory-file=<file>.
 
-- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
-  bytes long, when it could be shorter, which could cause false
-  positives.
+  A report can also be produced on demand using the gdbserver monitor command
+  'xtmemory [<filename>]>'.  The XTree can be output in 2 formats: 'callgrind
+  format' and 'massif format. The existing visualisers for these formats (e.g.
+  callgrind_annotate, KCachegrind, ms_print) can be used to visualise and
+  analyse these reports.
 
-- Support use of select() for very large numbers of file descriptors.
+  Memcheck can also produce XTree leak reports using the Callgrind file
+  format.  For more details, see the user manual.
 
-- Don't fail silently if the executable is statically linked, or is
-  setuid/setgid. Print an error message instead.
+* ================== PLATFORM CHANGES =================
 
-- Support for old DWARF-1 format line number info.
+* ppc64: support for ISA 3.0B and various fixes for existing 3.0 support
 
+* amd64: fixes for JIT failure problems on long AVX2 code blocks
 
+* amd64 and x86: support for CET prefixes has been added
 
-Snapshot 20031012 (12 October 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* arm32: a few missing ARMv8 instructions have been implemented
 
-Three months worth of bug fixes, roughly.  Most significant single
-change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
+* arm64, mips64, mips32: an alternative implementation of Load-Linked and
+  Store-Conditional instructions has been added.  This is to deal with
+  processor implementations that implement the LL/SC specifications strictly
+  and as a result cause Valgrind to hang in certain situations.  The
+  alternative implementation is automatically enabled at startup, as required.
+  You can use the option --sim-hints=fallback-llsc to force-enable it if you
+  want.
 
-20031012 builds on Red Hat Fedora ("Severn") but doesn't really work
-(curiously, mozilla runs OK, but a modest "ls -l" bombs).  I hope to
-get a working version out soon.  It may or may not work ok on the
-forthcoming SuSE 9; I hear positive noises about it but haven't been
-able to verify this myself (not until I get hold of a copy of 9).
+* Support for OSX 10.12 has been improved.
 
-A detailed list of changes, in no particular order:
+* On Linux, clone handling has been improved to honour CLONE_VFORK that
+  involves a child stack.  Note however that CLONE_VFORK | CLONE_VM is handled
+  like CLONE_VFORK (by removing CLONE_VM), so applications that depend on
+  CLONE_VM exact semantics will (still) not work.
+
+* The TileGX/Linux port has been removed because it appears to be both unused
+  and unsupported.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+  - Memcheck should give fewer false positives when running optimised
+    Clang/LLVM generated code.
+
+  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+  - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file>
+    to produce the end of execution leak report in a xtree callgrind format
+    file.
+
+  - New option 'xtleak' in the memcheck leak_check monitor command, to produce
+    the leak report in an xtree file.
+
+* Massif:
+
+  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+  - For some workloads (typically, for big applications), Massif memory
+    consumption and CPU consumption has decreased significantly.
+
+* Helgrind:
+
+  - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+  - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful
+    for Ada gnat compiled applications.
+
+* ==================== OTHER CHANGES ====================
+
+* For Valgrind developers: in an outer/inner setup, the outer Valgrind will
+  append the inner guest stacktrace to the inner host stacktrace.  This helps
+  to investigate the errors reported by the outer, when they are caused by the
+  inner guest program (such as an inner regtest).  See README_DEVELOPERS for
+  more info.
+
+* To allow fast detection of callgrind files by desktop environments and file
+  managers, the format was extended to have an optional first line that
+  uniquely identifies the format ("# callgrind format").  Callgrind creates
+  this line now, as does the new xtree functionality.
+
+* File name template arguments (such as --log-file, --xtree-memory-file, ...)
+  have a new %n format letter that is replaced by a sequence number.
+
+* "--version -v" now shows the SVN revision numbers from which Valgrind was
+  built.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+162848  --log-file output isn't split when a program forks
+340777  Illegal instruction on mips (ar71xx)
+341481  MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms
+342040  Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones
+        to a different stack.
+344139  x86 stack-seg overrides, needed by the Wine people
+344524  store conditional of guest applications always fail - observed on
+        Octeon3(MIPS)
+348616  Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT)
+352395  Please provide SVN revision info in --version -v
+352767  Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP)
+356374  Assertion 'DRD_(g_threadinfo)[tid].pt_threadid !=
+        INVALID_POSIX_THREADID' failed
+358213  helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread
+        barrier implementation
+358697  valgrind.h: Some code remains even when defining NVALGRIND
+359202  Add musl libc configure/compile
+360415  amd64 instructions ADCX and ADOX are not implemented in VEX
+        == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10)
+360429  unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1)
+362223  assertion failed when .valgrindrc is a directory instead of a file
+367543  bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
+367942  Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
+368507  can't malloc chunks larger than about 34GB
+368529  Android arm target link error, missing atexit and pthread_atfork
+368863  WARNING: unhandled arm64-linux syscall: 100 (get_robust_list)
+368865  WARNING: unhandled arm64-linux syscall: 272 (kcmp)
+368868  disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
+368917  WARNING: unhandled arm64-linux syscall: 218 (request_key)
+368918  WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval)
+368922  WARNING: unhandled arm64-linux syscall: 161 (sethostname)
+368924  WARNING: unhandled arm64-linux syscall: 84 (sync_file_range)
+368925  WARNING: unhandled arm64-linux syscall: 130 (tkill)
+368926  WARNING: unhandled arm64-linux syscall: 97 (unshare)
+369459  valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
+370028  Reduce the number of compiler warnings on MIPS platforms
+370635  arm64 missing syscall getcpu
+371225  Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
+371227  Clean AArch64 syscall table
+371412  Rename wrap_sys_shmat to sys_shmat like other wrappers
+371471  Valgrind complains about non legit memory leaks on placement new (C++)
+371491  handleAddrOverrides() is [incorrect] when ASO prefix is used
+371503  disInstr(arm64): unhandled instruction 0xF89F0000
+371869  support '%' in symbol Z-encoding
+371916  execution tree xtree concept
+372120  c++ demangler demangles symbols which are not c++
+372185  Support of valgrind on ARMv8 with 32 bit executable
+372188  vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10)
+372195  Power PC, xxsel instruction is not always recognized.
+372504  Hanging on exit_group
+372600  process loops forever when fatal signals are arriving quickly
+372794  LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed
+373046  Stacks registered by core are never deregistered
+373069  memcheck/tests/leak_cpp_interior fails with GCC 5.1+
+373086  Implement additional Xen hypercalls
+373192  Calling posix_spawn in glibc 2.24 completely broken
+373488  Support for fanotify API on ARM64 architecture
+       == 368864  WARNING: unhandled arm64-linux syscall: 262 (fanotify_init)
+373555  Rename BBPTR to GSPTR as it denotes guest state pointer only
+373938  const IRExpr arguments for matchIRExpr()
+374719  some spelling fixes
+374963  increase valgrind's load address to prevent mmap failure
+375514  valgrind_get_tls_addr() does not work in case of static TLS
+375772  +1 error in get_elf_symbol_info() when computing value of 'hi' address
+        for ML_(find_rx_mapping)()
+375806  Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24
+375839  Temporary storage exhausted, with long sequence of vfmadd231ps insns
+        == 377159  "vex: the `impossible' happened" still present
+        == 375150  Assertion 'tres.status == VexTransOK' failed
+        == 378068  valgrind crashes on AVX2 function in FFmpeg
+376142  Segfaults on MIPS Cavium Octeon boards
+376279  disInstr(arm64): unhandled instruction 0xD50320FF
+376455  Solaris: unhandled syscall lgrpsys(180)
+376518  Solaris: unhandled fast trap getlgrp(6)
+376611  ppc64 and arm64 don't know about prlimit64 syscall
+376729  PPC64, remove R2 from the clobber list
+        == 371668
+376956  syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
+        to be wrongly marked as addressable
+377066  Some Valgrind unit tests fail to compile on Ubuntu 16.10 with
+        PIE enabled by default
+377376  memcheck/tests/linux/getregset fails with glibc2.24
+377427  PPC64, lxv instruction failing on odd destination register 
+377478  PPC64: ISA 3.0 setup fixes
+377698  Missing memory check for futex() uaddr arg for FUTEX_WAKE
+        and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET,
+        and 2 args for FUTEX_TRYLOCK_PI
+377717  Fix massive space leak when reading compressed debuginfo sections
+377891  Update Xen 4.6 domctl wrappers
+377930  fcntl syscall wrapper is missing flock structure check
+378524  libvexmultiarch_test regression on s390x and ppc64
+378535  Valgrind reports INTERNAL ERROR in execve syscall wrapper
+378673  Update libiberty demangler
+378931  Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support
+379039  syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes
+379094  Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper
+379371  UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603]
+        (task_register_dyld_image_infos)
+379372  UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603]
+        (task_register_dyld_shared_cache_image_info)
+379390  unhandled syscall: mach:70 (host_create_mach_voucher_trap)
+379473  MIPS: add support for rdhwr cycle counter register
+379504  remove TileGX/Linux port
+379525  Support more x86 nop opcodes
+379838  disAMode(x86): not an addr!
+379703  PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions
+379890  arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4)
+379895  clock_gettime does not execute POST syscall wrapper
+379925  PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly
+379966  WARNING: unhandled amd64-linux syscall: 313 (finit_module)
+380200  xtree generated callgrind files refer to files without directory name
+380202  Assertion failure for cache line size (cls == 64) on aarch64.
+380397  s390x: __GI_strcspn() replacement needed
+n-i-bz  Fix pub_tool_basics.h build issue with g++ 4.4.7.
+
+(3.13.0.RC1:  2 June 2017, vex r3386, valgrind r16434)
+(3.13.0.RC2:  9 June 2017, vex r3389, valgrind r16443)
+(3.13.0:     14 June 2017, vex r3396, valgrind r16446)
+
+
+
+Release 3.12.0 (20 October 2016)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-- Describe --gen-suppressions in the FAQ.
+3.12.0 is a feature release with many improvements and the usual
+collection of bug fixes.
 
-- Syscall __NR_waitpid supported.
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
+ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
+MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
+MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10.  There is also preliminary support for
+X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
 
-- Minor MMX bug fix.
+* ================== PLATFORM CHANGES =================
 
-- -v prints program's argv[] at startup.
+* POWER: Support for ISA 3.0 has been added
 
-- More glibc-2.3 suppressions.
+* mips: support for O32 FPXX ABI has been added.
+* mips: improved recognition of different processors
+* mips: determination of page size now done at run time
 
-- Suppressions for stack underrun bug(s) in the c++ support library
-  distributed with Intel Icc 7.0.
+* amd64: Partial support for AMD FMA4 instructions.
 
-- Fix problems reading /proc/self/maps.
+* arm, arm64: Support for v8 crypto and CRC instructions.
 
-- Fix a couple of messages that should have been suppressed by -q, 
-  but weren't.
+* Improvements and robustification of the Solaris port.
 
-- Make Addrcheck understand "Overlap" suppressions.
+* Preliminary support for MacOS 10.12 (Sierra) has been added.
 
-- At startup, check if program is statically linked and bail out if so.
+Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
+would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
+where possible.  Valgrind's support for 32-bit x86 has stagnated in
+recent years and has fallen far behind that for 64-bit x86
+instructions.  By contrast 64-bit x86 is well supported, up to and
+including AVX2.
 
-- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+  - Added meta mempool support for describing a custom allocator which:
+     - Auto-frees all chunks assuming that destroying a pool destroys all
+       objects in the pool
+     - Uses itself to allocate other memory blocks
+
+  - New flag --ignore-range-below-sp to ignore memory accesses below
+    the stack pointer, if you really have to.  The related flag
+    --workaround-gcc296-bugs=yes is now deprecated.  Use
+    --ignore-range-below-sp=1024-1 as a replacement.
+
+* DRD:
+
+  - Improved thread startup time significantly on non-Linux platforms.
+
+* DHAT
+
+  - Added collection of the metric "tot-blocks-allocd"
+
+* ==================== OTHER CHANGES ====================
+
+* Replacement/wrapping of malloc/new related functions is now done not just
+  for system libraries by default, but for any globally defined malloc/new
+  related function (both in shared libraries and statically linked alternative
+  malloc implementations).  The dynamic (runtime) linker is excluded, though.
+  To only intercept malloc/new related functions in
+  system libraries use --soname-synonyms=somalloc=nouserintercepts (where
+  "nouserintercepts" can be any non-existing library name).
+  This new functionality is not implemented for MacOS X.
+
+* The maximum number of callers in a suppression entry is now equal to
+  the maximum size for --num-callers (500).
+  Note that --gen-suppressions=yes|all similarly generates suppressions
+  containing up to --num-callers frames.
+
+* New and modified GDB server monitor features:
+
+  - Valgrind's gdbserver now accepts the command 'catch syscall'.
+    Note that you must have GDB >= 7.11 to use 'catch syscall' with
+    gdbserver.
+
+* New option --run-cxx-freeres=<yes|no> can be used to change whether
+  __gnu_cxx::__freeres() cleanup function is called or not. Default is
+  'yes'.
+
+* Valgrind is able to read compressed debuginfo sections in two formats:
+  - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib)
+  - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu)
+
+* Modest JIT-cost improvements: the cost of instrumenting code blocks
+  for the most common use case (x86_64-linux, Memcheck) has been
+  reduced by 10%-15%.
+
+* Improved performance for programs that do a lot of discarding of
+  instruction address ranges of 8KB or less.
+
+* The C++ symbol demangler has been updated.
+
+* More robustness against invalid syscall parameters on Linux.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+191069  Exiting due to signal not reported in XML output
+199468  Suppressions: stack size limited to 25
+        while --num-callers allows more frames
+212352  vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
+278744  cvtps2pd with redundant RexW
+303877  valgrind doesn't support compressed debuginfo sections.
+345307  Warning about "still reachable" memory when using libstdc++ from gcc 5
+348345  Assertion fails for negative lineno
+348924  MIPS: Load doubles through memory so the code compiles with the FPXX ABI
+351282  V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
+351692  Dumps created by valgrind are not readable by gdb (mips32 specific)
+351804  Crash on generating suppressions for "printf" call on OS X 10.10
+352197  mips: mmap2() not wrapped correctly for page size > 4096
+353083  arm64 doesn't implement various xattr system calls
+353084  arm64 doesn't support sigpending system call
+353137  www: update info for Supported Platforms
+353138  www: update "The Valgrind Developers" page
+353370  don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
+        == 365325
+        == 357873
+353384  amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62)
+353398  WARNING: unhandled amd64-solaris syscall: 207
+353660  XML in auxwhat tag not escaping reserved symbols properly
+353680  s390x: Crash with certain glibc versions due to non-implemented TBEGIN
+353727  amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72)
+353802  ELF debug info reader confused with multiple .rodata sections
+353891  Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
+353917  unhandled amd64-solaris syscall fchdir(120)
+353920  unhandled amd64-solaris syscall: 170
+354274  arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
+354392  unhandled amd64-solaris syscall: 171
+354797  Vbit test does not include Iops for Power 8 instruction support
+354883  tst->os_state.pthread - magic_delta assertion failure on OSX 10.11
+        == 361351
+        == 362920
+        == 366222
+354933  Fix documentation of --kernel-variant=android-no-hw-tls option
+355188  valgrind should intercept all malloc related global functions
+355454  do not intercept malloc related symbols from the runtime linker
+355455  stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained
+356044  Dwarf line info reader misinterprets is_stmt register
+356112  mips: replace addi with addiu
+356393  valgrind (vex) crashes because isZeroU happened
+        == 363497
+        == 364497
+356676  arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min)
+356678  arm64-linux: unhandled syscall 232 (mincore)
+356817  valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
+356823  Unsupported ARM instruction: stlex
+357059  x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
+357338  Unhandled instruction for SHA instructions libcrypto Boring SSL
+357673  crash if I try to run valgrind with a binary link with libcurl
+357833  Setting RLIMIT_DATA to zero breaks with linux 4.5+
+357871  pthread_spin_destroy not properly wrapped
+357887  Calls to VG_(fclose) do not close the file descriptor
+357932  amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
+358030  support direct socket calls on x86 32bit (new in linux 4.3)
+358478  drd/tests/std_thread.cpp doesn't build with GCC6
+359133  Assertion 'eltSzB <= ddpa->poolSzB' failed
+359181  Buffer Overflow during Demangling
+359201  futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET
+359289  s390x: popcnt (B9E1) not implemented
+359472  The Power PC vsubuqm instruction doesn't always give the correct result
+359503  Add missing syscalls for aarch64 (arm64)
+359645  "You need libc6-dbg" help message could be more helpful
+359703  s390: wire up separate socketcalls system calls
+359724  getsockname might crash - deref_UInt should call safe_to_deref
+359733  amd64 implement ld.so strchr/index override like x86
+359767  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
+359829  Power PC test suite none/tests/ppc64/test_isa_2_07.c uses
+        uninitialized data
+359838  arm64: Unhandled instruction 0xD5033F5F (clrex)
+359871  Incorrect mask handling in ppoll
+359952  Unrecognised PCMPESTRM variants (0x70, 0x19)
+360008  Contents of Power vr registers contents is not printed correctly when
+        the --vgdb-shadow-registers=yes option is used
+360035  POWER PC instruction bcdadd and bcdsubtract generate result with
+        non-zero shadow bits
+360378  arm64: Unhandled instruction 0x5E280844 (sha1h  s4, s2)
+360425  arm64 unsupported instruction ldpsw
+        == 364435
+360519  none/tests/arm64/memory.vgtest might fail with newer gcc
+360571  Error about the Android Runtime reading below the stack pointer on ARM
+360574  Wrong parameter type for an ashmem ioctl() call on Android and ARM64
+360749  kludge for multiple .rodata sections on Solaris no longer needed
+360752  raise the number of reserved fds in m_main.c from 10 to 12
+361207  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
+361226  s390x: risbgn (EC59) not implemented
+361253  [s390x] ex_clone.c:42: undefined reference to `pthread_create'
+361354  ppc64[le]: wire up separate socketcalls system calls
+361615  Inconsistent termination for multithreaded process terminated by signal
+361926  Unhandled Solaris syscall: sysfs(84)
+362009  V dumps core on unimplemented functionality before threads are created
+362329  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
+362894  missing (broken) support for wbit field on mtfsfi instruction (ppc64)
+362935  [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
+362953  Request for an update to the Valgrind Developers page
+363680  add renameat2() support
+363705  arm64 missing syscall name_to_handle_at and open_by_handle_at
+363714  ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
+363858  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
+364058  clarify in manual limitations of array overruns detections
+364413  pselect sycallwrapper mishandles NULL sigmask
+364728  Power PC, missing support for several HW registers in
+        get_otrack_shadow_offset_wrk()
+364948  Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5
+365273  Invalid write to stack location reported after signal handler runs
+365912  ppc64BE segfault during jm-insns test (RELRO)
+366079  FPXX Support for MIPS32 Valgrind
+366138  Fix configure errors out when using Xcode 8 (clang 8.0.0)
+366344  Multiple unhandled instruction for Aarch64
+        (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060)
+367995  Integration of memcheck with custom memory allocator
+368120  x86_linux asm _start functions do not keep 16-byte aligned stack pointer
+368412  False positive result for altivec capability check
+368416  Add tc06_two_races_xml.exp output for ppc64
+368419  Perf Events ioctls not implemented
+368461  mmapunmap test fails on ppc64
+368823  run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
+369000  AMD64 fma4 instructions unsupported.
+369169  ppc64 fails jm_int_isa_2_07 test
+369175  jm_vec_isa_2_07 test crashes on ppc64
+369209  valgrind loops and eats up all memory if cwd doesn't exist.
+369356  pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr
+369359  msghdr_foreachfield can crash when handling bad iovec
+369360  Bad sigprocmask old or new sets can crash valgrind
+369361  vmsplice syscall wrapper crashes on bad iovec
+369362  Bad sigaction arguments crash valgrind
+369383  x86 sys_modify_ldt wrapper crashes on bad ptr
+369402  Bad set/get_thread_area pointer crashes valgrind
+369441  bad lvec argument crashes process_vm_readv/writev syscall wrappers
+369446  valgrind crashes on unknown fcntl command
+369439  S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER 
+369468  Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
+370265  ISA 3.0 HW cap stuff needs updating
+371128  BCD add and subtract instructions on Power BE in 32-bit mode do not work
+372195  Power PC, xxsel instruction is not always recognized
+
+n-i-bz  Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
+n-i-bz  massif --pages-as-heap=yes does not report peak caused by mmap+munmap
+n-i-bz  false positive leaks due to aspacemgr merging heap & non heap segments
+n-i-bz  Fix ppoll_alarm exclusion on OS X
+n-i-bz  Document brk segment limitation, reference manual in limit reached msg.
+n-i-bz  Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
+n-i-bz  Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
+n-i-bz  amd64: memcheck false positive with shr %edx
+n-i-bz  arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
+n-i-bz  ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
+n-i-bz  arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+n-i-bz  DHAT: added collection of the metric "tot-blocks-allocd" 
+
+(3.12.0.RC1:  20 October 2016, vex r3282, valgrind r16094)
+(3.12.0.RC2:  20 October 2016, vex r3282, valgrind r16096)
+(3.12.0:      21 October 2016, vex r3282, valgrind r16098)
+
+
+
+Release 3.11.0 (22 September 2015)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.11.0 is a feature release with many improvements and the usual
+collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux,
+ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux,
+MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android,
+MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10.  There is also preliminary support for
+X86/MacOSX 10.11, AMD64/MacOSX 10.11 and TILEGX/Linux.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for Solaris/x86 and Solaris/amd64 has been added.
+
+* Preliminary support for Mac OS X 10.11 (El Capitan) has been added.
+
+* Preliminary support for the Tilera TileGX architecture has been added.
+
+* s390x: It is now required for the host to have the "long displacement"
+  facility.  The oldest supported machine model is z990.
+
+* x86: on an SSE2 only host, Valgrind in 32 bit mode now claims to be a
+  Pentium 4.  3.10.1 wrongly claimed to be a Core 2, which is SSSE3.
+
+* The JIT's register allocator is significantly faster, making the JIT
+  as a whole somewhat faster, so JIT-intensive activities, for example
+  program startup, are modestly faster, around 5%.
+
+* There have been changes to the default settings of several command
+  line flags, as detailed below.
+
+* Intel AVX2 support is more complete (64 bit targets only).  On AVX2
+  capable hosts, the simulated CPUID will now indicate AVX2 support.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+  - The default value for --leak-check-heuristics has been changed from
+    "none" to "all". This helps to reduce the number of possibly
+    lost blocks, in particular for C++ applications.
+
+  - The default value for --keep-stacktraces has been changed from
+    "malloc-then-free" to "malloc-and-free".  This has a small cost in
+    memory (one word per malloc-ed block) but allows Memcheck to show the
+    3 stacktraces of a dangling reference: where the block was allocated,
+    where it was freed, and where it is acccessed after being freed.
+
+  - The default value for --partial-loads-ok has been changed from "no" to 
+    "yes", so as to avoid false positive errors resulting from some kinds
+    of vectorised loops.
+
+  - A new monitor command 'xb <addr> <len>' shows the validity bits of
+    <len> bytes at <addr>.  The monitor command 'xb' is easier to use
+    than get_vbits when you need to associate byte data value with
+    their corresponding validity bits.
+
+  - The 'block_list' monitor command has been enhanced:
+      o it can print a range of loss records
+      o it now accepts an optional argument 'limited <max_blocks>'
+        to control the number of blocks printed.
+      o if a block has been found using a heuristic, then
+        'block_list' now shows the heuristic after the block size.
+      o the loss records/blocks to print can be limited to the blocks
+        found via specified heuristics.
+
+  - The C helper functions used to instrument loads on
+    x86-{linux,solaris} and arm-linux (both 32-bit only) have been
+    replaced by handwritten assembly sequences.  This gives speedups
+    in the region of 0% to 7% for those targets only.
 
-- Memcheck/addrcheck: minor speed optimisations
+  - A new command line option, --expensive-definedness-checks=yes|no,
+    has been added.  This is useful for avoiding occasional invalid
+    uninitialised-value errors in optimised code.  Watch out for
+    runtime degradation, as this can be up to 25%.  As always, though,
+    the slowdown is highly application specific.  The default setting
+    is "no".
 
-- Handle syscall __NR_brk more correctly than before.
+* Massif:
 
-- Fixed incorrect allocate/free mismatch errors when using
-  operator new(unsigned, std::nothrow_t const&)
-  operator new[](unsigned, std::nothrow_t const&)
+  - A new monitor command 'all_snapshots <filename>' dumps all
+    snapshots taken so far.
 
-- Support POSIX pthread spinlocks.
+* Helgrind:
 
-- Fixups for clean compilation with gcc-3.3.1.
+  - Significant memory reduction and moderate speedups for
+    --history-level=full for applications accessing a lot of memory
+    with many different stacktraces.
 
-- Implemented more opcodes: 
-    - push %es
-    - push %ds
-    - pop %es
-    - pop %ds
-    - movntq
-    - sfence
-    - pshufw
-    - pavgb
-    - ucomiss
-    - enter
-    - mov imm32, %esp
-    - all "in" and "out" opcodes
-    - inc/dec %esp
-    - A whole bunch of SSE/SSE2 instructions
+  - The default value for --conflict-cache-size=N has been doubled to
+    2000000.  Users that were not using the default value should
+    preferably also double the value they give.
 
-- Memcheck: don't bomb on SSE/SSE2 code.
+    The default was changed due to the changes in the "full history"
+    implementation.  Doubling the value gives on average a slightly more
+    complete history and uses similar memory (or significantly less memory
+    in the worst case) than the previous implementation.
+    
+  - The Helgrind monitor command 'info locks' now accepts an optional
+    argument 'lock_addr', which shows information about the lock at the
+    given address only.
 
+  - When using --history-level=full, the new Helgrind monitor command
+    'accesshistory <addr> [<len>]' will show the recorded accesses for
+    <len> (or 1) bytes at <addr>.
 
-Snapshot 20030725 (25 July 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* ==================== OTHER CHANGES ====================
 
-Fixes some minor problems in 20030716.
+* The default value for the --smc-check option has been changed from
+  "stack" to "all-non-file" on targets that provide automatic D-I
+  cache coherence (x86, amd64 and s390x).  The result is to provide,
+  by default, transparent support for JIT generated and self-modifying
+  code on all targets.
 
-- Fix bugs in overlap checking for strcpy/memcpy etc.
+* Mac OS X only: the default value for the --dsymutil option has been
+  changed from "no" to "yes", since any serious usage on Mac OS X
+  always required it to be "yes".
 
-- Do overlap checking with Addrcheck as well as Memcheck.
+* The command line options --db-attach and --db-command have been removed.
+  They were deprecated in 3.10.0.
 
-- Fix this:
-      Memcheck: the `impossible' happened:
-      get_error_name: unexpected type
+* When a process dies due to a signal, Valgrind now shows the signal
+  and the stacktrace at default verbosity (i.e. verbosity 1).
 
-- Install headers needed to compile new skins.
+* The address description logic used by Memcheck and Helgrind now
+  describes addresses in anonymous segments, file mmap-ed segments,
+  shared memory segments and the brk data segment.
 
-- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
-  passed to non-traced children.
+* The new option --error-markers=<begin>,<end> can be used to mark the
+  begin/end of errors in textual output mode, to facilitate
+  searching/extracting errors in output files that mix valgrind errors
+  with program output.
 
-- Fix file descriptor leak in valgrind-listener.
+* The new option --max-threads=<number> can be used to change the number
+  of threads valgrind can handle.  The default is 500 threads which
+  should be more than enough for most applications.
 
-- Fix longstanding bug in which the allocation point of a 
-  block resized by realloc was not correctly set.  This may
-  have caused confusing error messages.
+* The new option --valgrind-stacksize=<number> can be used to change the
+  size of the private thread stacks used by Valgrind.  This is useful
+  for reducing memory use or increasing the stack size if Valgrind
+  segfaults due to stack overflow.
 
+* The new option --avg-transtab-entry-size=<number> can be used to specify
+  the expected instrumented block size, either to reduce memory use or
+  to avoid excessive retranslation.
 
-Snapshot 20030716 (16 July 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Valgrind can be built with Intel's ICC compiler, version 14.0 or later.
+
+* New and modified GDB server monitor features:
 
-20030716 is a snapshot of our current CVS head (development) branch.
-This is the branch which will become valgrind-2.0.  It contains
-significant enhancements over the 1.9.X branch.
+  - When a signal is reported in GDB, you can now use the GDB convenience
+    variable $_siginfo to examine detailed signal information.
+  - Valgrind's gdbserver now allows the user to change the signal
+    to deliver to the process.  So, use 'signal SIGNAL' to continue execution
+    with SIGNAL instead of the signal reported to GDB. Use 'signal 0' to
+    continue without passing the signal to the process.
+
+  - With GDB >= 7.10, the command 'target remote'
+    will automatically load the executable file of the process running
+    under Valgrind. This means you do not need to specify the executable
+    file yourself, GDB will discover it itself.  See GDB documentation about
+    'qXfer:exec-file:read' packet for more info.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+116002  VG_(printf): Problems with justification of strings and integers
+155125  avoid cutting away file:lineno after long function name
+197259  Unsupported arch_prtctl PR_SET_GS option
+201152  ppc64: Assertion in ppc32g_dirtyhelper_MFSPR_268_269
+201216  Fix Valgrind does not support pthread_sigmask() on OS X
+201435  Fix Darwin: -v does not show kernel version
+208217  "Warning: noted but unhandled ioctl 0x2000747b" on Mac OS X
+211256  Fixed an outdated comment regarding the default platform.
+211529  Incomplete call stacks for code compiled by newer versions of MSVC
+211926  Avoid compilation warnings in valgrind.h with -pedantic
+212291  Fix unhandled syscall: unix:132 (mkfifo) on OS X
+        == 263119
+226609  Crediting upstream authors in man page
+231257  Valgrind omits path when executing script from shebang line
+254164  OS X task_info: UNKNOWN task message [id 3405, to mach_task_self() [..]
+294065  Improve the pdb file reader by avoiding hardwired absolute pathnames
+269360  s390x: Fix addressing mode selection for compare-and-swap
+302630  Memcheck: Assertion failed: 'sizeof(UWord) == sizeof(UInt)'
+        == 326797
+312989  ioctl handling needs to do POST handling on generic ioctls and [..]
+319274  Fix unhandled syscall: unix:410 (sigsuspend_nocancel) on OS X
+324181  mmap does not handle MAP_32BIT (handle it now, rather than fail it)
+327745  Fix valgrind 3.9.0 build fails on Mac OS X 10.6.8
+330147  libmpiwrap PMPI_Get_count returns undefined value
+333051  mmap of huge pages fails due to incorrect alignment
+        == 339163
+334802  valgrind does not always explain why a given option is bad
+335618  mov.w rN, pc/sp (ARM32)
+335785  amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
+        == 307399
+        == 343175
+        == 342740
+        == 346912
+335907  segfault when running wine's ddrawex/tests/surface.c under valgrind
+338602  AVX2 bit in CPUID missing
+338606  Strange message for scripts with invalid interpreter
+338731  ppc: Fix testuite build for toolchains not supporting -maltivec
+338995  shmat with hugepages (SHM_HUGETLB) fails with EINVAL
+339045  Getting valgrind to compile and run on OS X Yosemite (10.10)
+        == 340252
+339156  gdbsrv not called for fatal signal
+339215  Valgrind 3.10.0 contain 2013 in copyrights notice
+339288  support Cavium Octeon MIPS specific BBIT*32 instructions
+339636  Use fxsave64 and fxrstor64 mnemonics instead of old-school rex64 prefix
+339442  Fix testsuite build failure on OS X 10.9
+339542  Enable compilation with Intel's ICC compiler
+339563  The DVB demux DMX_STOP ioctl doesn't have a wrapper
+339688  Mac-specific ASM does not support .version directive (cpuid,
+        tronical and pushfpopf tests)
+339745  Valgrind crash when check Marmalade app (partial fix)
+339755  Fix known deliberate memory leak in setenv() on Mac OS X 10.9
+339778  Linux/TileGx platform support for Valgrind
+339780  Fix known uninitialised read in pthread_rwlock_init() on Mac OS X 10.9 
+339789  Fix none/tests/execve test on Mac OS X 10.9
+339808  Fix none/tests/rlimit64_nofile test on Mac OS X 10.9
+339820  vex amd64->IR: 0x66 0xF 0x3A 0x63 0xA 0x42 0x74 0x9 (pcmpistri $0x42)
+340115  Fix none/tests/cmdline[1|2] tests on systems which define TMPDIR
+340392  Allow user to select more accurate definedness checking in memcheck
+        to avoid invalid complaints on optimised code
+340430  Fix some grammatical weirdness in the manual.
+341238  Recognize GCC5/DWARFv5 DW_LANG constants (Go, C11, C++11, C++14)
+341419  Signal handler ucontext_t not filled out correctly on OS X
+341539  VG_(describe_addr) should not describe address as belonging to client
+        segment if it is past the heap end
+341613  Enable building of manythreads and thread-exits tests on Mac OS X
+341615  Fix none/tests/darwin/access_extended test on Mac OS X
+341698  Valgrind's AESKEYGENASSIST gives wrong result in words 0 and 2 [..]
+341789  aarch64: shmat fails with valgrind on ARMv8
+341997  MIPS64: Cavium OCTEON insns - immediate operand handled incorrectly
+342008  valgrind.h needs type cast [..] for clang/llvm in 64-bit mode
+342038  Unhandled syscalls on aarch64 (mbind/get/set_mempolicy)
+342063  wrong format specifier for test mcblocklistsearch in gdbserver_tests
+342117  Hang when loading PDB file for MSVC compiled Firefox under Wine
+342221  socket connect false positive uninit memory for unknown af family
+342353  Allow dumping full massif output while valgrind is still running
+342571  Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
+        == 346476
+        == 348387
+        == 350593
+342603  Add I2C_SMBUS ioctl support
+342635  OS X 10.10 (Yosemite) - missing system calls and fcntl code
+342683  Mark memory past the initial brk limit as unaddressable
+342783  arm: unhandled instruction 0xEEFE1ACA = "vcvt.s32.f32 s3, s3, #12"
+342795  Internal glibc __GI_mempcpy call should be intercepted
+342841  s390x: Support instructions fiebr(a) and fidbr(a)
+343012  Unhandled syscall 319 (memfd_create)
+343069  Patch updating v4l2 API support
+343173  helgrind crash during stack unwind
+343219  fix GET_STARTREGS for arm
+343303  Fix known deliberate memory leak in setenv() on Mac OS X 10.10
+343306  OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
+343332  Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
+343335  unhandled instruction 0x1E638400 (fccmp) aarch64
+343523  OS X mach_ports_register: UNKNOWN task message [id 3403, to [..]
+343525  OS X host_get_special_port: UNKNOWN host message [id 412, to [..]
+343597  ppc64le: incorrect use of offseof macro
+343649  OS X host_create_mach_voucher: UNKNOWN host message [id 222, to [..]
+343663  OS X 10.10  Memchecj always reports a leak regardless of [..]
+343732  Unhandled syscall 144 (setgid) on aarch64
+343733  Unhandled syscall 187 (msgctl and related) on aarch64
+343802  s390x: False positive "conditional jump or move depends on [..]
+343902  --vgdb=yes doesn't break when --xml=yes is used
+343967  Don't warn about setuid/setgid/setcap executable for directories
+343978  Recognize DWARF5/GCC5 DW_LANG_Fortran 2003 and 2008 constants
+344007  accept4 syscall unhandled on arm64 (242) and ppc64 (344)
+344033  Helgrind on ARM32 loses track of mutex state in pthread_cond_wait
+344054  www - update info for Solaris/illumos
+344416  'make regtest' does not work cleanly on OS X
+344235  Remove duplicate include of pub_core_aspacemgr.h
+344279  syscall sendmmsg on arm64 (269) and ppc32/64 (349) unhandled
+344295  syscall recvmmsg on arm64 (243) and ppc32/64 (343) unhandled
+344307  2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40)
+344314  callgrind_annotate ... warnings about commands containing newlines
+344318  socketcall should wrap recvmmsg and sendmmsg
+344337  Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap)
+344416  Fix 'make regtest' does not work cleanly on OS X
+344499  Fix compilation for Linux kernel >= 4.0.0
+344512  OS X: unhandled syscall: unix:348 (__pthread_chdir), 
+        unix:349 (__pthread_fchdir)
+344559  Garbage collection of unused segment names in address space manager
+344560  Fix stack traces missing penultimate frame on OS X
+344621  Fix memcheck/tests/err_disable4 test on OS X
+344686  Fix suppression for pthread_rwlock_init on OS X 10.10
+344702  Fix missing libobjc suppressions on OS X 10.10
+        == 344543
+344936  Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
+344939  Fix memcheck/tests/xml1 on OS X 10.10
+345016  helgrind/tests/locked_vs_unlocked2 is failing sometimes
+345079  Fix build problems in VEX/useful/test_main.c
+345126  Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT
+345177  arm64: prfm (reg) not implemented
+345215  Performance improvements for the register allocator
+345248  add support for Solaris OS in valgrind
+345338  TIOCGSERIAL and TIOCSSERIAL ioctl support on Linux
+345394  Fix memcheck/tests/strchr on OS X
+345637  Fix memcheck/tests/sendmsg on OS X
+345695  Add POWERPC support for AT_DCACHESIZE and HWCAP2
+345824  Fix aspacem segment mismatch: seen with none/tests/bigcode
+345887  Fix an assertion in the address space manager
+345928  amd64: callstack only contains current function for small stacks
+345984  disInstr(arm): unhandled instruction: 0xEE193F1E
+345987  MIPS64: Implement cavium LHX instruction
+346031  MIPS: Implement support for the CvmCount register (rhwr %0, 31)
+346185  Fix typo saving altivec register v24
+346267  Compiler warnings for PPC64 code on call to LibVEX_GuestPPC64_get_XER()
+        and LibVEX_GuestPPC64_get_CR()
+346270  Regression tests none/tests/jm_vec/isa_2_07 and
+        none/tests/test_isa_2_07_part2 have failures on PPC64 little endian
+346307  fuse filesystem syscall deadlocks
+346324  PPC64 missing support for lbarx, lharx, stbcx and sthcx instructions
+346411  MIPS: SysRes::_valEx handling is incorrect
+346416  Add support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls
+346474  PPC64 Power 8, spr TEXASRU register not supported
+346487  Compiler generates "note" about a future ABI change for PPC64
+346562  MIPS64: lwl/lwr instructions are performing 64bit loads
+        and causing spurious "invalid read of size 8" warnings
+346801  Fix link error on OS X: _vgModuleLocal_sf_maybe_extend_stack
+347151  Fix suppression for pthread_rwlock_init on OS X 10.8
+347233  Fix memcheck/tests/strchr on OS X 10.10 (Haswell) 
+347322  Power PC regression test cleanup
+347379  valgrind --leak-check=full leak errors from system libs on OS X 10.8
+        == 217236
+347389  unhandled syscall: 373 (Linux ARM syncfs)
+347686  Patch set to cleanup PPC64 regtests
+347978  Remove bash dependencies where not needed
+347982  OS X: undefined symbols for architecture x86_64: "_global" [..]
+347988  Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
+        == 345929
+348102  Patch updating v4l2 API support
+348247  amd64 front end: jno jumps wrongly when overflow is not set
+348269  Improve mmap MAP_HUGETLB support.
+348334  (ppc) valgrind does not simulate dcbfl - then my program terminates
+348345  Assertion fails for negative lineno
+348377  Unsupported ARM instruction: yield
+348565  Fix detection of command line option availability for clang
+348574  vex amd64->IR pcmpistri SSE4.2 unsupported (pcmpistri $0x18)
+348728  Fix broken check for VIDIOC_G_ENC_INDEX
+348748  Fix redundant condition
+348890  Fix clang warning about unsupported --param inline-unit-growth=900
+348949  Bogus "ERROR: --ignore-ranges: suspiciously large range"
+349034  Add Lustre ioctls LL_IOC_GROUP_LOCK and LL_IOC_GROUP_UNLOCK
+349086  Fix UNKNOWN task message [id 3406, to mach_task_self(), [..]
+349087  Fix UNKNOWN task message [id 3410, to mach_task_self(), [..]
+349626  Implemented additional Xen hypercalls
+349769  Clang/osx: ld: warning: -read_only_relocs cannot be used with x86_64
+349790  Clean up of the hardware capability checking utilities.
+349828  memcpy intercepts memmove causing src/dst overlap error (ppc64 ld.so)
+349874  Fix typos in source code
+349879  memcheck: add handwritten assembly for helperc_LOADV*
+349941  di_notify_mmap might create wrong start/size DebugInfoMapping
+350062  vex x86->IR: 0x66 0xF 0x3A 0xB (ROUNDSD) on OS X
+350202  Add limited param to 'monitor block_list'
+350290  s390x: Support instructions fixbr(a)
+350359  memcheck/tests/x86/fxsave hangs indefinetely on OS X
+350809  Fix none/tests/async-sigs for Solaris
+350811  Remove reference to --db-attach which has been removed.
+350813  Memcheck/x86: enable handwritten assembly helpers for x86/Solaris too
+350854  hard-to-understand code in VG_(load_ELF)()
+351140  arm64 syscalls setuid (146) and setresgid (149) not implemented
+351386  Solaris: Cannot run ld.so.1 under Valgrind
+351474  Fix VG_(iseqsigset) as obvious
+351531  Typo in /include/vki/vki-xen-physdev.h header guard
+351756  Intercept platform_memchr$VARIANT$Haswell on OS X
+351858  ldsoexec support on Solaris
+351873  Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode
+352130  helgrind reports false races for printfs using mempcpy on FILE* state
+352284  s390: Conditional jump depends on uninitialised value(s) in vfprintf 
+352320  arm64 crash on none/tests/nestedfs
+352765  Vbit test fails on Power 6
+352768  The mbar instruction is missing from the Power PC support
+352769  Power PC program priority register (PPR) is not supported
+n-i-bz  Provide implementations of certain compiler builtins to support
+        compilers that may not provide those
+n-i-bz  Old STABS code is still being compiled, but never used. Remove it.
+n-i-bz  Fix compilation on distros with glibc < 2.5
+n-i-bz  (vex 3098) Avoid generation of Neon insns on non-Neon hosts
+n-i-bz  Enable rt_sigpending syscall on ppc64 linux.
+n-i-bz  mremap did not work properly on shared memory
+n-i-bz  Fix incorrect sizeof expression in syswrap-xen.c reported by Coverity
+n-i-bz  In VALGRIND_PRINTF write out thread name, if any, to xml
+
+(3.11.0.TEST1:  8 September 2015, vex r3187, valgrind r15646)
+(3.11.0.TEST2: 21 September 2015, vex r3193, valgrind r15667)
+(3.11.0:       22 September 2015, vex r3195, valgrind r15674)
+
+
+
+Release 3.10.1 (25 November 2014)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.10.1 is a bug fix release.  It fixes various bugs reported in 3.10.0
+and backports fixes for all reported missing AArch64 ARMv8 instructions
+and syscalls from the trunk.  If you package or deliver 3.10.0 for others
+to use, you might want to consider upgrading to 3.10.1 instead.
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+335440  arm64: ld1 (single structure) is not implemented
+335713  arm64: unhanded instruction: prfm (immediate)
+339020  ppc64: memcheck/tests/ppc64/power_ISA2_05 failing in nightly build
+339182  ppc64: AvSplat ought to load destination vector register with [..]
+339336  PPC64 store quad instruction (stq) is not supposed to change [..]
+339433  ppc64 lxvw4x instruction uses four 32-byte loads
+339645  Use correct tag names in sys_getdents/64 wrappers
+339706  Fix false positive for ioctl(TIOCSIG) on linux
+339721  assertion 'check_sibling == sibling' failed in readdwarf3.c ...
+339853  arm64 times syscall unknown
+339855  arm64 unhandled getsid/setsid syscalls
+339858  arm64 dmb sy not implemented
+339926  Unhandled instruction 0x1E674001 (frintx) on aarm64
+339927  Unhandled instruction 0x9E7100C6 (fcvtmu) on aarch64
+339938  disInstr(arm64): unhandled instruction 0x4F8010A4 (fmla)
+        == 339950
+339940  arm64: unhandled syscall: 83 (sys_fdatasync) + patch
+340033  arm64: unhandled insn dmb ishld and some other isb-dmb-dsb variants
+340028  unhandled syscalls for arm64 (msync, pread64, setreuid and setregid)
+340036  arm64: Unhandled instruction ld4 (multiple structures, no offset)
+340236  arm64: unhandled syscalls: mknodat, fchdir, chroot, fchownat
+340509  arm64: unhandled instruction fcvtas
+340630  arm64: fchmod (52) and fchown (55) syscalls not recognized
+340632  arm64: unhandled instruction fcvtas
+340722  Resolve "UNKNOWN attrlist flags 0:0x10000000"
+340725  AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
+340788  warning: unhandled syscall: 318 (getrandom)
+340807  disInstr(arm): unhandled instruction: 0xEE989B20
+340856  disInstr(arm64): unhandled instruction 0x1E634C45 (fcsel)
+340922  arm64: unhandled getgroups/setgroups syscalls
+350251  Fix typo in VEX utility program (test_main.c).
+350407  arm64: unhandled instruction ucvtf (vector, integer)
+350809  none/tests/async-sigs breaks when run under cron on Solaris
+350811  update README.solaris after r15445
+350813  Use handwritten memcheck assembly helpers on x86/Solaris [..]
+350854  strange code in VG_(load_ELF)()
+351140  arm64 syscalls setuid (146) and setresgid (149) not implemented
+n-i-bz  DRD and Helgrind: Handle Imbe_CancelReservation (clrex on ARM)
+n-i-bz  Add missing ]] to terminate CDATA.
+n-i-bz  Glibc versions prior to 2.5 do not define PTRACE_GETSIGINFO
+n-i-bz  Enable sys_fadvise64_64 on arm32.
+n-i-bz  Add test cases for all remaining AArch64 SIMD, FP and memory insns.
+n-i-bz  Add test cases for all known arm64 load/store instructions.
+n-i-bz  PRE(sys_openat): when checking whether ARG1 == VKI_AT_FDCWD [..]
+n-i-bz  Add detection of old ppc32 magic instructions from bug 278808.
+n-i-bz  exp-dhat: Implement missing function "dh_malloc_usable_size".
+n-i-bz  arm64: Implement "fcvtpu w, s".
+n-i-bz  arm64: implement ADDP and various others
+n-i-bz  arm64: Implement {S,U}CVTF (scalar, fixedpt).
+n-i-bz  arm64: enable FCVT{A,N}S X,S.
+
+(3.10.1: 25 November 2014, vex r3026, valgrind r14785)
+
+
+
+Release 3.10.0 (10 September 2014)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.10.0 is a feature release with many improvements and the usual
+collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
+PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
+MIPS64/Linux, ARM/Android, MIPS32/Android, X86/Android, X86/MacOSX 10.9
+and AMD64/MacOSX 10.9.  Support for MacOSX 10.8 and 10.9 is
+significantly improved relative to the 3.9.0 release.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for the 64-bit ARM Architecture (AArch64 ARMv8).  This port
+  is mostly complete, and is usable, but some SIMD instructions are as
+  yet unsupported.
+
+* Support for little-endian variant of the 64-bit POWER architecture.
+
+* Support for Android on MIPS32.
+
+* Support for 64bit FPU on MIPS32 platforms.
+
+* Both 32- and 64-bit executables are supported on MacOSX 10.8 and 10.9.
+
+* Configuration for and running on Android targets has changed.
+  See README.android in the source tree for details.
+
+* ================== DEPRECATED FEATURES =================
+
+* --db-attach is now deprecated and will be removed in the next
+  valgrind feature release.  The built-in GDB server capabilities are
+  superior and should be used instead. Learn more here:
+  http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+  - Client code can now selectively disable and re-enable reporting of
+    invalid address errors in specific ranges using the new client
+    requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
+    VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
+
+  - Leak checker: there is a new leak check heuristic called
+    "length64".  This is used to detect interior pointers pointing 8
+    bytes inside a block, on the assumption that the first 8 bytes
+    holds the value "block size - 8".  This is used by
+    sqlite3MemMalloc, for example.
+
+  - Checking of system call parameters: if a syscall parameter
+    (e.g. bind struct sockaddr, sendmsg struct msghdr, ...) has
+    several fields not initialised, an error is now reported for each
+    field. Previously, an error was reported only for the first
+    uninitialised field.
+
+  - Mismatched alloc/free checking: a new flag
+    --show-mismatched-frees=no|yes [yes] makes it possible to turn off
+    such checks if necessary.
+
+* Helgrind:
+
+  - Improvements to error messages:
 
-Despite this being a snapshot of the CVS head, it is believed to be
-quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
--- and therefore suitable for widespread use.  Please let us know asap
-if it causes problems for you.
+    o Race condition error message involving heap allocated blocks also
+      show the thread number that allocated the raced-on block.
 
-Two reasons for releasing a snapshot now are:
+    o All locks referenced by an error message are now announced.
+      Previously, some error messages only showed the lock addresses.
 
-- It's been a while since 1.9.6, and this snapshot fixes
-  various problems that 1.9.6 has with threaded programs 
-  on glibc-2.3.X based systems.
+    o The message indicating where a lock was first observed now also
+      describes the address/location of the lock.
 
-- So as to make available improvements in the 2.0 line.
+  - Helgrind now understands the Ada task termination rules and
+    creates a happens-before relationship between a terminated task
+    and its master.  This avoids some false positives and avoids a big
+    memory leak when a lot of Ada tasks are created and terminated.
+    The interceptions are only activated with forthcoming releases of
+    gnatpro >= 7.3.0w-20140611 and gcc >= 5.0.
 
-Major changes in 20030716, as compared to 1.9.6:
+  - A new GDB server monitor command "info locks" giving the list of
+    locks, their location, and their status.
 
-- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
-  systems (SuSE 8.2, Red Hat 9).  If you have had problems
-  with inconsistent/illogical behaviour of errno, h_errno or the DNS
-  resolver functions in threaded programs, 20030716 should improve
-  matters.  This snapshot seems stable enough to run OpenOffice.org
-  1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
-  threaded app if ever I saw one.
+* Callgrind:
 
-- Automatic generation of suppression records; you no longer
-  need to write them by hand.  Use --gen-suppressions=yes.
+  - callgrind_control now supports the --vgdb-prefix argument,
+    which is needed if valgrind was started with this same argument.
 
-- strcpy/memcpy/etc check their arguments for overlaps, when
-  running with the Memcheck or Addrcheck skins.
+* ==================== OTHER CHANGES ====================
 
-- malloc_usable_size() is now supported.
+* Unwinding through inlined function calls.  Stack unwinding can now
+  make use of Dwarf3 inlined-unwind information if it is available.
+  The practical effect is that inlined calls become visible in stack
+  traces.  The suppression matching machinery has been adjusted
+  accordingly.  This is controlled by the new option
+  --read-inline-info=yes|no.  Currently this is enabled by default
+  only on Linux and Android targets and only for the tools Memcheck,
+  Helgrind and DRD.
 
-- new client requests:
-    - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS: 
-      useful with regression testing
-    - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions 
-      on real CPU (use with caution!)
+* Valgrind can now read EXIDX unwind information on 32-bit ARM
+  targets.  If an object contains both CFI and EXIDX unwind
+  information, Valgrind will prefer the CFI over the EXIDX.  This
+  facilitates unwinding through system libraries on arm-android
+  targets.
+
+* Address description logic has been improved and is now common
+  between Memcheck and Helgrind, resulting in better address
+  descriptions for some kinds of error messages.
+
+* Error messages about dubious arguments (eg, to malloc or calloc) are
+  output like other errors.  This means that they can be suppressed
+  and they have a stack trace.
+
+* The C++ demangler has been updated for better C++11 support.
+
+* New and modified GDB server monitor features:
+
+  - Thread local variables/storage (__thread) can now be displayed.
+
+  - The GDB server monitor command "v.info location <address>"
+    displays information about an address.  The information produced
+    depends on the tool and on the options given to valgrind.
+    Possibly, the following are described: global variables, local
+    (stack) variables, allocated or freed blocks, ...
+
+  - The option "--vgdb-stop-at=event1,event2,..." allows the user to
+    ask the GDB server to stop at the start of program execution, at
+    the end of the program execution and on Valgrind internal errors.
+
+  - A new monitor command "v.info stats" shows various Valgrind core
+    and tool statistics.
+
+  - A new monitor command "v.set hostvisibility" allows the GDB server
+    to provide access to Valgrind internal host status/memory.
+
+* A new option "--aspace-minaddr=<address>" can in some situations
+  allow the use of more memory by decreasing the address above which
+  Valgrind maps memory.  It can also be used to solve address
+  conflicts with system libraries by increasing the default value.
+  See user manual for details.
+
+* The amount of memory used by Valgrind to store debug info (unwind
+  info, line number information and symbol data) has been
+  significantly reduced, even though Valgrind now reads more
+  information in order to support unwinding of inlined function calls.
+
+* Dwarf3 handling with --read-var-info=yes has been improved:
+
+  - Ada and C struct containing VLAs no longer cause a "bad DIE" error
+
+  - Code compiled with
+    -ffunction-sections -fdata-sections -Wl,--gc-sections
+    no longer causes assertion failures.
+
+* Improved checking for the --sim-hints= and --kernel-variant=
+  options.  Unknown strings are now detected and reported to the user
+  as a usage error.
+
+* The semantics of stack start/end boundaries in the valgrind.h
+  VALGRIND_STACK_REGISTER client request has been clarified and
+  documented.  The convention is that start and end are respectively
+  the lowest and highest addressable bytes of the stack.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+175819  Support for ipv6 socket reporting with --track-fds
+232510  make distcheck fails
+249435  Analyzing wine programs with callgrind triggers a crash
+278972  support for inlined function calls in stacktraces and suppression
+        == 199144
+291310  FXSAVE instruction marks memory as undefined on amd64
+303536  ioctl for SIOCETHTOOL (ethtool(8)) isn't wrapped
+308729  vex x86->IR: unhandled instruction bytes 0xf 0x5 (syscall) 
+315199  vgcore file for threaded app does not show which thread crashed
+315952  tun/tap ioctls are not supported
+323178  Unhandled instruction: PLDW register (ARM) 
+323179  Unhandled instruction: PLDW immediate (ARM)
+324050  Helgrind: SEGV because of unaligned stack when using movdqa
+325110  Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
+325124  [MIPSEL] Compilation error
+325477  Phase 4 support for IBM Power ISA 2.07
+325538  cavium octeon mips64, valgrind reported "dumping core" [...]
+325628  Phase 5 support for IBM Power ISA 2.07
+325714  Empty vgcore but RLIMIT_CORE is big enough (too big) 
+325751  Missing the two privileged Power PC Transactional Memory Instructions
+325816  Phase 6 support for IBM Power ISA 2.07
+325856  Make SGCheck fail gracefully on unsupported platforms
+326026  Iop names for count leading zeros/sign bits incorrectly imply [..]
+326436  DRD: False positive in libstdc++ std::list::push_back
+326444  Cavium MIPS Octeon Specific Load Indexed Instructions
+326462  Refactor vgdb to isolate invoker stuff into separate module
+326469  amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
+326623  DRD: false positive conflict report in a field assignment
+326724  Valgrind does not compile on OSX 1.9 Mavericks
+326816  Intercept for __strncpy_sse2_unaligned missing?
+326921  coregrind fails to compile m_trampoline.S with MIPS/Linux port of V
+326983  Clear direction flag after tests on amd64.
+327212  Do not prepend the current directory to absolute path names.
+327223  Support for Cavium MIPS Octeon Atomic and Count Instructions
+327238  Callgrind Assertion 'passed <= last_bb->cjmp_count' failed
+327284  s390x: Fix translation of the risbg instruction
+327639  vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
+327837  dwz compressed alternate .debug_info and .debug_str not read correctly
+327916  DW_TAG_typedef may have no name
+327943  s390x: add a redirection for the 'index' function
+328100  XABORT not implemented
+328205  Implement additional Xen hypercalls
+328454  add support Backtraces with ARM unwind tables (EXIDX)
+328455  s390x: SIGILL after emitting wrong register pair for ldxbr
+328711  valgrind.1 manpage "memcheck options" section is badly generated
+328878  vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
+329612  Incorrect handling of AT_BASE for image execution 
+329694  clang warns about using uninitialized variable 
+329956  valgrind crashes when lmw/stmw instructions are used on ppc64
+330228  mmap must align to VKI_SHMLBA on mips32
+330257  LLVM does not support `-mno-dynamic-no-pic` option
+330319  amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
+330459  --track-fds=yes doesn't track eventfds
+330469  Add clock_adjtime syscall support
+330594  Missing sysalls on PowerPC / uClibc
+330622  Add test to regression suite for POWER instruction: dcbzl
+330939  Support for AMD's syscall instruction on x86
+        == 308729
+330941  Typo in PRE(poll) syscall wrapper
+331057  unhandled instruction: 0xEEE01B20 (vfma.f64) (has patch)
+331254  Fix expected output for memcheck/tests/dw4
+331255  Fix race condition in test none/tests/coolo_sigaction
+331257  Fix type of jump buffer in test none/tests/faultstatus
+331305  configure uses bash specific syntax
+331337  s390x WARNING: unhandled syscall: 326 (dup3)
+331380  Syscall param timer_create(evp) points to uninitialised byte(s)
+331476  Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
+331829  Unexpected ioctl opcode sign extension
+331830  ppc64: WARNING: unhandled syscall: 96/97
+331839  drd/tests/sem_open specifies invalid semaphore name 
+331847  outcome of drd/tests/thread_name is nondeterministic
+332037  Valgrind cannot handle Thumb "add pc, reg"
+332055  drd asserts on platforms with VG_STACK_REDZONE_SZB == 0 and
+        consistency checks enabled
+332263  intercepts for pthread_rwlock_timedrdlock and
+        pthread_rwlock_timedwrlock are incorrect
+332265  drd could do with post-rwlock_init and pre-rwlock_destroy
+        client requests
+332276  Implement additional Xen hypercalls
+332658  ldrd.w r1, r2, [PC, #imm] does not adjust for 32bit alignment
+332765  Fix ms_print to create temporary files in a proper directory
+333072  drd: Add semaphore annotations
+333145  Tests for missaligned PC+#imm access for arm
+333228  AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
+333230  AAarch64 missing instruction encodings: dc, ic, dsb.
+333248  WARNING: unhandled syscall: unix:443
+333428  ldr.w pc [rD, #imm] instruction leads to assertion
+333501  cachegrind: assertion: Cache set count is not a power of two.
+        == 336577
+        == 292281
+333666  Recognize MPX instructions and bnd prefix.
+333788  Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
+333817  Valgrind reports the memory areas written to by the SG_IO
+        ioctl as untouched
+334049  lzcnt fails silently (x86_32)
+334384  Valgrind does not have support Little Endian support for
+        IBM POWER PPC 64
+334585  recvmmsg unhandled (+patch) (arm)
+334705  sendmsg and recvmsg should guard against bogus msghdr fields.
+334727  Build fails with -Werror=format-security
+334788  clarify doc about --log-file initial program directory
+334834  PPC64 Little Endian support, patch 2
+334836  PPC64 Little Endian support, patch 3 testcase fixes
+334936  patch to fix false positives on alsa SNDRV_CTL_* ioctls
+335034  Unhandled ioctl: HCIGETDEVLIST
+335155  vgdb, fix error print statement.
+335262  arm64: movi 8bit version is not supported
+335263  arm64: dmb instruction is not implemented
+335441  unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind
+335496  arm64: sbc/abc instructions are not implemented
+335554  arm64: unhandled instruction: abs
+335564  arm64: unhandled instruction: fcvtpu  Xn, Sn
+335735  arm64: unhandled instruction: cnt
+335736  arm64: unhandled instruction: uaddlv
+335848  arm64: unhandled instruction: {s,u}cvtf
+335902  arm64: unhandled instruction: sli
+335903  arm64: unhandled instruction: umull (vector)
+336055  arm64: unhandled instruction: mov (element)
+336062  arm64: unhandled instruction: shrn{,2}
+336139  mip64: [...] valgrind hangs and spins on a single core [...]
+336189  arm64: unhandled Instruction: mvn
+336435  Valgrind hangs in pthread_spin_lock consuming 100% CPU
+336619  valgrind --read-var-info=yes doesn't handle DW_TAG_restrict_type
+336772  Make moans about unknown ioctls more informative
+336957  Add a section about the Solaris/illumos port on the webpage
+337094  ifunc wrapper is broken on ppc64
+337285  fcntl commands F_OFD_SETLK, F_OFD_SETLKW, and F_OFD_GETLK not supported
+337528  leak check heuristic for block prefixed by length as 64bit number
+337740  Implement additional Xen hypercalls
+337762  guest_arm64_toIR.c:4166 (dis_ARM64_load_store): Assertion `0' failed.
+337766  arm64-linux: unhandled syscalls mlock (228) and mlockall (230)
+337871  deprecate --db-attach
+338023  Add support for all V4L2/media ioctls
+338024  inlined functions are not shown if DW_AT_ranges is used
+338106  Add support for 'kcmp' syscall
+338115  DRD: computed conflict set differs from actual after fork
+338160  implement display of thread local storage in gdbsrv
+338205  configure.ac and check for -Wno-tautological-compare
+338300  coredumps are missing one byte of every segment
+338445  amd64 vbit-test fails with unknown opcodes used by arm64 VEX
+338499  --sim-hints parsing broken due to wrong order in tokens
+338615  suppress glibc 2.20 optimized strcmp implementation for ARMv7
+338681  Unable to unwind through clone thread created on i386-linux
+338698  race condition between gdbsrv and vgdb on startup
+338703  helgrind on arm-linux gets false positives in dynamic loader
+338791  alt dwz files can be relative of debug/main file
+338878  on MacOS: assertion 'VG_IS_PAGE_ALIGNED(clstack_end+1)' failed
+338932  build V-trunk with gcc-trunk
+338974  glibc 2.20 changed size of struct sigaction sa_flags field on s390
+345079  Fix build problems in VEX/useful/test_main.c
+n-i-bz  Fix KVM_CREATE_IRQCHIP ioctl handling
+n-i-bz  s390x: Fix memory corruption for multithreaded applications
+n-i-bz  vex arm->IR: allow PC as basereg in some LDRD cases
+n-i-bz  internal error in Valgrind if vgdb transmit signals when ptrace invoked
+n-i-bz  Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
+n-i-bz  drd manual: Document how to C++11 programs that use class "std::thread"
+n-i-bz  Add command-line option --default-suppressions
+n-i-bz  Add support for BLKDISCARDZEROES ioctl
+n-i-bz  ppc32/64: fix a regression with the mtfsb0/mtfsb1 instructions
+n-i-bz  Add support for        sys_pivot_root and sys_unshare
+
+(3.10.0.BETA1:  2 September 2014, vex r2940, valgrind r14428)
+(3.10.0.BETA2:  8 September 2014, vex r2950, valgrind r14503)
+(3.10.0:       10 September 2014, vex r2950, valgrind r14514)
+
+
+
+Release 3.9.0 (31 October 2013)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.9.0 is a feature release with many improvements and the usual
+collection of bug fixes.
 
-- The GDB attach mechanism is more flexible.  Allow the GDB to
-  be run to be specified by --gdb-path=/path/to/gdb, and specify
-  which file descriptor V will read its input from with
-  --input-fd=<number>.
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android,
+X86/Android, X86/MacOSX 10.7 and AMD64/MacOSX 10.7.  Support for
+MacOSX 10.8 is significantly improved relative to the 3.8.0 release.
 
-- Cachegrind gives more accurate results (wasn't tracking instructions in
-  malloc() and friends previously, is now).
+* ================== PLATFORM CHANGES =================
 
-- Complete support for the MMX instruction set.
+* Support for MIPS64 LE and BE running Linux.  Valgrind has been
+  tested on MIPS64 Debian Squeeze and Debian Wheezy distributions.
 
-- Partial support for the SSE and SSE2 instruction sets.  Work for this
-  is ongoing.  About half the SSE/SSE2 instructions are done, so
-  some SSE based programs may work.  Currently you need to specify
-  --skin=addrcheck.  Basically not suitable for real use yet.
+* Support for MIPS DSP ASE on MIPS32 platforms.
 
-- Significant speedups (10%-20%) for standard memory checking.
+* Support for s390x Decimal Floating Point instructions on hosts that
+  have the DFP facility installed.
 
-- Fix assertion failure in pthread_once().
+* Support for POWER8 (Power ISA 2.07) instructions
 
-- Fix this:
-    valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select): 
-              Assertion `ms_end >= ms_now' failed.
+* Support for Intel AVX2 instructions.  This is available only on 64
+  bit code.
 
-- Implement pthread_mutexattr_setpshared.
+* Initial support for Intel Transactional Synchronization Extensions,
+  both RTM and HLE.
 
-- Understand Pentium 4 branch hints.  Also implemented a couple more
-  obscure x86 instructions.
+* Initial support for Hardware Transactional Memory on POWER.
 
-- Lots of other minor bug fixes.
+* Improved support for MacOSX 10.8 (64-bit only).  Memcheck can now
+  run large GUI apps tolerably well.
 
-- We have a decent regression test system, for the first time.
-  This doesn't help you directly, but it does make it a lot easier
-  for us to track the quality of the system, especially across
-  multiple linux distributions.  
+* ==================== TOOL CHANGES ====================
 
-  You can run the regression tests with 'make regtest' after 'make
-  install' completes.  On SuSE 8.2 and Red Hat 9 I get this:
-     == 84 tests, 0 stderr failures, 0 stdout failures ==
+* Memcheck:
 
-  On Red Hat 8, I get this:
+  - Improvements in handling of vectorised code, leading to
+    significantly fewer false error reports.  You need to use the flag
+    --partial-loads-ok=yes to get the benefits of these changes.
 
-     == 84 tests, 2 stderr failures, 1 stdout failure ==
-     corecheck/tests/res_search               (stdout)
-     memcheck/tests/sigaltstack               (stderr)
+  - Better control over the leak checker.  It is now possible to
+    specify which leak kinds (definite/indirect/possible/reachable)
+    should be displayed, which should be regarded as errors, and which
+    should be suppressed by a given leak suppression.  This is done
+    using the options --show-leak-kinds=kind1,kind2,..,
+    --errors-for-leak-kinds=kind1,kind2,.. and an optional
+    "match-leak-kinds:" line in suppression entries, respectively.
 
-  sigaltstack is probably harmless.  res_search doesn't work
-  on R H 8 even running natively, so I'm not too worried.   
+    Note that generated leak suppressions contain this new line and
+    are therefore more specific than in previous releases.  To get the
+    same behaviour as previous releases, remove the "match-leak-kinds:"
+    line from generated suppressions before using them.
 
-  On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
+  - Reduced "possible leak" reports from the leak checker by the use
+    of better heuristics.  The available heuristics provide detection
+    of valid interior pointers to std::stdstring, to new[] allocated
+    arrays with elements having destructors and to interior pointers
+    pointing to an inner part of a C++ object using multiple
+    inheritance.  They can be selected individually using the
+    option --leak-check-heuristics=heur1,heur2,...
 
-     == 84 tests, 2 stderr failures, 1 stdout failure ==
-     corecheck/tests/pth_atfork1              (stdout)
-     corecheck/tests/pth_atfork1              (stderr)
-     memcheck/tests/sigaltstack               (stderr)
+  - Better control of stacktrace acquisition for heap-allocated
+    blocks.  Using the --keep-stacktraces option, it is possible to
+    control independently whether a stack trace is acquired for each
+    allocation and deallocation.  This can be used to create better
+    "use after free" errors or to decrease Valgrind's resource
+    consumption by recording less information.
 
-  You need to run on a PII system, at least, since some tests
-  contain P6-specific instructions, and the test machine needs
-  access to the internet so that corecheck/tests/res_search
-  (a test that the DNS resolver works) can function.
+  - Better reporting of leak suppression usage.  The list of used
+    suppressions (shown when the -v option is given) now shows, for
+    each leak suppressions, how many blocks and bytes it suppressed
+    during the last leak search.
 
-As ever, thanks for the vast amount of feedback :) and bug reports :(
-We may not answer all messages, but we do at least look at all of
-them, and tend to fix the most frequently reported bugs.
+* Helgrind:
 
+  - False errors resulting from the use of statically initialised
+    mutexes and condition variables (PTHREAD_MUTEX_INITIALISER, etc)
+    have been removed.
 
+  - False errors resulting from the use of pthread_cond_waits that
+    timeout, have been removed.
 
-Version 1.9.6 (7 May 2003 or thereabouts)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* ==================== OTHER CHANGES ====================
 
-Major changes in 1.9.6:
+* Some attempt to tune Valgrind's space requirements to the expected
+  capabilities of the target:
+
+  - The default size of the translation cache has been reduced from 8
+    sectors to 6 on Android platforms, since each sector occupies
+    about 40MB when using Memcheck.
+
+  - The default size of the translation cache has been increased to 16
+    sectors on all other platforms, reflecting the fact that large
+    applications require instrumentation and storage of huge amounts
+    of code.  For similar reasons, the number of memory mapped
+    segments that can be tracked has been increased by a factor of 6.
+
+  - In all cases, the maximum number of sectors in the translation
+    cache can be controlled by the new flag --num-transtab-sectors.
+
+* Changes in how debug info (line numbers, etc) is read:
+
+  - Valgrind no longer temporarily mmaps the entire object to read
+    from it.  Instead, reading is done through a small fixed sized
+    buffer.  This avoids virtual memory usage spikes when Valgrind
+    reads debuginfo from large shared objects.
+
+  - A new experimental remote debug info server.  Valgrind can read
+    debug info from a different machine (typically, a build host)
+    where debuginfo objects are stored.  This can save a lot of time
+    and hassle when running Valgrind on resource-constrained targets
+    (phones, tablets) when the full debuginfo objects are stored
+    somewhere else.  This is enabled by the --debuginfo-server=
+    option.
+
+  - Consistency checking between main and debug objects can be
+    disabled using the --allow-mismatched-debuginfo option.
+
+* Stack unwinding by stack scanning, on ARM.  Unwinding by stack
+  scanning can recover stack traces in some cases when the normal
+  unwind mechanisms fail.  Stack scanning is best described as "a
+  nasty, dangerous and misleading hack" and so is disabled by default.
+  Use --unw-stack-scan-thresh and --unw-stack-scan-frames to enable
+  and control it.
+
+* Detection and merging of recursive stack frame cycles.  When your
+  program has recursive algorithms, this limits the memory used by
+  Valgrind for recorded stack traces and avoids recording
+  uninteresting repeated calls.  This is controlled by the command
+  line option --merge-recursive-frame and by the monitor command
+  "v.set merge-recursive-frames".
+
+* File name and line numbers for used suppressions.  The list of used
+  suppressions (shown when the -v option is given) now shows, for each
+  used suppression, the file name and line number where the suppression
+  is defined.
+
+* New and modified GDB server monitor features:
+
+  - valgrind.h has a new client request, VALGRIND_MONITOR_COMMAND,
+    that can be used to execute gdbserver monitor commands from the
+    client program.
+
+  - A new monitor command, "v.info open_fds", that gives the list of
+    open file descriptors and additional details.
+
+  - An optional message in the "v.info n_errs_found" monitor command,
+    for example "v.info n_errs_found test 1234 finished", allowing a
+    comment string to be added to the process output, perhaps for the
+    purpose of separating errors of different tests or test phases.
+
+  - A new monitor command "v.info execontext" that shows information
+    about the stack traces recorded by Valgrind.
+
+  - A new monitor command "v.do expensive_sanity_check_general" to run
+    some internal consistency checks.
+
+* New flag --sigill-diagnostics to control whether a diagnostic
+  message is printed when the JIT encounters an instruction it can't
+  translate.  The actual behavior -- delivery of SIGILL to the
+  application -- is unchanged.
+
+* The maximum amount of memory that Valgrind can use on 64 bit targets
+  has been increased from 32GB to 64GB.  This should make it possible
+  to run applications on Memcheck that natively require up to about 35GB.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+123837  system call: 4th argument is optional, depending on cmd
+135425  memcheck should tell you where Freed blocks were Mallocd
+164485  VG_N_SEGNAMES and VG_N_SEGMENTS are (still) too small
+207815  Adds some of the drm ioctls to syswrap-linux.c 
+251569  vex amd64->IR: 0xF 0x1 0xF9 0xBF 0x90 0xD0 0x3 0x0 (RDTSCP)
+252955  Impossible to compile with ccache
+253519  Memcheck reports auxv pointer accesses as invalid reads.
+263034  Crash when loading some PPC64 binaries
+269599  Increase deepest backtrace
+274695  s390x: Support "compare to/from logical" instructions (z196)
+275800  s390x: Autodetect cache info (part 2)
+280271  Valgrind reports possible memory leaks on still-reachable std::string
+284540  Memcheck shouldn't count suppressions matching still-reachable [..]
+289578  Backtraces with ARM unwind tables (stack scan flags)
+296311  Wrong stack traces due to -fomit-frame-pointer (x86) 
+304832  ppc32: build failure
+305431  Use find_buildid shdr fallback for separate .debug files
+305728  Add support for AVX2 instructions
+305948  ppc64: code generation for ShlD64 / ShrD64 asserts
+306035  s390x: Fix IR generation for LAAG and friends
+306054  s390x: Condition code computation for convert-to-int/logical
+306098  s390x: alternate opcode form for convert to/from fixed
+306587  Fix cache line detection from auxiliary vector for PPC.
+306783  Mips unhandled syscall :  4025  /  4079  / 4182
+307038  DWARF2 CFI reader: unhandled DW_OP_ opcode 0x8 (DW_OP_const1u et al)
+307082  HG false positive: pthread_cond_destroy: destruction of unknown CV
+307101  sys_capget second argument can be NULL
+307103  sys_openat: If pathname is absolute, then dirfd is ignored.
+307106  amd64->IR: f0 0f c0 02 (lock xadd byte)
+307113  s390x: DFP support
+307141  valgrind does't work in mips-linux system
+307155  filter_gdb should filter out syscall-template.S T_PSEUDO
+307285  x86_amd64 feature test for avx in test suite is wrong
+307290  memcheck overlap testcase needs memcpy version filter
+307463  Please add "&limit=0" to the "all open bugs" link
+307465  --show-possibly-lost=no should reduce the error count / exit code
+307557  Leaks on Mac OS X 10.7.5 libraries at ImageLoader::recursiveInit[..]
+307729  pkgconfig support broken valgrind.pc
+307828  Memcheck false errors SSE optimized wcscpy, wcscmp, wcsrchr, wcschr
+307955  Building valgrind 3.7.0-r4 fails in Gentoo AMD64 when using clang
+308089  Unhandled syscall on ppc64: prctl
+308135  PPC32 MPC8xx has 16 bytes cache size
+308321  testsuite memcheck filter interferes with gdb_filter 
+308333 == 307106
+308341  vgdb should report process exit (or fatal signal)
+308427  s390 memcheck reports tsearch cjump/cmove depends on uninit
+308495  Remove build dependency on installed Xen headers
+308573  Internal error on 64-bit instruction executed in 32-bit mode
+308626  == 308627
+308627  pmovmskb validity bit propagation is imprecise
+308644  vgdb command for having the info for the track-fds option
+308711  give more info about aspacemgr and arenas in out_of_memory
+308717  ARM: implement fixed-point VCVT.F64.[SU]32
+308718  ARM implement SMLALBB family of instructions
+308886  Missing support for PTRACE_SET/GETREGSET 
+308930  syscall name_to_handle_at (303 on amd64) not handled
+309229  V-bit tester does not report number of tests generated
+309323  print unrecognized instuction on MIPS
+309425  Provide a --sigill-diagnostics flag to suppress illegal [..]
+309427  SSE optimized stpncpy trigger uninitialised value [..] errors
+309430  Self hosting ppc64 encounters a vassert error on operand type
+309600  valgrind is a bit confused about 0-sized sections
+309823  Generate errors for still reachable blocks
+309921  PCMPISTRI validity bit propagation is imprecise
+309922  none/tests/ppc64/test_dfp5 sometimes fails
+310169  The Iop_CmpORD class of Iops is not supported by the vbit checker.
+310424  --read-var-info does not properly describe static variables 
+310792  search additional path for debug symbols
+310931  s390x: Message-security assist (MSA) instruction extension [..]
+311100  PPC DFP implementation of the integer operands is inconsistent [..]
+311318  ARM: "128-bit constant is not implemented" error message
+311407  ssse3 bcopy (actually converted memcpy) causes invalid read [..]
+311690  V crashes because it redirects branches inside of a redirected function
+311880  x86_64: make regtest hangs at shell_valid1
+311922  WARNING: unhandled syscall: 170
+311933  == 251569
+312171  ppc: insn selection for DFP
+312571  Rounding mode call wrong for the DFP Iops [..]
+312620  Change to Iop_D32toD64 [..] for s390 DFP support broke ppc [..]
+312913  Dangling pointers error should also report the alloc stack trace
+312980  Building on Mountain Lion generates some compiler warnings
+313267  Adding MIPS64/Linux port to Valgrind
+313348  == 251569
+313354  == 251569
+313811  Buffer overflow in assert_fail
+314099  coverity pointed out error in VEX guest_ppc_toIR.c insn_suffix
+314269  ppc: dead code in insn selection
+314718  ARM: implement integer divide instruction (sdiv and udiv)
+315345  cl-format.xml and callgrind/dump.c don't agree on using cfl= or cfi=
+315441  sendmsg syscall should ignore unset msghdr msg_flags
+315534  msgrcv inside a thread causes valgrind to hang (block)
+315545  Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed
+315689  disInstr(thumb): unhandled instruction: 0xF852 0x0E10 (LDRT)
+315738  disInstr(arm): unhandled instruction: 0xEEBE0BEE (vcvt.s32.f64)
+315959  valgrind man page has bogus SGCHECK (and no BBV) OPTIONS section
+316144  valgrind.1 manpage contains unknown ??? strings [..]
+316145  callgrind command line options in manpage reference (unknown) [..]
+316145  callgrind command line options in manpage reference [..]
+316181  drd: Fixed a 4x slowdown for certain applications
+316503  Valgrind does not support SSE4 "movntdqa" instruction
+316535  Use of |signed int| instead of |size_t| in valgrind messages
+316696   fluidanimate program of parsec 2.1 stuck 
+316761  syscall open_by_handle_at (304 on amd64, 342 on x86) not handled
+317091  Use -Wl,-Ttext-segment when static linking if possible [..]
+317186  "Impossible happens" when occurs VCVT instruction on ARM
+317318  Support for Threading Building Blocks "scalable_malloc"
+317444  amd64->IR: 0xC4 0x41 0x2C 0xC2 0xD2 0x8 (vcmpeq_uqps)
+317461  Fix BMI assembler configure check and avx2/bmi/fma vgtest prereqs
+317463  bmi testcase IR SANITY CHECK FAILURE
+317506  memcheck/tests/vbit-test fails with unknown opcode after [..]
+318050  libmpiwrap fails to compile with out-of-source build
+318203  setsockopt handling needs to handle SOL_SOCKET/SO_ATTACH_FILTER
+318643  annotate_trace_memory tests infinite loop on arm and ppc [..]
+318773  amd64->IR: 0xF3 0x48 0x0F 0xBC 0xC2 0xC3 0x66 0x0F
+318929  Crash with: disInstr(thumb): 0xF321 0x0001 (ssat16)
+318932  Add missing PPC64 and PPC32 system call support
+319235  --db-attach=yes is broken with Yama (ptrace scoping) enabled
+319395  Crash with unhandled instruction on STRT (Thumb) instructions
+319494  VEX Makefile-gcc standalone build update after r2702
+319505  [MIPSEL] Crash: unhandled UNRAY operator.
+319858  disInstr(thumb): unhandled instruction on instruction STRBT
+319932  disInstr(thumb): unhandled instruction on instruction STRHT
+320057  Problems when we try to mmap more than 12 memory pages on MIPS32
+320063  Memory from PTRACE_GET_THREAD_AREA is reported uninitialised
+320083  disInstr(thumb): unhandled instruction on instruction LDRBT
+320116  bind on AF_BLUETOOTH produces warnings because of sockaddr_rc padding
+320131  WARNING: unhandled syscall: 369 on ARM (prlimit64)
+320211  Stack buffer overflow in ./coregrind/m_main.c with huge TMPDIR
+320661  vgModuleLocal_read_elf_debug_info(): "Assertion '!di->soname'
+320895  add fanotify support (patch included)
+320998  vex amd64->IR pcmpestri and pcmpestrm SSE4.2 instruction
+321065  Valgrind updates for Xen 4.3
+321148  Unhandled instruction: PLI (Thumb 1, 2, 3)
+321363  Unhandled instruction: SSAX (ARM + Thumb)
+321364  Unhandled instruction: SXTAB16 (ARM + Thumb)
+321466  Unhandled instruction: SHASX (ARM + Thumb)
+321467  Unhandled instruction: SHSAX (ARM + Thumb)
+321468  Unhandled instruction: SHSUB16 (ARM + Thumb)
+321619  Unhandled instruction: SHSUB8 (ARM + Thumb)
+321620  Unhandled instruction: UASX (ARM + Thumb)
+321621  Unhandled instruction: USAX (ARM + Thumb)
+321692  Unhandled instruction: UQADD16 (ARM + Thumb)
+321693  Unhandled instruction: LDRSBT (Thumb)
+321694  Unhandled instruction: UQASX (ARM + Thumb)
+321696  Unhandled instruction: UQSAX (Thumb + ARM)
+321697  Unhandled instruction: UHASX (ARM + Thumb)
+321703  Unhandled instruction: UHSAX (ARM + Thumb)
+321704  Unhandled instruction: REVSH (ARM + Thumb)
+321730  Add cg_diff and cg_merge man pages
+321738  Add vgdb and valgrind-listener man pages
+321814  == 315545
+321891  Unhandled instruction: LDRHT (Thumb)
+321960  pthread_create() then alloca() causing invalid stack write errors
+321969  ppc32 and ppc64 don't support [lf]setxattr
+322254  Show threadname together with tid if set by application
+322294  Add initial support for IBM Power ISA 2.07
+322368  Assertion failure in wqthread_hijack under OS X 10.8
+322563  vex mips->IR: 0x70 0x83 0xF0 0x3A
+322807  VALGRIND_PRINTF_BACKTRACE writes callstack to xml and text to stderr
+322851  0bXXX binary literal syntax is not standard 
+323035  Unhandled instruction: LDRSHT(Thumb)
+323036  Unhandled instruction: SMMLS (ARM and Thumb)
+323116  The memcheck/tests/ppc64/power_ISA2_05.c fails to build [..]
+323175  Unhandled instruction: SMLALD (ARM + Thumb)
+323177  Unhandled instruction: SMLSLD (ARM + Thumb)
+323432  Calling pthread_cond_destroy() or pthread_mutex_destroy() [..]
+323437  Phase 2 support for IBM Power ISA 2.07
+323713  Support mmxext (integer sse) subset on i386 (athlon)
+323803  Transactional memory instructions are not supported for Power
+323893  SSE3 not available on amd cpus in valgrind
+323905  Probable false positive from Valgrind/drd on close()
+323912  valgrind.h header isn't compatible for mingw64
+324047  Valgrind doesn't support [LDR,ST]{S}[B,H]T ARM instructions
+324149  helgrind: When pthread_cond_timedwait returns ETIMEDOUT [..]
+324181  mmap does not handle MAP_32BIT
+324227  memcheck false positive leak when a thread calls exit+block [..]
+324421  Support for fanotify API on ARM architecture
+324514  gdbserver monitor cmd output behaviour consistency [..]
+324518  ppc64: Emulation of dcbt instructions does not handle [..]
+324546  none/tests/ppc32 test_isa_2_07_part2 requests -m64
+324582  When access is made to freed memory, report both allocation [..]
+324594  Fix overflow computation for Power ISA 2.06 insns: mulldo/mulldo.
+324765  ppc64: illegal instruction when executing none/tests/ppc64/jm-misc
+324816  Incorrect VEX implementation for xscvspdp/xvcvspdp for SNaN inputs
+324834  Unhandled instructions in Microsoft C run-time for x86_64
+324894  Phase 3 support for IBM Power ISA 2.07
+326091  drd: Avoid false race reports from optimized strlen() impls
+326113  valgrind libvex hwcaps error on AMD64 
+n-i-bz  Some wrong command line options could be ignored
+n-i-bz  patch to allow fair-sched on android
+n-i-bz  report error for vgdb snapshot requested before execution
+n-i-bz  same as 303624 (fixed in 3.8.0), but for x86 android
+
+(3.9.0: 31 October 2013, vex r2796, valgrind r13708)
+
+
+
+Release 3.8.1 (19 September 2012)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.8.1 is a bug fix release.  It fixes some assertion failures in 3.8.0
+that occur moderately frequently in real use cases, adds support for
+some missing instructions on ARM, and fixes a deadlock condition on
+MacOSX.  If you package or deliver 3.8.0 for others to use, you might
+want to consider upgrading to 3.8.1 instead.
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+284004  == 301281
+289584  Unhandled instruction: 0xF 0x29 0xE5 (MOVAPS)
+295808  amd64->IR: 0xF3 0xF 0xBC 0xC0 (TZCNT)
+298281  wcslen causes false(?) uninitialised value warnings
+301281  valgrind hangs on OS X when the process calls system()
+304035  disInstr(arm): unhandled instruction 0xE1023053
+304867  implement MOVBE instruction in x86 mode
+304980  Assertion 'lo <= hi' failed in vgModuleLocal_find_rx_mapping
+305042  amd64: implement 0F 7F encoding of movq between two registers
+305199  ARM: implement QDADD and QDSUB
+305321  amd64->IR: 0xF 0xD 0xC (prefetchw)
+305513  killed by fatal signal: SIGSEGV
+305690  DRD reporting invalid semaphore when sem_trywait fails
+305926  Invalid alignment checks for some AVX instructions
+306297  disInstr(thumb): unhandled instruction 0xE883 0x000C
+306310  3.8.0 release tarball missing some files
+306612  RHEL 6 glibc-2.X default suppressions need /lib*/libc-*patterns
+306664  vex amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x46 0x66 0xF
+n-i-bz  shmat of a segment > 4Gb does not work 
+n-i-bz  simulate_control_c script wrong USR1 signal number on mips
+n-i-bz  vgdb ptrace calls wrong on mips [...]
+n-i-bz  Fixes for more MPI false positives
+n-i-bz  exp-sgcheck's memcpy causes programs to segfault
+n-i-bz  OSX build w/ clang: asserts at startup
+n-i-bz  Incorrect undef'dness prop for Iop_DPBtoBCD and Iop_BCDtoDPB
+n-i-bz  fix a couple of union tag-vs-field mixups
+n-i-bz  OSX: use __NR_poll_nocancel rather than __NR_poll
+
+The following bugs were fixed in 3.8.0 but not listed in this NEWS
+file at the time:
+
+254088  Valgrind should know about UD2 instruction
+301280  == 254088
+301902  == 254088
+304754  NEWS blows TeX's little mind
+
+(3.8.1: 19 September 2012, vex r2537, valgrind r12996)
+
+
+
+Release 3.8.0 (10 August 2012)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.8.0 is a feature release with many improvements and the usual
+collection of bug fixes.
 
-- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
-  RedHat 9, to name but two ...)  It turned out that 1.9.5
-  had problems with threading support on glibc >= 2.3.2,
-  usually manifested by threaded programs deadlocking in system calls,
-  or running unbelievably slowly.  Hopefully these are fixed now.  1.9.6
-  is the first valgrind which gives reasonable support for
-  glibc-2.3.2.  Also fixed a 2.3.2 problem with pthread_atfork().
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android, X86/Android,
+X86/MacOSX 10.6/10.7 and AMD64/MacOSX 10.6/10.7.  Support for recent
+distros and toolchain components (glibc 2.16, gcc 4.7) has been added.
+There is initial support for MacOSX 10.8, but it is not usable for
+serious work at present.
 
-- Majorly expanded FAQ.txt.  We've added workarounds for all
-  common problems for which a workaround is known.
+* ================== PLATFORM CHANGES =================
 
-Minor changes in 1.9.6:
+* 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.
 
-- Fix identification of the main thread's stack.  Incorrect
-  identification of it was causing some on-stack addresses to not get
-  identified as such.  This only affected the usefulness of some error
-  messages; the correctness of the checks made is unchanged.
+* Preliminary support for Android running on x86.
 
-- Support for kernels >= 2.5.68.
+* Preliminary (as-yet largely unusable) support for MacOSX 10.8.
 
-- Dummy implementations of __libc_current_sigrtmin, 
-  __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
-  good enough to keep alive programs which previously died for lack of
-  them.
+* Support for Intel AVX instructions and for AES instructions.  This
+  support is available only for 64 bit code.
 
-- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
+* Support for POWER Decimal Floating Point instructions.
 
-- Fix bug in the DWARF2 debug line info loader, when instructions 
-  following each other have source lines far from each other 
-  (e.g. with inlined functions).
+* ==================== TOOL CHANGES ====================
 
-- Debug info reading: read symbols from both "symtab" and "dynsym"
-  sections, rather than merely from the one that comes last in the
-  file.
+* 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.
 
-- New syscall support: prctl(), creat(), lookup_dcookie().
+* 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.
 
-- When checking calls to accept(), recvfrom(), getsocketopt(),
-  don't complain if buffer values are NULL.
+* Memcheck:
 
-- Try and avoid assertion failures in
-  mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
+  - The leak_check GDB server monitor command now can
+    control the maximum nr of loss records to output.
 
-- Minor bug fixes in cg_annotate.
+  - 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.
+
+* ==================== OTHER CHANGES ====================
+
+* 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.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
+than mailing the developers (or mailing lists) directly -- bugs that
+are not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+197914  Building valgrind from svn now requires automake-1.10
+203877  increase to 16Mb maximum allowed alignment for memalign et al
+219156  Handle statically linked malloc or other malloc lib (e.g. tcmalloc) 
+247386  make perf does not run all performance tests
+270006  Valgrind scheduler unfair 
+270777  Adding MIPS/Linux port to Valgrind
+270796  s390x: Removed broken support for the TS insn
+271438  Fix configure for proper SSE4.2 detection
+273114  s390x: Support TR, TRE, TROO, TROT, TRTO, and TRTT instructions
+273475  Add support for AVX instructions
+274078  improved configure logic for mpicc
+276993  fix mremap 'no thrash checks' 
+278313  Fedora 15/x64: err read debug info with --read-var-info=yes flag
+281482  memcheck incorrect byte allocation count in realloc() for silly argument
+282230  group allocator for small fixed size, use it for MC_Chunk/SEc vbit
+283413  Fix wrong sanity check
+283671  Robustize alignment computation in LibVEX_Alloc
+283961  Adding support for some HCI IOCTLs
+284124  parse_type_DIE: confused by: DWARF 4
+284864  == 273475 (Add support for AVX instructions)
+285219  Too-restrictive constraints for Thumb2 "SP plus/minus register"
+285662  (MacOSX): Memcheck needs to replace memcpy/memmove
+285725  == 273475 (Add support for AVX instructions)
+286261  add wrapper for linux I2C_RDWR ioctl
+286270  vgpreload is not friendly to 64->32 bit execs, gives ld.so warnings
+286374  Running cachegrind with --branch-sim=yes on 64-bit PowerPC program fails
+286384  configure fails "checking for a supported version of gcc"
+286497  == 273475 (Add support for AVX instructions)
+286596  == 273475 (Add support for AVX instructions)
+286917  disInstr(arm): unhandled instruction: QADD (also QSUB)
+287175  ARM: scalar VFP fixed-point VCVT instructions not handled
+287260  Incorrect conditional jump or move depends on uninitialised value(s)
+287301  vex amd64->IR: 0x66 0xF 0x38 0x41 0xC0 0xB8 0x0 0x0 (PHMINPOSUW)
+287307  == 273475 (Add support for AVX instructions)
+287858  VG_(strerror): unknown error 
+288298  (MacOSX) unhandled syscall shm_unlink
+288995  == 273475 (Add support for AVX instructions)
+289470  Loading of large Mach-O thin binaries fails.
+289656  == 273475 (Add support for AVX instructions)
+289699  vgdb connection in relay mode erroneously closed due to buffer overrun 
+289823  ==  293754 (PCMPxSTRx not implemented for 16-bit characters)
+289839  s390x: Provide support for unicode conversion instructions
+289939  monitor cmd 'leak_check' with details about leaked or reachable blocks
+290006  memcheck doesn't mark %xmm as initialized after "pcmpeqw %xmm %xmm"
+290655  Add support for AESKEYGENASSIST instruction 
+290719  valgrind-3.7.0 fails with automake-1.11.2 due to"pkglibdir" usage
+290974  vgdb must align pages to VKI_SHMLBA (16KB) on ARM 
+291253  ES register not initialised in valgrind simulation
+291568  Fix 3DNOW-related crashes with baseline x86_64 CPU (w patch)
+291865  s390x: Support the "Compare Double and Swap" family of instructions
+292300  == 273475 (Add support for AVX instructions)
+292430  unrecognized instruction in __intel_get_new_mem_ops_cpuid
+292493  == 273475 (Add support for AVX instructions)
+292626  Missing fcntl F_SETOWN_EX and F_GETOWN_EX support
+292627  Missing support for some SCSI ioctls
+292628  none/tests/x86/bug125959-x86.c triggers undefined behavior
+292841  == 273475 (Add support for AVX instructions)
+292993  implement the getcpu syscall on amd64-linux
+292995  Implement the “cross memory attach” syscalls introduced in Linux 3.2
+293088  Add some VEX sanity checks for ppc64 unhandled instructions
+293751  == 290655 (Add support for AESKEYGENASSIST instruction)
+293754  PCMPxSTRx not implemented for 16-bit characters
+293755  == 293754 (No tests for PCMPxSTRx on 16-bit characters)
+293808  CLFLUSH not supported by latest VEX for amd64
+294047  valgrind does not correctly emulate prlimit64(..., RLIMIT_NOFILE, ...)
+294048  MPSADBW instruction not implemented
+294055  regtest none/tests/shell fails when locale is not set to C
+294185  INT 0x44 (and others) not supported on x86 guest, but used by Jikes RVM
+294190  --vgdb-error=xxx can be out of sync with errors shown to the user
+294191  amd64: fnsave/frstor and 0x66 size prefixes on FP instructions
+294260  disInstr_AMD64: disInstr miscalculated next %rip
+294523  --partial-loads-ok=yes causes false negatives
+294617  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A
+294736  vex amd64->IR: 0x48 0xF 0xD7 0xD6 0x48 0x83
+294812  patch allowing to run (on x86 at least) helgrind/drd on tool.
+295089  can not annotate source for both helgrind and drd
+295221  POWER Processor decimal floating point instruction support missing
+295427  building for i386 with clang on darwin11 requires "-new_linker linker"
+295428  coregrind/m_main.c has incorrect x86 assembly for darwin
+295590  Helgrind: Assertion 'cvi->nWaiters > 0' failed
+295617  ARM - Add some missing syscalls
+295799  Missing \n with get_vbits in gdbserver when line is % 80 [...]
+296229  Linux user input device ioctls missing wrappers
+296318  ELF Debug info improvements (more than one rx/rw mapping)
+296422  Add translation chaining support
+296457  vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A (dup of AES)
+296792  valgrind 3.7.0: add SIOCSHWTSTAMP (0x89B0) ioctl wrapper
+296983  Fix build issues on x86_64/ppc64 without 32-bit toolchains
+297078  gdbserver signal handling problems [..]
+297147  drd false positives on newly allocated memory
+297329  disallow decoding of IBM Power DFP insns on some machines
+297497  POWER Processor decimal floating point instruction support missing
+297701  Another alias for strncasecmp_l in libc-2.13.so
+297911  'invalid write' not reported when using APIs for custom mem allocators.
+297976  s390x: revisit EX implementation
+297991  Valgrind interferes with mmap()+ftell() 
+297992  Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux) 
+297993  Fix compilation of valgrind with gcc -g3.
+298080  POWER Processor DFP support missing, part 3
+298227  == 273475 (Add support for AVX instructions)
+298335  == 273475 (Add support for AVX instructions)
+298354  Unhandled ARM Thumb instruction 0xEB0D 0x0585 (streq)
+298394  s390x: Don't bail out on an unknown machine model.  [..]
+298421  accept4() syscall (366) support is missing for ARM
+298718  vex amd64->IR: 0xF 0xB1 0xCB 0x9C 0x8F 0x45
+298732  valgrind installation problem in ubuntu with kernel version 3.x
+298862  POWER Processor DFP instruction support missing, part 4
+298864  DWARF reader mis-parses DW_FORM_ref_addr
+298943  massif asserts with --pages-as-heap=yes when brk is changing [..]
+299053  Support DWARF4 DW_AT_high_pc constant form
+299104  == 273475 (Add support for AVX instructions)
+299316  Helgrind: hg_main.c:628 (map_threads_lookup): Assertion 'thr' failed.
+299629  dup3() syscall (358) support is missing for ARM
+299694  POWER Processor DFP instruction support missing, part 5
+299756  Ignore --free-fill for MEMPOOL_FREE and FREELIKE client requests
+299803  == 273475 (Add support for AVX instructions)
+299804  == 273475 (Add support for AVX instructions)
+299805  == 273475 (Add support for AVX instructions)
+300140  ARM - Missing (T1) SMMUL
+300195  == 296318 (ELF Debug info improvements (more than one rx/rw mapping))
+300389  Assertion `are_valid_hwcaps(VexArchAMD64, [..])' failed.
+300414  FCOM and FCOMP unimplemented for amd64 guest
+301204  infinite loop in canonicaliseSymtab with ifunc symbol
+301229  == 203877 (increase to 16Mb maximum allowed alignment for memalign etc)
+301265  add x86 support to Android build 
+301984  configure script doesn't detect certain versions of clang
+302205  Fix compiler warnings for POWER VEX code and POWER test cases
+302287  Unhandled movbe instruction on Atom processors
+302370  PPC: fnmadd, fnmsub, fnmadds, fnmsubs insns always negate the result
+302536  Fix for the POWER Valgrind regression test: memcheck-ISA2.0.
+302578  Unrecognized isntruction 0xc5 0x32 0xc2 0xca 0x09 vcmpngess
+302656  == 273475 (Add support for AVX instructions)
+302709  valgrind for ARM needs extra tls support for android emulator [..]
+302827  add wrapper for CDROM_GET_CAPABILITY
+302901  Valgrind crashes with dwz optimized debuginfo
+302918  Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
+303116  Add support for the POWER instruction popcntb
+303127  Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.
+303250  Assertion `instrs_in->arr_used <= 10000' failed w/ OpenSSL code
+303466  == 273475 (Add support for AVX instructions)
+303624  segmentation fault on Android 4.1 (e.g. on Galaxy Nexus OMAP) 
+303963  strstr() function produces wrong results under valgrind callgrind
+304054  CALL_FN_xx macros need to enforce stack alignment
+304561  tee system call not supported
+715750  (MacOSX): Incorrect invalid-address errors near 0xFFFFxxxx (mozbug#)
+n-i-bz  Add missing gdbserver xml files for shadow registers for ppc32
+n-i-bz  Bypass gcc4.4/4.5 code gen bugs causing out of memory or asserts
+n-i-bz  Fix assert in gdbserver for watchpoints watching the same address
+n-i-bz  Fix false positive in sys_clone on amd64 when optional args [..]
+n-i-bz  s390x: Shadow registers can now be examined using vgdb
+
+(3.8.0-TEST3:  9 August 2012, vex r2465, valgrind r12865)
+(3.8.0:       10 August 2012, vex r2465, valgrind r12866)
+
+
+
+Release 3.7.0 (5 November 2011)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.7.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.
 
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, ARM/Android, X86/Darwin and AMD64/Darwin.
+Support for recent distros and toolchain components (glibc 2.14, gcc
+4.6, MacOSX 10.7) has been added.
 
+* ================== PLATFORM CHANGES =================
 
-Version 1.9.5 (7 April 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Support for IBM z/Architecture (s390x) running Linux.  Valgrind can
+  analyse 64-bit programs running on z/Architecture.  Most user space
+  instructions up to and including z10 are supported.  Valgrind has
+  been tested extensively on z9, z10, and z196 machines running SLES
+  10/11, RedHat 5/6m, and Fedora. The Memcheck and Massif tools are
+  known to work well. Callgrind, Helgrind, and DRD work reasonably
+  well on z9 and later models. See README.s390 for more details.
 
-It occurs to me that it would be helpful for valgrind users to record
-in the source distribution the changes in each release.  So I now
-attempt to mend my errant ways :-)  Changes in this and future releases
-will be documented in the NEWS file in the source distribution.
-
-Major changes in 1.9.5:
-
-- (Critical bug fix): Fix a bug in the FPU simulation.  This was
-  causing some floating point conditional tests not to work right.
-  Several people reported this.  If you had floating point code which
-  didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
-
-- Partial support for Red Hat 9.  RH9 uses the new Native Posix 
-  Threads Library (NPTL), instead of the older LinuxThreads.  
-  This potentially causes problems with V which will take some
-  time to correct.  In the meantime we have partially worked around
-  this, and so 1.9.5 works on RH9.  Threaded programs still work,
-  but they may deadlock, because some system calls (accept, read,
-  write, etc) which should be nonblocking, in fact do block.  This
-  is a known bug which we are looking into.
-
-  If you can, your best bet (unfortunately) is to avoid using 
-  1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
-  If your glibc is 2.3.1 or earlier, you're almost certainly OK.
-
-Minor changes in 1.9.5:
-
-- Added some #errors to valgrind.h to ensure people don't include
-  it accidentally in their sources.  This is a change from 1.0.X
-  which was never properly documented.  The right thing to include
-  is now memcheck.h.  Some people reported problems and strange
-  behaviour when (incorrectly) including valgrind.h in code with 
-  1.9.1 -- 1.9.4.  This is no longer possible.
-
-- Add some __extension__ bits and pieces so that gcc configured
-  for valgrind-checking compiles even with -Werror.  If you
-  don't understand this, ignore it.  Of interest to gcc developers
-  only.
-
-- Removed a pointless check which caused problems interworking 
-  with Clearcase.  V would complain about shared objects whose
-  names did not end ".so", and refuse to run.  This is now fixed.
-  In fact it was fixed in 1.9.4 but not documented.
-
-- Fixed a bug causing an assertion failure of "waiters == 1"
-  somewhere in vg_scheduler.c, when running large threaded apps,
-  notably MySQL.
-
-- Add support for the munlock system call (124).
-
-Some comments about future releases:
-
-1.9.5 is, we hope, the most stable Valgrind so far.  It pretty much
-supersedes the 1.0.X branch.  If you are a valgrind packager, please
-consider making 1.9.5 available to your users.  You can regard the
-1.0.X branch as obsolete: 1.9.5 is stable and vastly superior.  There
-are no plans at all for further releases of the 1.0.X branch.
-
-If you want a leading-edge valgrind, consider building the cvs head
-(from SourceForge), or getting a snapshot of it.  Current cool stuff
-going in includes MMX support (done); SSE/SSE2 support (in progress),
-a significant (10-20%) performance improvement (done), and the usual
-large collection of minor changes.  Hopefully we will be able to
-improve our NPTL support, but no promises.
+* Preliminary support for MacOSX 10.7 and XCode 4.  Both 32- and
+  64-bit processes are supported.  Some complex threaded applications
+  (Firefox) are observed to hang when run as 32 bit applications,
+  whereas 64-bit versions run OK.  The cause is unknown.  Memcheck
+  will likely report some false errors.  In general, expect some rough
+  spots.  This release also supports MacOSX 10.6, but drops support
+  for 10.5.
+
+* Preliminary support for Android (on ARM).  Valgrind can now run
+  large applications (eg, Firefox) on (eg) a Samsung Nexus S.  See
+  README.android for more details, plus instructions on how to get
+  started.
+
+* Support for the IBM Power ISA 2.06 (Power7 instructions)
+
+* General correctness and performance improvements for ARM/Linux, and,
+  by extension, ARM/Android.
+
+* Further solidification of support for SSE 4.2 in 64-bit mode.  AVX
+  instruction set support is under development but is not available in
+  this release.
+
+* Support for AIX5 has been removed.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck: some incremental changes:
+
+  - reduction of memory use in some circumstances
+
+  - improved handling of freed memory, which in some circumstances 
+    can cause detection of use-after-free that would previously have
+    been missed
+
+  - fix of a longstanding bug that could cause false negatives (missed
+    errors) in programs doing vector saturated narrowing instructions.
+
+* Helgrind: performance improvements and major memory use reductions,
+  particularly for large, long running applications which perform many
+  synchronisation (lock, unlock, etc) events.  Plus many smaller
+  changes:
+
+  - display of locksets for both threads involved in a race
+
+  - general improvements in formatting/clarity of error messages
+
+  - addition of facilities and documentation regarding annotation
+    of thread safe reference counted C++ classes
+
+  - new flag --check-stack-refs=no|yes [yes], to disable race checking
+    on thread stacks (a performance hack)
+
+  - new flag --free-is-write=no|yes [no], to enable detection of races
+    where one thread accesses heap memory but another one frees it,
+    without any coordinating synchronisation event
+
+* DRD: enabled XML output; added support for delayed thread deletion
+  in order to detect races that occur close to the end of a thread
+  (--join-list-vol); fixed a memory leak triggered by repeated client
+  memory allocatation and deallocation; improved Darwin support.
+
+* exp-ptrcheck: this tool has been renamed to exp-sgcheck
+
+* exp-sgcheck: this tool has been reduced in scope so as to improve
+  performance and remove checking that Memcheck does better.
+  Specifically, the ability to check for overruns for stack and global
+  arrays is unchanged, but the ability to check for overruns of heap
+  blocks has been removed.  The tool has accordingly been renamed to
+  exp-sgcheck ("Stack and Global Array Checking").
+
+* ==================== OTHER CHANGES ====================
+
+* GDB server: Valgrind now has an embedded GDB server.  That means it
+  is possible to control a Valgrind run from GDB, doing all the usual
+  things that GDB can do (single stepping, breakpoints, examining
+  data, etc).  Tool-specific functionality is also available.  For
+  example, it is possible to query the definedness state of variables
+  or memory from within GDB when running Memcheck; arbitrarily large
+  memory watchpoints are supported, etc.  To use the GDB server, start
+  Valgrind with the flag --vgdb-error=0 and follow the on-screen
+  instructions.
+
+* Improved support for unfriendly self-modifying code: a new option
+  --smc-check=all-non-file is available.  This adds the relevant
+  consistency checks only to code that originates in non-file-backed
+  mappings.  In effect this confines the consistency checking only to
+  code that is or might be JIT generated, and avoids checks on code
+  that must have been compiled ahead of time.  This significantly
+  improves performance on applications that generate code at run time.
+
+* It is now possible to build a working Valgrind using Clang-2.9 on
+  Linux.
+
+* new client requests VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.
+  These enable and disable error reporting on a per-thread, and
+  nestable, basis.  This is useful for hiding errors in particularly
+  troublesome pieces of code.  The MPI wrapper library (libmpiwrap.c)
+  now uses this facility.
+
+* Added the --mod-funcname option to cg_diff.
+
+* ==================== FIXED BUGS ====================
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+mailing the developers (or mailing lists) directly -- bugs that are
+not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+ 79311  malloc silly arg warning does not give stack trace
+210935  port valgrind.h (not valgrind) to win32 to support client requests
+214223  valgrind SIGSEGV on startup gcc 4.4.1 ppc32 (G4) Ubuntu 9.10
+243404  Port to zSeries
+243935  Helgrind: incorrect handling of ANNOTATE_HAPPENS_BEFORE()/AFTER()
+247223  non-x86: Suppress warning: 'regparm' attribute directive ignored
+250101  huge "free" memory usage due to m_mallocfree.c fragmentation
+253206  Some fixes for the faultstatus testcase
+255223  capget testcase fails when running as root
+256703  xlc_dbl_u32.c testcase broken
+256726  Helgrind tests have broken inline asm 
+259977  == 214223 (Valgrind segfaults doing __builtin_longjmp)
+264800  testcase compile failure on zseries
+265762  make public VEX headers compilable by G++ 3.x
+265771  assertion in jumps.c (r11523) fails with glibc-2.3
+266753  configure script does not give the user the option to not use QtCore
+266931  gen_insn_test.pl is broken
+266961  ld-linux.so.2 i?86-linux strlen issues
+266990  setns instruction causes false positive
+267020  Make directory for temporary files configurable at run-time.
+267342  == 267997 (segmentation fault on Mac OS 10.6)
+267383  Assertion 'vgPlain_strlen(dir) + vgPlain_strlen(file) + 1 < 256' failed
+267413  Assertion 'DRD_(g_threadinfo)[tid].synchr_nesting >= 1' failed.
+267488  regtest: darwin support for 64-bit build
+267552  SIGSEGV (misaligned_stack_error) with DRD, but not with other tools
+267630  Add support for IBM Power ISA 2.06 -- stage 1
+267769  == 267997 (Darwin: memcheck triggers segmentation fault)
+267819  Add client request for informing the core about reallocation
+267925  laog data structure quadratic for a single sequence of lock
+267968  drd: (vgDrd_thread_set_joinable): Assertion '0 <= (int)tid ..' failed
+267997  MacOSX: 64-bit V segfaults on launch when built with Xcode 4.0.1
+268513  missed optimizations in fold_Expr
+268619  s390x: fpr - gpr transfer facility 
+268620  s390x: reconsider "long displacement" requirement 
+268621  s390x: improve IR generation for XC
+268715  s390x: FLOGR is not universally available
+268792  == 267997 (valgrind seg faults on startup when compiled with Xcode 4)
+268930  s390x: MHY is not universally available
+269078  arm->IR: unhandled instruction SUB (SP minus immediate/register) 
+269079  Support ptrace system call on ARM
+269144  missing "Bad option" error message
+269209  conditional load and store facility (z196)
+269354  Shift by zero on x86 can incorrectly clobber CC_NDEP
+269641  == 267997 (valgrind segfaults immediately (segmentation fault))
+269736  s390x: minor code generation tweaks
+269778  == 272986 (valgrind.h: swap roles of VALGRIND_DO_CLIENT_REQUEST() ..)
+269863  s390x: remove unused function parameters
+269864  s390x: tweak s390_emit_load_cc 
+269884  == 250101 (overhead for huge blocks exhausts space too soon)
+270082  s390x: Make sure to point the PSW address to the next address on SIGILL
+270115  s390x: rewrite some testcases
+270309  == 267997 (valgrind crash on startup)
+270320  add support for Linux FIOQSIZE ioctl() call
+270326  segfault while trying to sanitize the environment passed to execle
+270794  IBM POWER7 support patch causes regression in none/tests
+270851  IBM POWER7 fcfidus instruction causes memcheck to fail
+270856  IBM POWER7 xsnmaddadp instruction causes memcheck to fail on 32bit app 
+270925  hyper-optimized strspn() in /lib64/libc-2.13.so needs fix
+270959  s390x: invalid use of R0 as base register
+271042  VSX configure check fails when it should not 
+271043  Valgrind build fails with assembler error on ppc64 with binutils 2.21 
+271259  s390x: fix code confusion 
+271337  == 267997 (Valgrind segfaults on MacOS X)
+271385  s390x: Implement Ist_MBE 
+271501  s390x: misc cleanups 
+271504  s390x: promote likely and unlikely 
+271579  ppc: using wrong enum type 
+271615  unhandled instruction "popcnt" (arch=amd10h) 
+271730  Fix bug when checking ioctls: duplicate check 
+271776  s390x: provide STFLE instruction support 
+271779  s390x: provide clock instructions like STCK 
+271799  Darwin: ioctls without an arg report a memory error 
+271820  arm: fix type confusion 
+271917  pthread_cond_timedwait failure leads to not-locked false positive 
+272067  s390x: fix DISP20 macro 
+272615  A typo in debug output in mc_leakcheck.c
+272661  callgrind_annotate chokes when run from paths containing regex chars
+272893  amd64->IR: 0x66 0xF 0x38 0x2B 0xC1 0x66 0xF 0x7F == (closed as dup)
+272955  Unhandled syscall error for pwrite64 on ppc64 arch 
+272967  make documentation build-system more robust 
+272986  Fix gcc-4.6 warnings with valgrind.h
+273318  amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 (missing PCMPxSTRx case)
+273318  unhandled PCMPxSTRx case: vex amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 
+273431  valgrind segfaults in evalCfiExpr (debuginfo.c:2039)
+273465  Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && ...'
+273536  Build error: multiple definition of `vgDrd_pthread_cond_initializer'
+273640  ppc64-linux: unhandled syscalls setresuid(164) and setresgid(169)
+273729  == 283000 (Illegal opcode for SSE2 "roundsd" instruction)
+273778  exp-ptrcheck: unhandled sysno == 259
+274089  exp-ptrcheck: unhandled sysno == 208
+274378  s390x: Various dispatcher tweaks
+274447  WARNING: unhandled syscall: 340
+274776  amd64->IR: 0x66 0xF 0x38 0x2B 0xC5 0x66
+274784  == 267997 (valgrind ls -l results in Segmentation Fault)
+274926  valgrind does not build against linux-3
+275148  configure FAIL with glibc-2.14
+275151  Fedora 15 / glibc-2.14 'make regtest' FAIL
+275168  Make Valgrind work for MacOSX 10.7 Lion
+275212  == 275284 (lots of false positives from __memcpy_ssse3_back et al)
+275278  valgrind does not build on Linux kernel 3.0.* due to silly
+275284  Valgrind memcpy/memmove redirection stopped working in glibc 2.14/x86_64
+275308  Fix implementation for ppc64 fres instruc
+275339  s390x: fix testcase compile warnings
+275517  s390x: Provide support for CKSM instruction
+275710  s390x: get rid of redundant address mode calculation
+275815  == 247894 (Valgrind doesn't know about Linux readahead(2) syscall)
+275852  == 250101 (valgrind uses all swap space and is killed)
+276784  Add support for IBM Power ISA 2.06 -- stage 3
+276987  gdbsrv: fix tests following recent commits
+277045  Valgrind crashes with  unhandled DW_OP_ opcode 0x2a
+277199  The test_isa_2_06_part1.c in none/tests/ppc64 should be a symlink
+277471  Unhandled syscall: 340
+277610  valgrind crashes in VG_(lseek)(core_fd, phdrs[idx].p_offset, ...)
+277653  ARM: support Thumb2 PLD instruction
+277663  ARM: NEON float VMUL by scalar incorrect
+277689  ARM: tests for VSTn with register post-index are broken
+277694  ARM: BLX LR instruction broken in ARM mode
+277780  ARM: VMOV.F32 (immediate) instruction is broken
+278057  fuse filesystem syscall deadlocks
+278078  Unimplemented syscall 280 on ppc32
+278349  F_GETPIPE_SZ and  F_SETPIPE_SZ Linux fcntl commands
+278454  VALGRIND_STACK_DEREGISTER has wrong output type
+278502  == 275284 (Valgrind confuses memcpy() and memmove())
+278892  gdbsrv: factorize gdb version handling, fix doc and typos
+279027  Support for MVCL and CLCL instruction
+279027  s390x: Provide support for CLCL and MVCL instructions
+279062  Remove a redundant check in the insn selector for ppc.
+279071  JDK creates PTEST with redundant REX.W prefix
+279212  gdbsrv: add monitor cmd v.info scheduler.
+279378  exp-ptrcheck: the 'impossible' happened on mkfifo call
+279698  memcheck discards valid-bits for packuswb
+279795  memcheck reports uninitialised values for mincore on amd64
+279994  Add support for IBM Power ISA 2.06 -- stage 3
+280083  mempolicy syscall check errors
+280290  vex amd64->IR: 0x66 0xF 0x38 0x28 0xC1 0x66 0xF 0x6F
+280710  s390x: config files for nightly builds
+280757  /tmp dir still used by valgrind even if TMPDIR is specified
+280965  Valgrind breaks fcntl locks when program does mmap
+281138  WARNING: unhandled syscall: 340
+281241  == 275168 (valgrind useless on Macos 10.7.1 Lion)
+281304  == 275168 (Darwin: dyld "cannot load inserted library")
+281305  == 275168 (unhandled syscall: unix:357 on Darwin 11.1)
+281468  s390x: handle do_clone and gcc clones in call traces
+281488  ARM: VFP register corruption
+281828  == 275284 (false memmove warning: "Source and destination overlap")
+281883  s390x: Fix system call wrapper for "clone".
+282105  generalise 'reclaimSuperBlock' to also reclaim splittable superblock
+282112  Unhandled instruction bytes: 0xDE 0xD9 0x9B 0xDF (fcompp)
+282238  SLES10: make check fails
+282979  strcasestr needs replacement with recent(>=2.12) glibc
+283000  vex amd64->IR: 0x66 0xF 0x3A 0xA 0xC0 0x9 0xF3 0xF
+283243  Regression in ppc64 memcheck tests
+283325  == 267997 (Darwin: V segfaults on startup when built with Xcode 4.0)
+283427  re-connect epoll_pwait syscall on ARM linux
+283600  gdbsrv: android: port vgdb.c
+283709  none/tests/faultstatus needs to account for page size
+284305  filter_gdb needs enhancement to work on ppc64
+284384  clang 3.1 -Wunused-value warnings in valgrind.h, memcheck.h
+284472  Thumb2 ROR.W encoding T2 not implemented
+284621  XML-escape process command line in XML output
+n-i-bz  cachegrind/callgrind: handle CPUID information for Core iX Intel CPUs
+        that have non-power-of-2 sizes (also AMDs)
+n-i-bz  don't be spooked by libraries mashed by elfhack
+n-i-bz  don't be spooked by libxul.so linked with gold
+n-i-bz  improved checking for VALGRIND_CHECK_MEM_IS_DEFINED
+
+(3.7.0-TEST1: 27  October 2011, vex r2228, valgrind r12245)
+(3.7.0.RC1:    1 November 2011, vex r2231, valgrind r12257)
+(3.7.0:        5 November 2011, vex r2231, valgrind r12258)
+
+
+
+Release 3.6.1 (16 February 2011)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.6.1 is a bug fix release.  It adds support for some SSE4
+instructions that were omitted in 3.6.0 due to lack of time.  Initial
+support for glibc-2.13 has been added.  A number of bugs causing
+crashing or assertion failures have been fixed.
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+mailing the developers (or mailing lists) directly -- bugs that are
+not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+188572  Valgrind on Mac should suppress setenv() mem leak
+194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 (proper FX{SAVE,RSTOR} support)
+210481  vex amd64->IR: Assertion `sz == 2 || sz == 4' failed (REX.W POPQ)
+246152  callgrind internal error after pthread_cancel on 32 Bit Linux
+250038  ppc64: Altivec LVSR and LVSL instructions fail their regtest
+254420  memory pool tracking broken 
+254957  Test code failing to compile due to changes in memcheck.h
+255009  helgrind/drd: crash on chmod with invalid parameter
+255130  readdwarf3.c parse_type_DIE confused by GNAT Ada types
+255355  helgrind/drd: crash on threaded programs doing fork
+255358  == 255355
+255418  (SSE4.x) rint call compiled with ICC
+255822  --gen-suppressions can create invalid files: "too many callers [...]"
+255888  closing valgrindoutput tag outputted to log-stream on error
+255963  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x9 0xDB 0x0 (ROUNDPD)
+255966  Slowness when using mempool annotations
+256387  vex x86->IR: 0xD4 0xA 0x2 0x7 (AAD and AAM)
+256600  super-optimized strcasecmp() false positive
+256669  vex amd64->IR: Unhandled LOOPNEL insn on amd64
+256968  (SSE4.x) vex amd64->IR: 0x66 0xF 0x38 0x10 0xD3 0x66 (BLENDVPx)
+257011  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0xE 0xFD 0xA0 (PBLENDW)
+257063  (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x8 0xC0 0x0 (ROUNDPS)
+257276  Missing case in memcheck --track-origins=yes
+258870  (SSE4.x) Add support for EXTRACTPS SSE 4.1 instruction
+261966  (SSE4.x) support for CRC32B and CRC32Q is lacking (also CRC32{W,L})
+262985  VEX regression in valgrind 3.6.0 in handling PowerPC VMX
+262995  (SSE4.x) crash when trying to valgrind gcc-snapshot (PCMPxSTRx $0)
+263099  callgrind_annotate counts Ir improperly [...]
+263877  undefined coprocessor instruction on ARMv7
+265964  configure FAIL with glibc-2.13
+n-i-bz  Fix compile error w/ icc-12.x in guest_arm_toIR.c
+n-i-bz  Docs: fix bogus descriptions for VALGRIND_CREATE_BLOCK et al
+n-i-bz  Massif: don't assert on shmat() with --pages-as-heap=yes
+n-i-bz  Bug fixes and major speedups for the exp-DHAT space profiler
+n-i-bz  DRD: disable --free-is-write due to implementation difficulties
+
+(3.6.1: 16 February 2011, vex r2103, valgrind r11561).
 
diff --git a/NEWS.older b/NEWS.older
new file mode 100644 (file)
index 0000000..6de0e84
--- /dev/null
@@ -0,0 +1,3107 @@
+Release 3.6.0 (21 October 2010)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.6.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, X86/Darwin and AMD64/Darwin.  Support for recent distros
+and toolchain components (glibc 2.12, gcc 4.5, OSX 10.6) has been added.
+
+                    -------------------------
+
+Here are some highlights.  Details are shown further down:
+
+* Support for ARM/Linux.
+
+* Support for recent Linux distros: Ubuntu 10.10 and Fedora 14.
+
+* Support for Mac OS X 10.6, both 32- and 64-bit executables.
+
+* Support for the SSE4.2 instruction set.
+
+* Enhancements to the Callgrind profiler, including the ability to
+  handle CPUs with three levels of cache.
+
+* A new experimental heap profiler, DHAT.
+
+* A huge number of bug fixes and small enhancements.
+
+                    -------------------------
+
+Here are details of the above changes, together with descriptions of
+many other changes, and a list of fixed bugs.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for ARM/Linux.  Valgrind now runs on ARMv7 capable CPUs
+  running Linux.  It is known to work on Ubuntu 10.04, Ubuntu 10.10,
+  and Maemo 5, so you can run Valgrind on your Nokia N900 if you want.
+
+  This requires a CPU capable of running the ARMv7-A instruction set
+  (Cortex A5, A8 and A9).  Valgrind provides fairly complete coverage
+  of the user space instruction set, including ARM and Thumb integer
+  code, VFPv3, NEON and V6 media instructions.  The Memcheck,
+  Cachegrind and Massif tools work properly; other tools work to
+  varying degrees.
+
+* Support for recent Linux distros (Ubuntu 10.10 and Fedora 14), along
+  with support for recent releases of the underlying toolchain
+  components, notably gcc-4.5 and glibc-2.12.
+
+* Support for Mac OS X 10.6, both 32- and 64-bit executables.  64-bit
+  support also works much better on OS X 10.5, and is as solid as
+  32-bit support now.
+
+* Support for the SSE4.2 instruction set.  SSE4.2 is supported in
+  64-bit mode.  In 32-bit mode, support is only available up to and
+  including SSSE3.  Some exceptions: SSE4.2 AES instructions are not
+  supported in 64-bit mode, and 32-bit mode does in fact support the
+  bare minimum SSE4 instructions to needed to run programs on Mac OS X
+  10.6 on 32-bit targets.
+
+* Support for IBM POWER6 cpus has been improved.  The Power ISA up to
+  and including version 2.05 is supported.
+
+* ==================== TOOL CHANGES ====================
+
+* 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.
+
+* DRD has 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 tracing of all memory allocations and
+  deallocations.
+
+* DRD has several new annotations.  Custom barrier implementations can
+  now be annotated, as well as benign races on static variables.
+
+* DRD's happens before / happens after annotations have been made more
+  powerful, so that they can now also be used to annotate e.g. a smart
+  pointer implementation.
+
+* Helgrind's annotation set has also been drastically improved, so as
+  to provide to users a general set of annotations to describe locks,
+  semaphores, barriers and condition variables.  Annotations to
+  describe thread-safe reference counted heap objects have also been
+  added.
+
+* Memcheck has a new command-line option, --show-possibly-lost, which
+  is enabled by default.  When disabled, the leak detector will not
+  show possibly-lost blocks.
+
+* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),
+  has been added.  DHAT keeps track of allocated heap blocks, and also
+  inspects every memory reference to see which block (if any) is being
+  accessed.  This gives a lot of insight into block lifetimes,
+  utilisation, turnover, liveness, and the location of hot and cold
+  fields.  You can use DHAT to do hot-field profiling.
+
+* ==================== OTHER CHANGES ====================
+
+* Improved support for unfriendly self-modifying code: the extra
+  overhead incurred by --smc-check=all has been reduced by
+  approximately a factor of 5 as compared with 3.5.0.
+
+* Ability to show directory names for source files in error messages.
+  This is combined with a flexible mechanism for specifying which
+  parts of the paths should be shown.  This is enabled by the new flag
+  --fullpath-after.
+
+* A new flag, --require-text-symbol, which will stop the run if a
+  specified symbol is not found it a given shared object when it is
+  loaded into the process.  This makes advanced working with function
+  intercepting and wrapping safer and more reliable.
+
+* Improved support for the Valkyrie GUI, version 2.0.0.  GUI output
+  and control of Valgrind is now available for the tools Memcheck and
+  Helgrind.  XML output from Valgrind is available for Memcheck,
+  Helgrind and exp-Ptrcheck.
+
+* More reliable stack unwinding on amd64-linux, particularly in the
+  presence of function wrappers, and with gcc-4.5 compiled code.
+
+* Modest scalability (performance improvements) for massive
+  long-running applications, particularly for those with huge amounts
+  of code.
+
+* 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.
+
+* A rare but serious error in the 64-bit x86 CPU simulation was fixed.
+  The 32-bit simulator was not affected.  This did not occur often,
+  but when it did would usually crash the program under test.
+  Bug 245925.
+
+* A large number of bugs were fixed.  These are shown below.
+
+* A number of bugs were investigated, and were candidates for fixing,
+  but are not fixed in 3.6.0, due to lack of developer time.  They may
+  get fixed in later releases.  They are:
+
+  194402  vex amd64->IR: 0x48 0xF 0xAE 0x4 0x24 0x49  (FXSAVE64)
+  212419  false positive "lock order violated" (A+B vs A) 
+  213685  Undefined value propagates past dependency breaking instruction
+  216837  Incorrect instrumentation of NSOperationQueue on Darwin 
+  237920  valgrind segfault on fork failure 
+  242137  support for code compiled by LLVM-2.8
+  242423  Another unknown Intel cache config value 
+  243232  Inconsistent Lock Orderings report with trylock 
+  243483  ppc: callgrind triggers VEX assertion failure 
+  243935  Helgrind: implementation of ANNOTATE_HAPPENS_BEFORE() is wrong
+  244677  Helgrind crash hg_main.c:616 (map_threads_lookup): Assertion
+          'thr' failed. 
+  246152  callgrind internal error after pthread_cancel on 32 Bit Linux 
+  249435  Analyzing wine programs with callgrind triggers a crash 
+  250038  ppc64: Altivec lvsr and lvsl instructions fail their regtest
+  250065  Handling large allocations 
+  250101  huge "free" memory usage due to m_mallocfree.c
+          "superblocks fragmentation"
+  251569  vex amd64->IR: 0xF 0x1 0xF9 0x8B 0x4C 0x24 (RDTSCP)
+  252091  Callgrind on ARM does not detect function returns correctly
+  252600  [PATCH] Allow lhs to be a pointer for shl/shr
+  254420  memory pool tracking broken
+  n-i-bz  support for adding symbols for JIT generated code
+
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+mailing the developers (or mailing lists) directly -- bugs that are
+not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+135264  dcbzl instruction missing
+142688  == 250799
+153699  Valgrind should report unaligned reads with movdqa
+180217  == 212335
+190429  Valgrind reports lost of errors in ld.so
+        with x86_64 2.9.90 glibc 
+197266  valgrind appears to choke on the xmms instruction
+        "roundsd" on x86_64 
+197988  Crash when demangling very large symbol names
+202315  unhandled syscall: 332 (inotify_init1)
+203256  Add page-level profiling to Massif
+205093  dsymutil=yes needs quotes, locking (partial fix)
+205241  Snow Leopard 10.6 support (partial fix)
+206600  Leak checker fails to upgrade indirect blocks when their
+        parent becomes reachable 
+210935  port valgrind.h (not valgrind) to win32 so apps run under
+        wine can make client requests
+211410  vex amd64->IR: 0x15 0xFF 0xFF 0x0 0x0 0x89
+        within Linux ip-stack checksum functions 
+212335  unhandled instruction bytes: 0xF3 0xF 0xBD 0xC0
+        (lzcnt %eax,%eax) 
+213685  Undefined value propagates past dependency breaking instruction
+        (partial fix)
+215914  Valgrind inserts bogus empty environment variable 
+217863  == 197988
+219538  adjtimex syscall wrapper wrong in readonly adjtime mode 
+222545  shmat fails under valgind on some arm targets 
+222560  ARM NEON support 
+230407  == 202315
+231076  == 202315
+232509  Docs build fails with formatting inside <title></title> elements 
+232793  == 202315
+235642  [PATCH] syswrap-linux.c: support evdev EVIOCG* ioctls 
+236546  vex x86->IR: 0x66 0xF 0x3A 0xA
+237202  vex amd64->IR: 0xF3 0xF 0xB8 0xC0 0x49 0x3B 
+237371  better support for VALGRIND_MALLOCLIKE_BLOCK 
+237485  symlink (syscall 57) is not supported on Mac OS 
+237723  sysno == 101 exp-ptrcheck: the 'impossible' happened:
+        unhandled syscall 
+238208  is_just_below_ESP doesn't take into account red-zone 
+238345  valgrind passes wrong $0 when executing a shell script 
+238679  mq_timedreceive syscall doesn't flag the reception buffer
+        as "defined"
+238696  fcntl command F_DUPFD_CLOEXEC not supported 
+238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 
+238713  unhandled instruction bytes: 0x66 0xF 0x29 0xC6 
+238745  3.5.0 Make fails on PPC Altivec opcodes, though configure
+        says "Altivec off"
+239992  vex amd64->IR: 0x48 0xF 0xC4 0xC1 0x0 0x48 
+240488  == 197988
+240639  == 212335
+241377  == 236546
+241903  == 202315
+241920  == 212335
+242606  unhandled syscall: setegid (in Ptrcheck)
+242814  Helgrind "Impossible has happened" during
+        QApplication::initInstance(); 
+243064  Valgrind attempting to read debug information from iso 
+243270  Make stack unwinding in Valgrind wrappers more reliable
+243884  exp-ptrcheck: the 'impossible happened: unhandled syscall 
+        sysno = 277 (mq_open)
+244009  exp-ptrcheck unknown syscalls in analyzing lighttpd
+244493  ARM VFP d16-d31 registers support 
+244670  add support for audit_session_self syscall on Mac OS 10.6
+244921  The xml report of helgrind tool is not well format
+244923  In the xml report file, the <preamble> not escape the 
+        xml char, eg '<','&','>'
+245535  print full path names in plain text reports 
+245925  x86-64 red zone handling problem 
+246258  Valgrind not catching integer underruns + new [] s
+246311  reg/reg cmpxchg doesn't work on amd64
+246549  unhandled syscall unix:277 while testing 32-bit Darwin app 
+246888  Improve Makefile.vex.am 
+247510  [OS X 10.6] Memcheck reports unaddressable bytes passed 
+        to [f]chmod_extended
+247526  IBM POWER6 (ISA 2.05) support is incomplete
+247561  Some leak testcases fails due to reachable addresses in
+        caller save regs
+247875  sizeofIRType to handle Ity_I128 
+247894  [PATCH] unhandled syscall sys_readahead 
+247980  Doesn't honor CFLAGS passed to configure 
+248373  darwin10.supp is empty in the trunk 
+248822  Linux FIBMAP ioctl has int parameter instead of long
+248893  [PATCH] make readdwarf.c big endianess safe to enable
+        unwinding on big endian systems
+249224  Syscall 336 not supported (SYS_proc_info) 
+249359  == 245535
+249775  Incorrect scheme for detecting NEON capabilities of host CPU
+249943  jni JVM init fails when using valgrind
+249991  Valgrind incorrectly declares AESKEYGENASSIST support
+        since VEX r2011
+249996  linux/arm: unhandled syscall: 181 (__NR_pwrite64)
+250799  frexp$fenv_access_off function generates SIGILL 
+250998  vex x86->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x2E 
+251251  support pclmulqdq insn 
+251362  valgrind: ARM: attach to debugger either fails or provokes
+        kernel oops 
+251674  Unhandled syscall 294
+251818  == 254550
+
+254257  Add support for debugfiles found by build-id
+254550  [PATCH] Implement DW_ATE_UTF (DWARF4)
+254646  Wrapped functions cause stack misalignment on OS X
+        (and possibly Linux)
+254556  ARM: valgrinding anything fails with SIGSEGV for 0xFFFF0FA0
+
+(3.6.0: 21 October 2010, vex r2068, valgrind r11471).
+
+
+
+Release 3.5.0 (19 August 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.5.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.  The main improvement is that Valgrind
+now works on Mac OS X.
+
+This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux
+and X86/Darwin.  Support for recent distros and toolchain components
+(glibc 2.10, gcc 4.5) has been added.
+
+                    -------------------------
+
+Here is a short summary of the changes.  Details are shown further
+down:
+
+* Support for Mac OS X (10.5.x).
+
+* Improvements and simplifications to Memcheck's leak checker.
+
+* Clarification and simplifications in various aspects of Valgrind's
+  text output.
+
+* XML output for Helgrind and Ptrcheck.
+
+* Performance and stability improvements for Helgrind and DRD.
+
+* Genuinely atomic support for x86/amd64/ppc atomic instructions.
+
+* A new experimental tool, BBV, useful for computer architecture
+  research.
+
+* Improved Wine support, including ability to read Windows PDB
+  debuginfo.
+
+                    -------------------------
+
+Here are details of the above changes, followed by descriptions of
+many other minor changes, and a list of fixed bugs.
+
+
+* Valgrind now runs on Mac OS X.  (Note that Mac OS X is sometimes
+  called "Darwin" because that is the name of the OS core, which is the
+  level that Valgrind works at.)
+
+  Supported systems:
+
+  - It requires OS 10.5.x (Leopard).  Porting to 10.4.x is not planned
+    because it would require work and 10.4 is only becoming less common.
+
+  - 32-bit programs on x86 and AMD64 (a.k.a x86-64) machines are supported
+    fairly well.  For 10.5.x, 32-bit programs are the default even on
+    64-bit machines, so it handles most current programs.
+    
+  - 64-bit programs on x86 and AMD64 (a.k.a x86-64) machines are not
+    officially supported, but simple programs at least will probably work.
+    However, start-up is slow.
+
+  - PowerPC machines are not supported.
+
+  Things that don't work:
+
+  - The Ptrcheck tool.
+
+  - Objective-C garbage collection.
+
+  - --db-attach=yes.
+
+  - If you have Rogue Amoeba's "Instant Hijack" program installed,
+    Valgrind will fail with a SIGTRAP at start-up.  See
+    https://bugs.kde.org/show_bug.cgi?id=193917 for details and a
+    simple work-around.
+
+  Usage notes:
+
+  - You will likely find --dsymutil=yes a useful option, as error
+    messages may be imprecise without it.
+
+  - Mac OS X support is new and therefore will be less robust than the
+    Linux support.  Please report any bugs you find.
+
+  - Threaded programs may run more slowly than on Linux.
+
+  Many thanks to Greg Parker for developing this port over several years.
+
+
+* Memcheck's leak checker has been improved.  
+
+  - The results for --leak-check=summary now match the summary results
+    for --leak-check=full.  Previously they could differ because
+    --leak-check=summary counted "indirectly lost" blocks and
+    "suppressed" blocks as "definitely lost".
+
+  - Blocks that are only reachable via at least one interior-pointer,
+    but are directly pointed to by a start-pointer, were previously
+    marked as "still reachable".  They are now correctly marked as
+    "possibly lost".
+
+  - The default value for the --leak-resolution option has been
+    changed from "low" to "high".  In general, this means that more
+    leak reports will be produced, but each leak report will describe
+    fewer leaked blocks.
+
+  - With --leak-check=full, "definitely lost" and "possibly lost"
+    leaks are now considered as proper errors, ie. they are counted
+    for the "ERROR SUMMARY" and affect the behaviour of
+    --error-exitcode.  These leaks are not counted as errors if
+    --leak-check=summary is specified, however.
+
+  - Documentation for the leak checker has been improved.
+
+
+* Various aspects of Valgrind's text output have changed.
+
+  - Valgrind's start-up message has changed.  It is shorter but also
+    includes the command being run, which makes it easier to use
+    --trace-children=yes.  An example:
+
+  - Valgrind's shut-down messages have also changed.  This is most
+    noticeable with Memcheck, where the leak summary now occurs before
+    the error summary.  This change was necessary to allow leaks to be
+    counted as proper errors (see the description of the leak checker
+    changes above for more details).  This was also necessary to fix a
+    longstanding bug in which uses of suppressions against leaks were
+    not "counted", leading to difficulties in maintaining suppression
+    files (see https://bugs.kde.org/show_bug.cgi?id=186790).
+
+  - Behavior of -v has changed.  In previous versions, -v printed out
+    a mixture of marginally-user-useful information, and tool/core
+    statistics.  The statistics printing has now been moved to its own
+    flag, --stats=yes.  This means -v is less verbose and more likely
+    to convey useful end-user information.
+
+  - The format of some (non-XML) stack trace entries has changed a
+    little.  Previously there were six possible forms:
+
+      0x80483BF: really (a.c:20)
+      0x80483BF: really (in /foo/a.out)
+      0x80483BF: really
+      0x80483BF: (within /foo/a.out)
+      0x80483BF: ??? (a.c:20)
+      0x80483BF: ???
+
+    The third and fourth of these forms have been made more consistent
+    with the others.  The six possible forms are now:
+  
+      0x80483BF: really (a.c:20)
+      0x80483BF: really (in /foo/a.out)
+      0x80483BF: really (in ???)
+      0x80483BF: ??? (in /foo/a.out)
+      0x80483BF: ??? (a.c:20)
+      0x80483BF: ???
+
+    Stack traces produced when --xml=yes is specified are different
+    and unchanged.
+
+
+* Helgrind and Ptrcheck now support XML output, so they can be used
+  from GUI tools.  Also, the XML output mechanism has been
+  overhauled.
+
+  - The XML format has been overhauled and generalised, so it is more
+    suitable for error reporting tools in general.  The Memcheck
+    specific aspects of it have been removed.  The new format, which
+    is an evolution of the old format, is described in
+    docs/internals/xml-output-protocol4.txt.
+
+  - Memcheck has been updated to use the new format.
+
+  - Helgrind and Ptrcheck are now able to emit output in this format.
+
+  - The XML output mechanism has been overhauled.  XML is now output
+    to its own file descriptor, which means that:
+
+    * Valgrind can output text and XML independently.
+
+    * The longstanding problem of XML output being corrupted by 
+      unexpected un-tagged text messages  is solved.
+
+    As before, the destination for text output is specified using
+    --log-file=, --log-fd= or --log-socket=.
+
+    As before, XML output for a tool is enabled using --xml=yes.
+
+    Because there's a new XML output channel, the XML output
+    destination is now specified by --xml-file=, --xml-fd= or
+    --xml-socket=.
+
+    Initial feedback has shown this causes some confusion.  To
+    clarify, the two envisaged usage scenarios are:
+
+    (1) Normal text output.  In this case, do not specify --xml=yes
+        nor any of --xml-file=, --xml-fd= or --xml-socket=.
+
+    (2) XML output.  In this case, specify --xml=yes, and one of
+        --xml-file=, --xml-fd= or --xml-socket= to select the XML
+        destination, one of --log-file=, --log-fd= or --log-socket=
+        to select the destination for any remaining text messages,
+        and, importantly, -q.
+
+        -q makes Valgrind completely silent on the text channel,
+        except in the case of critical failures, such as Valgrind
+        itself segfaulting, or failing to read debugging information.
+        Hence, in this scenario, it suffices to check whether or not
+        any output appeared on the text channel.  If yes, then it is
+        likely to be a critical error which should be brought to the
+        attention of the user.  If no (the text channel produced no
+        output) then it can be assumed that the run was successful.
+
+        This allows GUIs to make the critical distinction they need to
+        make (did the run fail or not?) without having to search or
+        filter the text output channel in any way.
+
+    It is also recommended to use --child-silent-after-fork=yes in
+    scenario (2).
+
+
+* Improvements and changes in Helgrind:
+
+  - XML output, as described above
+
+  - Checks for consistent association between pthread condition
+    variables and their associated mutexes are now performed.
+
+  - pthread_spinlock functions are supported.
+
+  - Modest performance improvements.
+
+  - Initial (skeletal) support for describing the behaviour of
+    non-POSIX synchronisation objects through ThreadSanitizer
+    compatible ANNOTATE_* macros.
+
+  - More controllable tradeoffs between performance and the level of
+    detail of "previous" accesses in a race.  There are now three
+    settings:
+
+    * --history-level=full.  This is the default, and was also the
+      default in 3.4.x.  It shows both stacks involved in a race, but
+      requires a lot of memory and can be very slow in programs that
+      do many inter-thread synchronisation events.
+
+    * --history-level=none.  This only shows the later stack involved
+      in a race.  This can be much faster than --history-level=full,
+      but makes it much more difficult to find the other access
+      involved in the race.
+
+    The new intermediate setting is
+
+    * --history-level=approx
+
+      For the earlier (other) access, two stacks are presented.  The
+      earlier access is guaranteed to be somewhere in between the two
+      program points denoted by those stacks.  This is not as useful
+      as showing the exact stack for the previous access (as per
+      --history-level=full), but it is better than nothing, and it's
+      almost as fast as --history-level=none.
+
+
+* New features and improvements in DRD:
+
+  - The error messages printed by DRD are now easier to interpret.
+    Instead of using two different numbers to identify each thread
+    (Valgrind thread ID and DRD thread ID), DRD does now identify
+    threads via a single number (the DRD thread ID).  Furthermore
+    "first observed at" information is now printed for all error
+    messages related to synchronization objects.
+
+  - Added support for named semaphores (sem_open() and sem_close()).
+
+  - Race conditions between pthread_barrier_wait() and
+    pthread_barrier_destroy() calls are now reported.
+
+  - Added support for custom allocators through the macros
+    VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
+    in <valgrind/valgrind.h>). An alternative for these two macros is
+    the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
+    <valgrind/drd.h>).
+
+  - Added support for annotating non-POSIX synchronization objects
+    through several new ANNOTATE_*() macros.
+
+  - OpenMP: added support for the OpenMP runtime (libgomp) included
+    with gcc versions 4.3.0 and 4.4.0.
+
+  - Faster operation.
+
+  - Added two new command-line options (--first-race-only and
+    --segment-merging-interval).
+
+
+* Genuinely atomic support for x86/amd64/ppc atomic instructions
+
+  Valgrind will now preserve (memory-access) atomicity of LOCK-
+  prefixed x86/amd64 instructions, and any others implying a global
+  bus lock.  Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
+
+  This means that Valgrinded processes will "play nicely" in
+  situations where communication with other processes, or the kernel,
+  is done through shared memory and coordinated with such atomic
+  instructions.  Prior to this change, such arrangements usually
+  resulted in hangs, races or other synchronisation failures, because
+  Valgrind did not honour atomicity of such instructions.
+
+
+* A new experimental tool, BBV, has been added.  BBV generates basic
+  block vectors for use with the SimPoint analysis tool, which allows
+  a program's overall behaviour to be approximated by running only a
+  fraction of it.  This is useful for computer architecture
+  researchers.  You can run BBV by specifying --tool=exp-bbv (the
+  "exp-" prefix is short for "experimental").  BBV was written by
+  Vince Weaver.
+
+
+* Modestly improved support for running Windows applications under
+  Wine.  In particular, initial support for reading Windows .PDB debug
+  information has been added.
+
+
+* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been
+  added.  It is similar to VALGRIND_COUNT_LEAKS but counts blocks
+  instead of bytes.
+
+
+* The Valgrind client requests VALGRIND_PRINTF and
+  VALGRIND_PRINTF_BACKTRACE have been changed slightly.  Previously,
+  the string was always printed immediately on its own line.  Now, the
+  string will be added to a buffer but not printed until a newline is
+  encountered, or other Valgrind output is printed (note that for
+  VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered
+  "other Valgrind output").  This allows you to use multiple
+  VALGRIND_PRINTF calls to build up a single output line, and also to
+  print multiple output lines with a single request (by embedding
+  multiple newlines in the string).
+
+
+* The graphs drawn by Massif's ms_print program have changed slightly:
+
+  - The half-height chars '.' and ',' are no longer drawn, because
+    they are confusing.  The --y option can be used if the default
+    y-resolution is not high enough.
+
+  - Horizontal lines are now drawn after the top of a snapshot if
+    there is a gap until the next snapshot.  This makes it clear that
+    the memory usage has not dropped to zero between snapshots.
+
+
+* Something that happened in 3.4.0, but wasn't clearly announced: the
+  option --read-var-info=yes can be used by some tools (Memcheck,
+  Helgrind and DRD).  When enabled, it causes Valgrind to read DWARF3
+  variable type and location information.  This makes those tools
+  start up more slowly and increases memory consumption, but
+  descriptions of data addresses in error messages become more
+  detailed.
+
+
+* exp-Omega, an experimental instantaneous leak-detecting tool, was
+  disabled in 3.4.0 due to a lack of interest and maintenance,
+  although the source code was still in the distribution.  The source
+  code has now been removed from the distribution.  For anyone
+  interested, the removal occurred in SVN revision r10247.
+
+
+* Some changes have been made to the build system.
+
+  - VEX/ is now integrated properly into the build system.  This means
+    that dependency tracking within VEX/ now works properly, "make
+    install" will work without requiring "make" before it, and
+    parallel builds (ie. 'make -j') now work (previously a
+    .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'
+    was effectively ignored).
+
+  - The --with-vex configure option has been removed.  It was of
+    little use and removing it simplified the build system.
+
+  - The location of some install files has changed.  This should not
+    affect most users.  Those who might be affected:
+
+    * For people who use Valgrind with MPI programs, the installed
+      libmpiwrap.so library has moved from
+      $(INSTALL)/<platform>/libmpiwrap.so to
+      $(INSTALL)/libmpiwrap-<platform>.so.
+
+    * For people who distribute standalone Valgrind tools, the
+      installed libraries such as $(INSTALL)/<platform>/libcoregrind.a
+      have moved to $(INSTALL)/libcoregrind-<platform>.a.
+
+    These changes simplify the build system.
+
+  - Previously, all the distributed suppression (*.supp) files were
+    installed.  Now, only default.supp is installed.  This should not
+    affect users as the other installed suppression files were not
+    read; the fact that they were installed was a mistake.
+
+
+* KNOWN LIMITATIONS:
+
+  - Memcheck is unusable with the Intel compiler suite version 11.1,
+    when it generates code for SSE2-and-above capable targets.  This
+    is because of icc's use of highly optimised inlined strlen
+    implementations.  It causes Memcheck to report huge numbers of
+    false errors even in simple programs.  Helgrind and DRD may also
+    have problems.
+
+    Versions 11.0 and earlier may be OK, but this has not been
+    properly tested.
+
+
+The following bugs have been fixed or resolved.  Note that "n-i-bz"
+stands for "not in bugzilla" -- that is, a bug that was reported to us
+but never got a bugzilla entry.  We encourage you to file bugs in
+bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+mailing the developers (or mailing lists) directly -- bugs that are
+not entered into bugzilla tend to get forgotten about or ignored.
+
+To see details of a given bug, visit
+https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+where XXXXXX is the bug number as listed below.
+
+84303   How about a LockCheck tool? 
+91633   dereference of null ptr in vgPlain_st_basetype 
+97452   Valgrind doesn't report any pthreads problems 
+100628  leak-check gets assertion failure when using 
+        VALGRIND_MALLOCLIKE_BLOCK on malloc()ed memory 
+108528  NPTL pthread cleanup handlers not called 
+110126  Valgrind 2.4.1 configure.in tramples CFLAGS 
+110128  mallinfo is not implemented... 
+110770  VEX: Generated files not always updated when making valgrind
+111102  Memcheck: problems with large (memory footprint) applications 
+115673  Vex's decoder should never assert 
+117564  False positive: Syscall param clone(child_tidptr) contains
+        uninitialised byte(s) 
+119404  executing ssh from inside valgrind fails 
+133679  Callgrind does not write path names to sources with dwarf debug
+        info
+135847  configure.in problem with non gnu compilers (and possible fix) 
+136154  threads.c:273 (vgCallgrind_post_signal): Assertion
+        '*(vgCallgrind_current_fn_stack.top) == 0' failed. 
+136230  memcheck reports "possibly lost", should be "still reachable" 
+137073  NULL arg to MALLOCLIKE_BLOCK causes crash 
+137904  Valgrind reports a memory leak when using POSIX threads,
+        while it shouldn't 
+139076  valgrind VT_GETSTATE error 
+142228  complaint of elf_dynamic_do_rela in trivial usage 
+145347  spurious warning with USBDEVFS_REAPURB 
+148441  (wine) can't find memory leak in Wine, win32 binary 
+        executable file.
+148742  Leak-check fails assert on exit 
+149878  add (proper) check for calloc integer overflow 
+150606  Call graph is broken when using callgrind control 
+152393  leak errors produce an exit code of 0. I need some way to 
+        cause leak errors to result in a nonzero exit code. 
+157154  documentation (leak-resolution doc speaks about num-callers
+        def=4) + what is a loss record
+159501  incorrect handling of ALSA ioctls 
+162020  Valgrinding an empty/zero-byte file crashes valgrind 
+162482  ppc: Valgrind crashes while reading stabs information 
+162718  x86: avoid segment selector 0 in sys_set_thread_area() 
+163253  (wine) canonicaliseSymtab forgot some fields in DiSym 
+163560  VEX/test_main.c is missing from valgrind-3.3.1 
+164353  malloc_usable_size() doesn't return a usable size 
+165468  Inconsistent formatting in memcheck manual -- please fix 
+169505  main.c:286 (endOfInstr):
+        Assertion 'ii->cost_offset == *cost_offset' failed 
+177206  Generate default.supp during compile instead of configure
+177209  Configure valt_load_address based on arch+os 
+177305  eventfd / syscall 323 patch lost
+179731  Tests fail to build because of inlining of non-local asm labels
+181394  helgrind: libhb_core.c:3762 (msm_write): Assertion 
+        'ordxx == POrd_EQ || ordxx == POrd_LT' failed. 
+181594  Bogus warning for empty text segment 
+181707  dwarf doesn't require enumerations to have name 
+185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64 
+185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
+        Assertion '!already_present' failed.
+185359  exp-ptrcheck: unhandled syscall getresuid()
+185794  "WARNING: unhandled syscall: 285" (fallocate) on x86_64
+185816  Valgrind is unable to handle debug info for files with split
+        debug info that are prelinked afterwards 
+185980  [darwin] unhandled syscall: sem_open 
+186238  bbToIR_AMD64: disInstr miscalculated next %rip
+186507  exp-ptrcheck unhandled syscalls prctl, etc. 
+186790  Suppression pattern used for leaks are not reported 
+186796  Symbols with length>200 in suppression files are ignored 
+187048  drd: mutex PTHREAD_PROCESS_SHARED attribute missinterpretation
+187416  exp-ptrcheck: support for __NR_{setregid,setreuid,setresuid}
+188038  helgrind: hg_main.c:926: mk_SHVAL_fail: the 'impossible' happened
+188046  bashisms in the configure script
+188127  amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA
+188161  memcheck: --track-origins=yes asserts "mc_machine.c:672
+        (get_otrack_shadow_offset_wrk): the 'impossible' happened."
+188248  helgrind: pthread_cleanup_push, pthread_rwlock_unlock, 
+        assertion fail "!lock->heldBy" 
+188427  Add support for epoll_create1 (with patch) 
+188530  Support for SIOCGSTAMPNS
+188560  Include valgrind.spec in the tarball
+188572  Valgrind on Mac should suppress setenv() mem leak 
+189054  Valgrind fails to build because of duplicate non-local asm labels 
+189737  vex amd64->IR: unhandled instruction bytes: 0xAC
+189762  epoll_create syscall not handled (--tool=exp-ptrcheck)
+189763  drd assertion failure: s_threadinfo[tid].is_recording 
+190219  unhandled syscall: 328 (x86-linux)
+190391  dup of 181394; see above
+190429  Valgrind reports lots of errors in ld.so with x86_64 2.9.90 glibc 
+190820  No debug information on powerpc-linux
+191095  PATCH: Improve usbdevfs ioctl handling 
+191182  memcheck: VALGRIND_LEAK_CHECK quadratic when big nr of chunks
+        or big nr of errors
+191189  --xml=yes should obey --gen-suppressions=all 
+191192  syslog() needs a suppression on macosx 
+191271  DARWIN: WARNING: unhandled syscall: 33554697 a.k.a.: 265 
+191761  getrlimit on MacOSX 
+191992  multiple --fn-skip only works sometimes; dependent on order 
+192634  V. reports "aspacem sync_check_mapping_callback: 
+        segment mismatch" on Darwin
+192954  __extension__ missing on 2 client requests 
+194429  Crash at start-up with glibc-2.10.1 and linux-2.6.29 
+194474  "INSTALL" file has different build instructions than "README"
+194671  Unhandled syscall (sem_wait?) from mac valgrind 
+195069  memcheck: reports leak (memory still reachable) for 
+        printf("%d', x) 
+195169  drd: (vgDrd_barrier_post_wait):
+        Assertion 'r->sg[p->post_iteration]' failed. 
+195268  valgrind --log-file doesn't accept ~/...
+195838  VEX abort: LibVEX_N_SPILL_BYTES too small for CPUID boilerplate 
+195860  WARNING: unhandled syscall: unix:223 
+196528  need a error suppression for pthread_rwlock_init under os x? 
+197227  Support aio_* syscalls on Darwin
+197456  valgrind should reject --suppressions=(directory) 
+197512  DWARF2 CFI reader: unhandled CFI instruction 0:10 
+197591  unhandled syscall 27 (mincore) 
+197793  Merge DCAS branch to the trunk == 85756, 142103
+197794  Avoid duplicate filenames in Vex 
+197898  make check fails on current SVN 
+197901  make check fails also under exp-ptrcheck in current SVN 
+197929  Make --leak-resolution=high the default 
+197930  Reduce spacing between leak reports 
+197933  Print command line of client at start-up, and shorten preamble 
+197966  unhandled syscall 205 (x86-linux, --tool=exp-ptrcheck)
+198395  add BBV to the distribution as an experimental tool 
+198624  Missing syscalls on Darwin: 82, 167, 281, 347 
+198649  callgrind_annotate doesn't cumulate counters 
+199338  callgrind_annotate sorting/thresholds are broken for all but Ir 
+199977  Valgrind complains about an unrecognized instruction in the
+        atomic_incs test program
+200029  valgrind isn't able to read Fedora 12 debuginfo 
+200760  darwin unhandled syscall: unix:284 
+200827  DRD doesn't work on Mac OS X 
+200990  VG_(read_millisecond_timer)() does not work correctly 
+201016  Valgrind does not support pthread_kill() on Mac OS 
+201169  Document --read-var-info
+201323  Pre-3.5.0 performance sanity checking 
+201384  Review user manual for the 3.5.0 release 
+201585  mfpvr not implemented on ppc 
+201708  tests failing because x86 direction flag is left set 
+201757  Valgrind doesn't handle any recent sys_futex additions 
+204377  64-bit valgrind can not start a shell script
+        (with #!/path/to/shell) if the shell is a 32-bit executable
+n-i-bz  drd: fixed assertion failure triggered by mutex reinitialization.
+n-i-bz  drd: fixed a bug that caused incorrect messages to be printed
+        about memory allocation events with memory access tracing enabled
+n-i-bz  drd: fixed a memory leak triggered by vector clock deallocation
+
+(3.5.0: 19 Aug 2009, vex r1913, valgrind r10846).
+
+
+
+Release 3.4.1 (28 February 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.4.1 is a bug-fix release that fixes some regressions and assertion
+failures in debug info reading in 3.4.0, most notably incorrect stack
+traces on amd64-linux on older (glibc-2.3 based) systems. Various
+other debug info problems are also fixed.  A number of bugs in the
+exp-ptrcheck tool introduced in 3.4.0 have been fixed.
+
+In view of the fact that 3.4.0 contains user-visible regressions
+relative to 3.3.x, upgrading to 3.4.1 is recommended.  Packagers are
+encouraged to ship 3.4.1 in preference to 3.4.0.
+
+The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
+bugzilla" -- that is, a bug that was reported to us but never got a
+bugzilla entry.  We encourage you to file bugs in bugzilla
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly -- bugs that are not entered
+into bugzilla tend to get forgotten about or ignored.
+
+n-i-bz  Fix various bugs reading icc-11 generated debug info
+n-i-bz  Fix various bugs reading gcc-4.4 generated debug info
+n-i-bz  Preliminary support for glibc-2.10 / Fedora 11
+n-i-bz  Cachegrind and Callgrind: handle non-power-of-two cache sizes,
+        so as to support (eg) 24k Atom D1 and Core2 with 3/6/12MB L2.
+179618  exp-ptrcheck crashed / exit prematurely
+179624  helgrind: false positive races with pthread_create and
+        recv/open/close/read
+134207  pkg-config output contains @VG_PLATFORM@
+176926  floating point exception at valgrind startup with PPC 440EPX
+181594  Bogus warning for empty text segment
+173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant rex prefixes)
+181707  Dwarf3 doesn't require enumerations to have name
+185038  exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
+185050  exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
+        Assertion '!already_present' failed.
+185359  exp-ptrcheck unhandled syscall getresuid()
+
+(3.4.1.RC1:  24 Feb 2008, vex r1884, valgrind r9253).
+(3.4.1:      28 Feb 2008, vex r1884, valgrind r9293).
+
+
+
+Release 3.4.0 (2 January 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.4.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.  This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros
+(using gcc 4.4, glibc 2.8 and 2.9) has been added.
+
+3.4.0 brings some significant tool improvements.  Memcheck can now
+report the origin of uninitialised values, the thread checkers
+Helgrind and DRD are much improved, and we have a new experimental
+tool, exp-Ptrcheck, which is able to detect overruns of stack and
+global arrays.  In detail:
+
+* Memcheck is now able to track the origin of uninitialised values.
+  When it reports an uninitialised value error, it will try to show
+  the origin of the value, as either a heap or stack allocation.
+  Origin tracking is expensive and so is not enabled by default.  To
+  use it, specify --track-origins=yes.  Memcheck's speed will be
+  essentially halved, and memory usage will be significantly
+  increased.  Nevertheless it can drastically reduce the effort
+  required to identify the root cause of uninitialised value errors,
+  and so is often a programmer productivity win, despite running more
+  slowly.
+
+* A version (1.4.0) of the Valkyrie GUI, that works with Memcheck in
+  3.4.0, will be released shortly.
+
+* Helgrind's race detection algorithm has been completely redesigned
+  and reimplemented, to address usability and scalability concerns:
+
+  - The new algorithm has a lower false-error rate: it is much less
+    likely to report races that do not really exist.
+
+  - Helgrind will display full call stacks for both accesses involved
+    in a race.  This makes it easier to identify the root causes of
+    races.
+
+  - Limitations on the size of program that can run have been removed.
+
+  - Performance has been modestly improved, although that is very
+    workload-dependent.
+
+  - Direct support for Qt4 threading has been added.
+
+  - pthread_barriers are now directly supported.
+
+  - Helgrind works well on all supported Linux targets.
+
+* The DRD thread debugging tool has seen major improvements:
+
+  - Greatly improved performance and significantly reduced memory
+    usage.
+
+  - Support for several major threading libraries (Boost.Thread, Qt4,
+    glib, OpenMP) has been added.
+
+  - Support for atomic instructions, POSIX semaphores, barriers and
+    reader-writer locks has been added.
+
+  - Works now on PowerPC CPUs too.
+
+  - Added support for printing thread stack usage at thread exit time.
+
+  - Added support for debugging lock contention.
+
+  - Added a manual for Drd.
+
+* A new experimental tool, exp-Ptrcheck, has been added.  Ptrcheck
+  checks for misuses of pointers.  In that sense it is a bit like
+  Memcheck.  However, Ptrcheck can do things Memcheck can't: it can
+  detect overruns of stack and global arrays, it can detect
+  arbitrarily far out-of-bounds accesses to heap blocks, and it can
+  detect accesses heap blocks that have been freed a very long time
+  ago (millions of blocks in the past).
+
+  Ptrcheck currently works only on x86-linux and amd64-linux.  To use
+  it, use --tool=exp-ptrcheck.  A simple manual is provided, as part
+  of the main Valgrind documentation.  As this is an experimental
+  tool, we would be particularly interested in hearing about your
+  experiences with it.
+
+* exp-Omega, an experimental instantaneous leak-detecting tool, is no
+  longer built by default, although the code remains in the repository
+  and the tarball.  This is due to three factors: a perceived lack of
+  users, a lack of maintenance, and concerns that it may not be
+  possible to achieve reliable operation using the existing design.
+
+* As usual, support for the latest Linux distros and toolchain
+  components has been added.  It should work well on Fedora Core 10,
+  OpenSUSE 11.1 and Ubuntu 8.10.  gcc-4.4 (in its current pre-release
+  state) is supported, as is glibc-2.9.  The C++ demangler has been
+  updated so as to work well with C++ compiled by even the most recent
+  g++'s.
+
+* You can now use frame-level wildcards in suppressions.  This was a
+  frequently-requested enhancement.  A line "..." in a suppression now
+  matches zero or more frames.  This makes it easier to write
+  suppressions which are precise yet insensitive to changes in
+  inlining behaviour.
+
+* 3.4.0 adds support on x86/amd64 for the SSSE3 instruction set.
+
+* Very basic support for IBM Power6 has been added (64-bit processes only).
+
+* Valgrind is now cross-compilable.  For example, it is possible to
+  cross compile Valgrind on an x86/amd64-linux host, so that it runs
+  on a ppc32/64-linux target.
+
+* You can set the main thread's stack size at startup using the
+  new --main-stacksize= flag (subject of course to ulimit settings).
+  This is useful for running apps that need a lot of stack space.
+
+* The limitation that you can't use --trace-children=yes together
+  with --db-attach=yes has been removed.
+
+* The following bugs have been fixed.  Note that "n-i-bz" stands for
+  "not in bugzilla" -- that is, a bug that was reported to us but
+  never got a bugzilla entry.  We encourage you to file bugs in
+  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+  mailing the developers (or mailing lists) directly.
+
+  n-i-bz  Make return types for some client requests 64-bit clean
+  n-i-bz  glibc 2.9 support
+  n-i-bz  ignore unsafe .valgrindrc's (CVE-2008-4865)
+  n-i-bz  MPI_Init(0,0) is valid but libmpiwrap.c segfaults
+  n-i-bz  Building in an env without gdb gives bogus gdb attach
+  92456   Tracing the origin of uninitialised memory
+  106497  Valgrind does not demangle some C++ template symbols
+  162222  ==106497
+  151612  Suppression with "..." (frame-level wildcards in .supp files)
+  156404  Unable to start oocalc under memcheck on openSUSE 10.3 (64-bit)
+  159285  unhandled syscall:25 (stime, on x86-linux)
+  159452  unhandled ioctl 0x8B01 on "valgrind iwconfig"
+  160954  ppc build of valgrind crashes with illegal instruction (isel)
+  160956  mallinfo implementation, w/ patch
+  162092  Valgrind fails to start gnome-system-monitor
+  162819  malloc_free_fill test doesn't pass on glibc2.8 x86
+  163794  assertion failure with "--track-origins=yes"
+  163933  sigcontext.err and .trapno must be set together
+  163955  remove constraint !(--db-attach=yes && --trace-children=yes)
+  164476  Missing kernel module loading system calls
+  164669  SVN regression: mmap() drops posix file locks
+  166581  Callgrind output corruption when program forks
+  167288  Patch file for missing system calls on Cell BE
+  168943  unsupported scas instruction pentium
+  171645  Unrecognised instruction (MOVSD, non-binutils encoding)
+  172417  x86->IR: 0x82 ...
+  172563  amd64->IR: 0xD9 0xF5  -  fprem1
+  173099  .lds linker script generation error
+  173177  [x86_64] syscalls: 125/126/179 (capget/capset/quotactl)
+  173751  amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant prefixes)
+  174532  == 173751
+  174908  --log-file value not expanded correctly for core file
+  175044  Add lookup_dcookie for amd64
+  175150  x86->IR: 0xF2 0xF 0x11 0xC1 (movss non-binutils encoding)
+
+Developer-visible changes:
+
+* Valgrind's debug-info reading machinery has been majorly overhauled.
+  It can now correctly establish the addresses for ELF data symbols,
+  which is something that has never worked properly before now.
+
+  Also, Valgrind can now read DWARF3 type and location information for
+  stack and global variables.  This makes it possible to use the
+  framework to build tools that rely on knowing the type and locations
+  of stack and global variables, for example exp-Ptrcheck.
+
+  Reading of such information is disabled by default, because most
+  tools don't need it, and because it is expensive in space and time.
+  However, you can force Valgrind to read it, using the
+  --read-var-info=yes flag.  Memcheck, Helgrind and DRD are able to
+  make use of such information, if present, to provide source-level
+  descriptions of data addresses in the error messages they create.
+
+(3.4.0.RC1:  24 Dec 2008, vex r1878, valgrind r8882).
+(3.4.0:       3 Jan 2009, vex r1878, valgrind r8899).
+
+
+Release 3.3.1 (4 June 2008)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.3.1 fixes a bunch of bugs in 3.3.0, adds support for glibc-2.8 based
+systems (openSUSE 11, Fedora Core 9), improves the existing glibc-2.7
+support, and adds support for the SSSE3 (Core 2) instruction set.
+
+3.3.1 will likely be the last release that supports some very old
+systems.  In particular, the next major release, 3.4.0, will drop
+support for the old LinuxThreads threading library, and for gcc
+versions prior to 3.0.
+
+The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
+bugzilla" -- that is, a bug that was reported to us but never got a
+bugzilla entry.  We encourage you to file bugs in bugzilla
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly -- bugs that are not entered
+into bugzilla tend to get forgotten about or ignored.
+
+n-i-bz  Massif segfaults at exit
+n-i-bz  Memcheck asserts on Altivec code
+n-i-bz  fix sizeof bug in Helgrind
+n-i-bz  check fd on sys_llseek
+n-i-bz  update syscall lists to kernel 2.6.23.1
+n-i-bz  support sys_sync_file_range
+n-i-bz  handle sys_sysinfo, sys_getresuid, sys_getresgid on ppc64-linux
+n-i-bz  intercept memcpy in 64-bit ld.so's
+n-i-bz  Fix wrappers for sys_{futimesat,utimensat}
+n-i-bz  Minor false-error avoidance fixes for Memcheck
+n-i-bz  libmpiwrap.c: add a wrapper for MPI_Waitany
+n-i-bz  helgrind support for glibc-2.8
+n-i-bz  partial fix for mc_leakcheck.c:698 assert:
+        'lc_shadows[i]->data + lc_shadows[i] ...
+n-i-bz  Massif/Cachegrind output corruption when programs fork
+n-i-bz  register allocator fix: handle spill stores correctly
+n-i-bz  add support for PA6T PowerPC CPUs
+126389  vex x86->IR: 0xF 0xAE (FXRSTOR)
+158525  ==126389
+152818  vex x86->IR: 0xF3 0xAC (repz lodsb) 
+153196  vex x86->IR: 0xF2 0xA6 (repnz cmpsb) 
+155011  vex x86->IR: 0xCF (iret)
+155091  Warning [...] unhandled DW_OP_ opcode 0x23
+156960  ==155901
+155528  support Core2/SSSE3 insns on x86/amd64
+155929  ms_print fails on massif outputs containing long lines
+157665  valgrind fails on shmdt(0) after shmat to 0
+157748  support x86 PUSHFW/POPFW
+158212  helgrind: handle pthread_rwlock_try{rd,wr}lock.
+158425  sys_poll incorrectly emulated when RES==0
+158744  vex amd64->IR: 0xF0 0x41 0xF 0xC0 (xaddb)
+160907  Support for a couple of recent Linux syscalls
+161285  Patch -- support for eventfd() syscall
+161378  illegal opcode in debug libm (FUCOMPP)
+160136  ==161378
+161487  number of suppressions files is limited to 10
+162386  ms_print typo in milliseconds time unit for massif
+161036  exp-drd: client allocated memory was never freed
+162663  signalfd_wrapper fails on 64bit linux
+
+(3.3.1.RC1:  2 June 2008, vex r1854, valgrind r8169).
+(3.3.1:      4 June 2008, vex r1854, valgrind r8180).
+
+
+
+Release 3.3.0 (7 December 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.3.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.  This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux.  Support for recent distros
+(using gcc 4.3, glibc 2.6 and 2.7) has been added.
+
+The main excitement in 3.3.0 is new and improved tools.  Helgrind
+works again, Massif has been completely overhauled and much improved,
+Cachegrind now does branch-misprediction profiling, and a new category
+of experimental tools has been created, containing two new tools:
+Omega and DRD.  There are many other smaller improvements.  In detail:
+
+- Helgrind has been completely overhauled and works for the first time
+  since Valgrind 2.2.0.  Supported functionality is: detection of
+  misuses of the POSIX PThreads API, detection of potential deadlocks
+  resulting from cyclic lock dependencies, and detection of data
+  races.  Compared to the 2.2.0 Helgrind, the race detection algorithm
+  has some significant improvements aimed at reducing the false error
+  rate.  Handling of various kinds of corner cases has been improved.
+  Efforts have been made to make the error messages easier to
+  understand.  Extensive documentation is provided.
+
+- Massif has been completely overhauled.  Instead of measuring
+  space-time usage -- which wasn't always useful and many people found
+  confusing -- it now measures space usage at various points in the
+  execution, including the point of peak memory allocation.  Its
+  output format has also changed: instead of producing PostScript
+  graphs and HTML text, it produces a single text output (via the new
+  'ms_print' script) that contains both a graph and the old textual
+  information, but in a more compact and readable form.  Finally, the
+  new version should be more reliable than the old one, as it has been
+  tested more thoroughly.
+
+- Cachegrind has been extended to do branch-misprediction profiling.
+  Both conditional and indirect branches are profiled.  The default
+  behaviour of Cachegrind is unchanged.  To use the new functionality,
+  give the option --branch-sim=yes.
+
+- A new category of "experimental tools" has been created.  Such tools
+  may not work as well as the standard tools, but are included because
+  some people will find them useful, and because exposure to a wider
+  user group provides tool authors with more end-user feedback.  These
+  tools have a "exp-" prefix attached to their names to indicate their
+  experimental nature.  Currently there are two experimental tools:
+
+  * exp-Omega: an instantaneous leak detector.  See
+    exp-omega/docs/omega_introduction.txt.
+
+  * exp-DRD: a data race detector based on the happens-before
+    relation.  See exp-drd/docs/README.txt.
+
+- Scalability improvements for very large programs, particularly those
+  which have a million or more malloc'd blocks in use at once.  These
+  improvements mostly affect Memcheck.  Memcheck is also up to 10%
+  faster for all programs, with x86-linux seeing the largest
+  improvement.
+
+- Works well on the latest Linux distros.  Has been tested on Fedora
+  Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3.  glibc 2.6 and
+  2.7 are supported.  gcc-4.3 (in its current pre-release state) is
+  supported.  At the same time, 3.3.0 retains support for older
+  distros.
+
+- The documentation has been modestly reorganised with the aim of
+  making it easier to find information on common-usage scenarios.
+  Some advanced material has been moved into a new chapter in the main
+  manual, so as to unclutter the main flow, and other tidying up has
+  been done.
+
+- There is experimental support for AIX 5.3, both 32-bit and 64-bit
+  processes.  You need to be running a 64-bit kernel to use Valgrind
+  on a 64-bit executable.
+
+- There have been some changes to command line options, which may
+  affect you:
+
+  * --log-file-exactly and 
+    --log-file-qualifier options have been removed.
+
+    To make up for this --log-file option has been made more powerful.
+    It now accepts a %p format specifier, which is replaced with the
+    process ID, and a %q{FOO} format specifier, which is replaced with
+    the contents of the environment variable FOO.
+
+  * --child-silent-after-fork=yes|no [no]
+
+    Causes Valgrind to not show any debugging or logging output for
+    the child process resulting from a fork() call.  This can make the
+    output less confusing (although more misleading) when dealing with
+    processes that create children.
+
+  * --cachegrind-out-file, --callgrind-out-file and --massif-out-file
+
+    These control the names of the output files produced by
+    Cachegrind, Callgrind and Massif.  They accept the same %p and %q
+    format specifiers that --log-file accepts.  --callgrind-out-file
+    replaces Callgrind's old --base option.
+
+  * Cachegrind's 'cg_annotate' script no longer uses the --<pid>
+    option to specify the output file.  Instead, the first non-option
+    argument is taken to be the name of the output file, and any
+    subsequent non-option arguments are taken to be the names of
+    source files to be annotated.
+
+  * Cachegrind and Callgrind now use directory names where possible in
+    their output files.  This means that the -I option to
+    'cg_annotate' and 'callgrind_annotate' should not be needed in
+    most cases.  It also means they can correctly handle the case
+    where two source files in different directories have the same
+    name.
+
+- Memcheck offers a new suppression kind: "Jump".  This is for
+  suppressing jump-to-invalid-address errors.  Previously you had to
+  use an "Addr1" suppression, which didn't make much sense.
+
+- Memcheck has new flags --malloc-fill=<hexnum> and
+  --free-fill=<hexnum> which free malloc'd / free'd areas with the
+  specified byte.  This can help shake out obscure memory corruption
+  problems.  The definedness and addressability of these areas is
+  unchanged -- only the contents are affected.
+
+- The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and
+  VALGRIND_SET_VBITS have changed slightly.  They no longer issue
+  addressability errors -- if either array is partially unaddressable,
+  they just return 3 (as before).  Also, SET_VBITS doesn't report
+  definedness errors if any of the V bits are undefined.
+
+- The following Memcheck client requests have been removed:
+    VALGRIND_MAKE_NOACCESS
+    VALGRIND_MAKE_WRITABLE
+    VALGRIND_MAKE_READABLE
+    VALGRIND_CHECK_WRITABLE
+    VALGRIND_CHECK_READABLE
+    VALGRIND_CHECK_DEFINED
+  They were deprecated in 3.2.0, when equivalent but better-named client
+  requests were added.  See the 3.2.0 release notes for more details.
+
+- The behaviour of the tool Lackey has changed slightly.  First, the output
+  from --trace-mem has been made more compact, to reduce the size of the
+  traces.  Second, a new option --trace-superblocks has been added, which
+  shows the addresses of superblocks (code blocks) as they are executed.
+
+- The following bugs have been fixed.  Note that "n-i-bz" stands for
+  "not in bugzilla" -- that is, a bug that was reported to us but
+  never got a bugzilla entry.  We encourage you to file bugs in
+  bugzilla (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+  mailing the developers (or mailing lists) directly.
+
+  n-i-bz  x86_linux_REDIR_FOR_index() broken
+  n-i-bz  guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.
+  n-i-bz  Support x86 INT insn (INT (0xCD) 0x40 - 0x43)
+  n-i-bz  Add sys_utimensat system call for Linux x86 platform
+   79844  Helgrind complains about race condition which does not exist
+   82871  Massif output function names too short
+   89061  Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...'
+   92615  Write output from Massif at crash
+   95483  massif feature request: include peak allocation in report
+  112163  MASSIF crashed with signal 7 (SIGBUS) after running 2 days
+  119404  problems running setuid executables (partial fix)
+  121629  add instruction-counting mode for timing
+  127371  java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65
+  129937  ==150380
+  129576  Massif loses track of memory, incorrect graphs
+  132132  massif --format=html output does not do html entity escaping
+  132950  Heap alloc/usage summary
+  133962  unhandled instruction bytes: 0xF2 0x4C 0xF 0x10
+  134990  use -fno-stack-protector if possible
+  136382  ==134990
+  137396  I would really like helgrind to work again...
+  137714  x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq)
+  141631  Massif: percentages don't add up correctly
+  142706  massif numbers don't seem to add up
+  143062  massif crashes on app exit with signal 8 SIGFPE
+  144453  (get_XCon): Assertion 'xpt->max_children != 0' failed.
+  145559  valgrind aborts when malloc_stats is called
+  145609  valgrind aborts all runs with 'repeated section!'
+  145622  --db-attach broken again on x86-64
+  145837  ==149519
+  145887  PPC32: getitimer() system call is not supported
+  146252  ==150678
+  146456  (update_XCon): Assertion 'xpt->curr_space >= -space_delta'...
+  146701  ==134990
+  146781  Adding support for private futexes
+  147325  valgrind internal error on syscall (SYS_io_destroy, 0)
+  147498  amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))
+  147545  Memcheck: mc_main.c:817 (get_sec_vbits8): Assertion 'n' failed.
+  147628  SALC opcode 0xd6 unimplemented
+  147825  crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
+  148174  Incorrect type of freed_list_volume causes assertion [...]
+  148447  x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f
+  149182  PPC Trap instructions not implemented in valgrind
+  149504  Assertion hit on alloc_xpt->curr_space >= -space_delta
+  149519  ppc32: V aborts with SIGSEGV on execution of a signal handler
+  149892  ==137714
+  150044  SEGV during stack deregister
+  150380  dwarf/gcc interoperation (dwarf3 read problems)
+  150408  ==148447
+  150678  guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed
+  151209  V unable to execute programs for users with UID > 2^16
+  151938  help on --db-command= misleading
+  152022  subw $0x28, %%sp causes assertion failure in memcheck
+  152357  inb and outb not recognized in 64-bit mode
+  152501  vex x86->IR: 0x27 0x66 0x89 0x45 (daa) 
+  152818  vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb)
+
+Developer-visible changes:
+
+- The names of some functions and types within the Vex IR have
+  changed.  Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.
+  Any existing standalone tools will have to be updated to reflect
+  these changes.  The new names should be clearer.  The file
+  VEX/pub/libvex_ir.h is also much better commented.
+
+- A number of new debugging command line options have been added.
+  These are mostly of use for debugging the symbol table and line
+  number readers:
+
+  --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
+  --trace-cfi=no|yes        show call-frame-info details? [no]
+  --debug-dump=syms         mimic /usr/bin/readelf --syms
+  --debug-dump=line         mimic /usr/bin/readelf --debug-dump=line
+  --debug-dump=frames       mimic /usr/bin/readelf --debug-dump=frames
+  --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]
+
+- Internally, the code base has been further factorised and
+  abstractified, particularly with respect to support for non-Linux
+  OSs.
+
+(3.3.0.RC1:  2 Dec 2007, vex r1803, valgrind r7268).
+(3.3.0.RC2:  5 Dec 2007, vex r1804, valgrind r7282).
+(3.3.0.RC3:  9 Dec 2007, vex r1804, valgrind r7288).
+(3.3.0:     10 Dec 2007, vex r1804, valgrind r7290).
+
+
+
+Release 3.2.3 (29 Jan 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Unfortunately 3.2.2 introduced a regression which can cause an
+assertion failure ("vex: the `impossible' happened: eqIRConst") when
+running obscure pieces of SSE code.  3.2.3 fixes this and adds one
+more glibc-2.5 intercept.  In all other respects it is identical to
+3.2.2.  Please do not use (or package) 3.2.2; instead use 3.2.3.
+
+n-i-bz   vex: the `impossible' happened: eqIRConst
+n-i-bz   Add an intercept for glibc-2.5 __stpcpy_chk
+
+(3.2.3: 29 Jan 2007, vex r1732, valgrind r6560).
+
+
+Release 3.2.2 (22 Jan 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.2 fixes a bunch of bugs in 3.2.1, adds support for glibc-2.5 based
+systems (openSUSE 10.2, Fedora Core 6), improves support for icc-9.X
+compiled code, and brings modest performance improvements in some
+areas, including amd64 floating point, powerpc support, and startup
+responsiveness on all targets.
+
+The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
+bugzilla" -- that is, a bug that was reported to us but never got a
+bugzilla entry.  We encourage you to file bugs in bugzilla
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly.
+
+129390   ppc?->IR: some kind of VMX prefetch (dstt)
+129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)
+134319   ==129968
+133054   'make install' fails with syntax errors
+118903   ==133054
+132998   startup fails in when running on UML
+134207   pkg-config output contains @VG_PLATFORM@
+134727   valgrind exits with "Value too large for defined data type"
+n-i-bz   ppc32/64: support mcrfs
+n-i-bz   Cachegrind/Callgrind: Update cache parameter detection
+135012   x86->IR: 0xD7 0x8A 0xE0 0xD0 (xlat)
+125959   ==135012
+126147   x86->IR: 0xF2 0xA5 0xF 0x77 (repne movsw)
+136650   amd64->IR: 0xC2 0x8 0x0
+135421   x86->IR: unhandled Grp5(R) case 6
+n-i-bz   Improved documentation of the IR intermediate representation
+n-i-bz   jcxz (x86) (users list, 8 Nov)
+n-i-bz   ExeContext hashing fix
+n-i-bz   fix CFI reading failures ("Dwarf CFI 0:24 0:32 0:48 0:7")
+n-i-bz   fix Cachegrind/Callgrind simulation bug
+n-i-bz   libmpiwrap.c: fix handling of MPI_LONG_DOUBLE
+n-i-bz   make User errors suppressible
+136844   corrupted malloc line when using --gen-suppressions=yes
+138507   ==136844
+n-i-bz   Speed up the JIT's register allocator
+n-i-bz   Fix confusing leak-checker flag hints
+n-i-bz   Support recent autoswamp versions
+n-i-bz   ppc32/64 dispatcher speedups
+n-i-bz   ppc64 front end rld/rlw improvements
+n-i-bz   ppc64 back end imm64 improvements
+136300   support 64K pages on ppc64-linux
+139124   == 136300
+n-i-bz   fix ppc insn set tests for gcc >= 4.1
+137493   x86->IR: recent binutils no-ops
+137714   x86->IR: 0x66 0xF 0xF7 0xC6 (maskmovdqu)
+138424   "failed in UME with error 22" (produce a better error msg)
+138856   ==138424
+138627   Enhancement support for prctl ioctls
+138896   Add support for usb ioctls
+136059   ==138896
+139050   ppc32->IR: mfspr 268/269 instructions not handled
+n-i-bz   ppc32->IR: lvxl/stvxl
+n-i-bz   glibc-2.5 support
+n-i-bz   memcheck: provide replacement for mempcpy
+n-i-bz   memcheck: replace bcmp in ld.so
+n-i-bz   Use 'ifndef' in VEX's Makefile correctly
+n-i-bz   Suppressions for MVL 4.0.1 on ppc32-linux
+n-i-bz   libmpiwrap.c: Fixes for MPICH
+n-i-bz   More robust handling of hinted client mmaps
+139776   Invalid read in unaligned memcpy with Intel compiler v9
+n-i-bz   Generate valid XML even for very long fn names
+n-i-bz   Don't prompt about suppressions for unshown reachable leaks
+139910   amd64 rcl is not supported
+n-i-bz   DWARF CFI reader: handle DW_CFA_undefined
+n-i-bz   DWARF CFI reader: handle icc9 generated CFI info better
+n-i-bz   fix false uninit-value errs in icc9 generated FP code
+n-i-bz   reduce extraneous frames in libmpiwrap.c
+n-i-bz   support pselect6 on amd64-linux
+
+(3.2.2: 22 Jan 2007, vex r1729, valgrind r6545).
+
+
+Release 3.2.1 (16 Sept 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.1 adds x86/amd64 support for all SSE3 instructions except monitor
+and mwait, further reduces memcheck's false error rate on all
+platforms, adds support for recent binutils (in OpenSUSE 10.2 and
+Fedora Rawhide) and fixes a bunch of bugs in 3.2.0.  Some of the fixed
+bugs were causing large programs to segfault with --tool=callgrind and
+--tool=cachegrind, so an upgrade is recommended.
+
+In view of the fact that any 3.3.0 release is unlikely to happen until
+well into 1Q07, we intend to keep the 3.2.X line alive for a while
+yet, and so we tentatively plan a 3.2.2 release sometime in December
+06.
+
+The fixed bugs are as follows.  Note that "n-i-bz" stands for "not in
+bugzilla" -- that is, a bug that was reported to us but never got a
+bugzilla entry.
+
+n-i-bz   Expanding brk() into last available page asserts
+n-i-bz   ppc64-linux stack RZ fast-case snafu
+n-i-bz   'c' in --gen-supps=yes doesn't work
+n-i-bz   VG_N_SEGMENTS too low (users, 28 June)
+n-i-bz   VG_N_SEGNAMES too low (Stu Robinson)
+106852   x86->IR: fisttp (SSE3)
+117172   FUTEX_WAKE does not use uaddr2
+124039   Lacks support for VKI_[GP]IO_UNIMAP*
+127521   amd64->IR: 0xF0 0x48 0xF 0xC7 (cmpxchg8b)
+128917   amd64->IR: 0x66 0xF 0xF6 0xC4 (psadbw,SSE2)
+129246   JJ: ppc32/ppc64 syscalls, w/ patch
+129358   x86->IR: fisttpl (SSE3)
+129866   cachegrind/callgrind causes executable to die
+130020   Can't stat .so/.exe error while reading symbols
+130388   Valgrind aborts when process calls malloc_trim()
+130638   PATCH: ppc32 missing system calls
+130785   amd64->IR: unhandled instruction "pushfq"
+131481:  (HINT_NOP) vex x86->IR: 0xF 0x1F 0x0 0xF
+131298   ==131481
+132146   Programs with long sequences of bswap[l,q]s
+132918   vex amd64->IR: 0xD9 0xF8 (fprem)
+132813   Assertion at priv/guest-x86/toIR.c:652 fails
+133051   'cfsi->len > 0 && cfsi->len < 2000000' failed
+132722   valgrind header files are not standard C
+n-i-bz   Livelocks entire machine (users list, Timothy Terriberry)
+n-i-bz   Alex Bennee mmap problem (9 Aug)
+n-i-bz   BartV: Don't print more lines of a stack-trace than were obtained.
+n-i-bz   ppc32 SuSE 10.1 redir
+n-i-bz   amd64 padding suppressions
+n-i-bz   amd64 insn printing fix.
+n-i-bz   ppc cmp reg,reg fix
+n-i-bz   x86/amd64 iropt e/rflag reduction rules
+n-i-bz   SuSE 10.1 (ppc32) minor fixes
+133678   amd64->IR: 0x48 0xF 0xC5 0xC0 (pextrw?)
+133694   aspacem assertion: aspacem_minAddr <= holeStart
+n-i-bz   callgrind: fix warning about malformed creator line 
+n-i-bz   callgrind: fix annotate script for data produced with 
+         --dump-instr=yes
+n-i-bz   callgrind: fix failed assertion when toggling 
+         instrumentation mode
+n-i-bz   callgrind: fix annotate script fix warnings with
+         --collect-jumps=yes
+n-i-bz   docs path hardwired (Dennis Lubert)
+
+The following bugs were not fixed, due primarily to lack of developer
+time, and also because bug reporters did not answer requests for
+feedback in time for the release:
+
+129390   ppc?->IR: some kind of VMX prefetch (dstt)
+129968   amd64->IR: 0xF 0xAE 0x0 (fxsave)
+133054   'make install' fails with syntax errors
+n-i-bz   Signal race condition (users list, 13 June, Johannes Berg)
+n-i-bz   Unrecognised instruction at address 0x70198EC2 (users list,
+         19 July, Bennee)
+132998   startup fails in when running on UML
+
+The following bug was tentatively fixed on the mainline but the fix
+was considered too risky to push into 3.2.X:
+
+133154   crash when using client requests to register/deregister stack
+
+(3.2.1: 16 Sept 2006, vex r1658, valgrind r6070).
+
+
+Release 3.2.0 (7 June 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.  This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux.
+
+Performance, especially of Memcheck, is improved, Addrcheck has been
+removed, Callgrind has been added, PPC64/Linux support has been added,
+Lackey has been improved, and MPI support has been added.  In detail:
+
+- Memcheck has improved speed and reduced memory use.  Run times are
+  typically reduced by 15-30%, averaging about 24% for SPEC CPU2000.
+  The other tools have smaller but noticeable speed improvements.  We
+  are interested to hear what improvements users get.
+
+  Memcheck uses less memory due to the introduction of a compressed
+  representation for shadow memory.  The space overhead has been
+  reduced by a factor of up to four, depending on program behaviour.
+  This means you should be able to run programs that use more memory
+  than before without hitting problems.
+
+- Addrcheck has been removed.  It has not worked since version 2.4.0,
+  and the speed and memory improvements to Memcheck make it redundant.
+  If you liked using Addrcheck because it didn't give undefined value
+  errors, you can use the new Memcheck option --undef-value-errors=no
+  to get the same behaviour.
+
+- The number of undefined-value errors incorrectly reported by
+  Memcheck has been reduced (such false reports were already very
+  rare).  In particular, efforts have been made to ensure Memcheck
+  works really well with gcc 4.0/4.1-generated code on X86/Linux and
+  AMD64/Linux.
+
+- Josef Weidendorfer's popular Callgrind tool has been added.  Folding
+  it in was a logical step given its popularity and usefulness, and
+  makes it easier for us to ensure it works "out of the box" on all
+  supported targets.  The associated KDE KCachegrind GUI remains a
+  separate project.
+
+- A new release of the Valkyrie GUI for Memcheck, version 1.2.0,
+  accompanies this release.  Improvements over previous releases
+  include improved robustness, many refinements to the user interface,
+  and use of a standard autoconf/automake build system.  You can get
+  it from http://www.valgrind.org/downloads/guis.html.
+
+- Valgrind now works on PPC64/Linux.  As with the AMD64/Linux port,
+  this supports programs using to 32G of address space.  On 64-bit
+  capable PPC64/Linux setups, you get a dual architecture build so
+  that both 32-bit and 64-bit executables can be run.  Linux on POWER5
+  is supported, and POWER4 is also believed to work.  Both 32-bit and
+  64-bit DWARF2 is supported.  This port is known to work well with
+  both gcc-compiled and xlc/xlf-compiled code.
+
+- Floating point accuracy has been improved for PPC32/Linux.
+  Specifically, the floating point rounding mode is observed on all FP
+  arithmetic operations, and multiply-accumulate instructions are
+  preserved by the compilation pipeline.  This means you should get FP
+  results which are bit-for-bit identical to a native run.  These
+  improvements are also present in the PPC64/Linux port.
+
+- Lackey, the example tool, has been improved:
+
+  * It has a new option --detailed-counts (off by default) which
+    causes it to print out a count of loads, stores and ALU operations
+    done, and their sizes.
+
+  * It has a new option --trace-mem (off by default) which causes it
+    to print out a trace of all memory accesses performed by a
+    program.  It's a good starting point for building Valgrind tools
+    that need to track memory accesses.  Read the comments at the top
+    of the file lackey/lk_main.c for details.
+
+  * The original instrumentation (counting numbers of instructions,
+    jumps, etc) is now controlled by a new option --basic-counts.  It
+    is on by default.
+
+- MPI support: partial support for debugging distributed applications
+  using the MPI library specification has been added.  Valgrind is
+  aware of the memory state changes caused by a subset of the MPI
+  functions, and will carefully check data passed to the (P)MPI_
+  interface.
+
+- A new flag, --error-exitcode=, has been added.  This allows changing
+  the exit code in runs where Valgrind reported errors, which is
+  useful when using Valgrind as part of an automated test suite.
+
+- Various segfaults when reading old-style "stabs" debug information
+  have been fixed.
+
+- A simple performance evaluation suite has been added.  See
+  perf/README and README_DEVELOPERS for details.  There are
+  various bells and whistles.
+
+- New configuration flags:
+    --enable-only32bit
+    --enable-only64bit
+  By default, on 64 bit platforms (ppc64-linux, amd64-linux) the build
+  system will attempt to build a Valgrind which supports both 32-bit
+  and 64-bit executables.  This may not be what you want, and you can
+  override the default behaviour using these flags.
+
+Please note that Helgrind is still not working.  We have made an
+important step towards making it work again, however, with the
+addition of function wrapping (see below).
+
+Other user-visible changes:
+
+- Valgrind now has the ability to intercept and wrap arbitrary
+  functions.  This is a preliminary step towards making Helgrind work
+  again, and was required for MPI support.
+
+- There are some changes to Memcheck's client requests.  Some of them
+  have changed names:
+
+    MAKE_NOACCESS  --> MAKE_MEM_NOACCESS
+    MAKE_WRITABLE  --> MAKE_MEM_UNDEFINED
+    MAKE_READABLE  --> MAKE_MEM_DEFINED
+
+    CHECK_WRITABLE --> CHECK_MEM_IS_ADDRESSABLE
+    CHECK_READABLE --> CHECK_MEM_IS_DEFINED
+    CHECK_DEFINED  --> CHECK_VALUE_IS_DEFINED
+
+  The reason for the change is that the old names are subtly
+  misleading.  The old names will still work, but they are deprecated
+  and may be removed in a future release.
+
+  We also added a new client request:
+  
+    MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)
+    
+  which is like MAKE_MEM_DEFINED but only affects a byte if the byte is
+  already addressable.
+
+- The way client requests are encoded in the instruction stream has
+  changed.  Unfortunately, this means 3.2.0 will not honour client
+  requests compiled into binaries using headers from earlier versions
+  of Valgrind.  We will try to keep the client request encodings more 
+  stable in future.
+
+BUGS FIXED:
+
+108258   NPTL pthread cleanup handlers not called 
+117290   valgrind is sigKILL'd on startup
+117295   == 117290
+118703   m_signals.c:1427 Assertion 'tst->status == VgTs_WaitSys'
+118466   add %reg, %reg generates incorrect validity for bit 0
+123210   New: strlen from ld-linux on amd64
+123244   DWARF2 CFI reader: unhandled CFI instruction 0:18
+123248   syscalls in glibc-2.4: openat, fstatat, symlinkat
+123258   socketcall.recvmsg(msg.msg_iov[i] points to uninit
+123535   mremap(new_addr) requires MREMAP_FIXED in 4th arg
+123836   small typo in the doc
+124029   ppc compile failed: `vor' gcc 3.3.5
+124222   Segfault: @@don't know what type ':' is
+124475   ppc32: crash (syscall?) timer_settime()
+124499   amd64->IR: 0xF 0xE 0x48 0x85 (femms)
+124528   FATAL: aspacem assertion failed: segment_is_sane
+124697   vex x86->IR: 0xF 0x70 0xC9 0x0 (pshufw)
+124892   vex x86->IR: 0xF3 0xAE (REPx SCASB)
+126216   == 124892
+124808   ppc32: sys_sched_getaffinity() not handled
+n-i-bz   Very long stabs strings crash m_debuginfo
+n-i-bz   amd64->IR: 0x66 0xF 0xF5 (pmaddwd)
+125492   ppc32: support a bunch more syscalls
+121617   ppc32/64: coredumping gives assertion failure
+121814   Coregrind return error as exitcode patch
+126517   == 121814
+125607   amd64->IR: 0x66 0xF 0xA3 0x2 (btw etc)
+125651   amd64->IR: 0xF8 0x49 0xFF 0xE3 (clc?)
+126253   x86 movx is wrong
+126451   3.2 SVN doesn't work on ppc32 CPU's without FPU
+126217   increase # threads
+126243   vex x86->IR: popw mem
+126583   amd64->IR: 0x48 0xF 0xA4 0xC2 (shld $1,%rax,%rdx)
+126668   amd64->IR: 0x1C 0xFF (sbb $0xff,%al)
+126696   support for CDROMREADRAW ioctl and CDROMREADTOCENTRY fix
+126722   assertion: segment_is_sane at m_aspacemgr/aspacemgr.c:1624
+126938   bad checking for syscalls linkat, renameat, symlinkat
+
+(3.2.0RC1: 27 May  2006, vex r1626, valgrind r5947).
+(3.2.0:     7 June 2006, vex r1628, valgrind r5957).
+
+
+Release 3.1.1 (15 March 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.1.1 fixes a bunch of bugs reported in 3.1.0.  There is no new
+functionality.  The fixed bugs are:
+
+(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
+ a bugzilla entry).
+
+n-i-bz   ppc32: fsub 3,3,3 in dispatcher doesn't clear NaNs
+n-i-bz   ppc32: __NR_{set,get}priority
+117332   x86: missing line info with icc 8.1
+117366   amd64: 0xDD 0x7C fnstsw
+118274   == 117366
+117367   amd64: 0xD9 0xF4 fxtract
+117369   amd64: __NR_getpriority (140)
+117419   ppc32: lfsu f5, -4(r11)
+117419   ppc32: fsqrt
+117936   more stabs problems (segfaults while reading debug info)
+119914   == 117936
+120345   == 117936
+118239   amd64: 0xF 0xAE 0x3F (clflush)
+118939   vm86old system call
+n-i-bz   memcheck/tests/mempool reads freed memory
+n-i-bz   AshleyP's custom-allocator assertion
+n-i-bz   Dirk strict-aliasing stuff
+n-i-bz   More space for debugger cmd line (Dan Thaler)
+n-i-bz   Clarified leak checker output message
+n-i-bz   AshleyP's --gen-suppressions output fix
+n-i-bz   cg_annotate's --sort option broken
+n-i-bz   OSet 64-bit fastcmp bug
+n-i-bz   VG_(getgroups) fix (Shinichi Noda)
+n-i-bz   ppc32: allocate from callee-saved FP/VMX regs
+n-i-bz   misaligned path word-size bug in mc_main.c
+119297   Incorrect error message for sse code
+120410   x86: prefetchw (0xF 0xD 0x48 0x4)
+120728   TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls
+120658   Build fixes for gcc 2.96
+120734   x86: Support for changing EIP in signal handler
+n-i-bz   memcheck/tests/zeropage de-looping fix
+n-i-bz   x86: fxtract doesn't work reliably
+121662   x86: lock xadd (0xF0 0xF 0xC0 0x2)
+121893   calloc does not always return zeroed memory
+121901   no support for syscall tkill
+n-i-bz   Suppression update for Debian unstable
+122067   amd64: fcmovnu (0xDB 0xD9)
+n-i-bz   ppc32: broken signal handling in cpu feature detection
+n-i-bz   ppc32: rounding mode problems (improved, partial fix only)
+119482   ppc32: mtfsb1
+n-i-bz   ppc32: mtocrf/mfocrf
+
+(3.1.1:  15 March 2006, vex r1597, valgrind r5771).
+
+
+Release 3.1.0 (25 November 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.1.0 is a feature release with a number of significant improvements:
+AMD64 support is much improved, PPC32 support is good enough to be
+usable, and the handling of memory management and address space is
+much more robust.  In detail:
+
+- AMD64 support is much improved.  The 64-bit vs. 32-bit issues in
+  3.0.X have been resolved, and it should "just work" now in all
+  cases.  On AMD64 machines both 64-bit and 32-bit versions of
+  Valgrind are built.  The right version will be invoked
+  automatically, even when using --trace-children and mixing execution
+  between 64-bit and 32-bit executables.  Also, many more instructions
+  are supported.
+
+- PPC32 support is now good enough to be usable.  It should work with
+  all tools, but please let us know if you have problems.  Three
+  classes of CPUs are supported: integer only (no FP, no Altivec),
+  which covers embedded PPC uses, integer and FP but no Altivec
+  (G3-ish), and CPUs capable of Altivec too (G4, G5).
+
+- Valgrind's address space management has been overhauled.  As a
+  result, Valgrind should be much more robust with programs that use
+  large amounts of memory.  There should be many fewer "memory
+  exhausted" messages, and debug symbols should be read correctly on
+  large (eg. 300MB+) executables.  On 32-bit machines the full address
+  space available to user programs (usually 3GB or 4GB) can be fully
+  utilised.  On 64-bit machines up to 32GB of space is usable; when
+  using Memcheck that means your program can use up to about 14GB.
+
+  A side effect of this change is that Valgrind is no longer protected
+  against wild writes by the client.  This feature was nice but relied
+  on the x86 segment registers and so wasn't portable.
+
+- Most users should not notice, but as part of the address space
+  manager change, the way Valgrind is built has been changed.  Each
+  tool is now built as a statically linked stand-alone executable,
+  rather than as a shared object that is dynamically linked with the
+  core.  The "valgrind" program invokes the appropriate tool depending
+  on the --tool option.  This slightly increases the amount of disk
+  space used by Valgrind, but it greatly simplified many things and
+  removed Valgrind's dependence on glibc.
+
+Please note that Addrcheck and Helgrind are still not working.  Work
+is underway to reinstate them (or equivalents).  We apologise for the
+inconvenience.
+
+Other user-visible changes:
+
+- The --weird-hacks option has been renamed --sim-hints.
+
+- The --time-stamp option no longer gives an absolute date and time.
+  It now prints the time elapsed since the program began.
+
+- It should build with gcc-2.96.
+
+- Valgrind can now run itself (see README_DEVELOPERS for how).
+  This is not much use to you, but it means the developers can now
+  profile Valgrind using Cachegrind.  As a result a couple of
+  performance bad cases have been fixed.
+
+- The XML output format has changed slightly.  See
+  docs/internals/xml-output.txt.
+
+- Core dumping has been reinstated (it was disabled in 3.0.0 and 3.0.1).
+  If your program crashes while running under Valgrind, a core file with
+  the name "vgcore.<pid>" will be created (if your settings allow core
+  file creation).  Note that the floating point information is not all
+  there.  If Valgrind itself crashes, the OS will create a normal core
+  file.
+
+The following are some user-visible changes that occurred in earlier
+versions that may not have been announced, or were announced but not
+widely noticed.  So we're mentioning them now.
+
+- The --tool flag is optional once again;  if you omit it, Memcheck
+  is run by default.
+
+- The --num-callers flag now has a default value of 12.  It was
+  previously 4.
+
+- The --xml=yes flag causes Valgrind's output to be produced in XML
+  format.  This is designed to make it easy for other programs to
+  consume Valgrind's output.  The format is described in the file
+  docs/internals/xml-format.txt.
+
+- The --gen-suppressions flag supports an "all" value that causes every
+  suppression to be printed without asking.
+
+- The --log-file option no longer puts "pid" in the filename, eg. the
+  old name "foo.pid12345" is now "foo.12345".
+
+- There are several graphical front-ends for Valgrind, such as Valkyrie,
+  Alleyoop and Valgui.  See http://www.valgrind.org/downloads/guis.html
+  for a list.
+
+BUGS FIXED:
+
+109861  amd64 hangs at startup
+110301  ditto
+111554  valgrind crashes with Cannot allocate memory
+111809  Memcheck tool doesn't start java
+111901  cross-platform run of cachegrind fails on opteron
+113468  (vgPlain_mprotect_range): Assertion 'r != -1' failed.
+ 92071  Reading debugging info uses too much memory
+109744  memcheck loses track of mmap from direct ld-linux.so.2
+110183  tail of page with _end
+ 82301  FV memory layout too rigid
+ 98278  Infinite recursion possible when allocating memory
+108994  Valgrind runs out of memory due to 133x overhead
+115643  valgrind cannot allocate memory
+105974  vg_hashtable.c static hash table
+109323  ppc32: dispatch.S uses Altivec insn, which doesn't work on POWER. 
+109345  ptrace_setregs not yet implemented for ppc
+110831  Would like to be able to run against both 32 and 64 bit 
+        binaries on AMD64
+110829  == 110831
+111781  compile of valgrind-3.0.0 fails on my linux (gcc 2.X prob)
+112670  Cachegrind: cg_main.c:486 (handleOneStatement ...
+112941  vex x86: 0xD9 0xF4 (fxtract)
+110201  == 112941
+113015  vex amd64->IR: 0xE3 0x14 0x48 0x83 (jrcxz)
+113126  Crash with binaries built with -gstabs+/-ggdb
+104065  == 113126
+115741  == 113126
+113403  Partial SSE3 support on x86
+113541  vex: Grp5(x86) (alt encoding inc/dec) case 1
+113642  valgrind crashes when trying to read debug information
+113810  vex x86->IR: 66 0F F6 (66 + PSADBW == SSE PSADBW)
+113796  read() and write() do not work if buffer is in shared memory
+113851  vex x86->IR: (pmaddwd): 0x66 0xF 0xF5 0xC7
+114366  vex amd64 cannnot handle __asm__( "fninit" )
+114412  vex amd64->IR: 0xF 0xAD 0xC2 0xD3 (128-bit shift, shrdq?)
+114455  vex amd64->IR: 0xF 0xAC 0xD0 0x1 (also shrdq)
+115590: amd64->IR: 0x67 0xE3 0x9 0xEB (address size override)
+115953  valgrind svn r5042 does not build with parallel make (-j3)
+116057  maximum instruction size - VG_MAX_INSTR_SZB too small?
+116483  shmat failes with invalid argument
+102202  valgrind crashes when realloc'ing until out of memory
+109487  == 102202
+110536  == 102202
+112687  == 102202
+111724  vex amd64->IR: 0x41 0xF 0xAB (more BT{,S,R,C} fun n games)
+111748  vex amd64->IR: 0xDD 0xE2 (fucom)
+111785  make fails if CC contains spaces
+111829  vex x86->IR: sbb AL, Ib
+111851  vex x86->IR: 0x9F 0x89 (lahf/sahf)
+112031  iopl on AMD64 and README_MISSING_SYSCALL_OR_IOCTL update
+112152  code generation for Xin_MFence on x86 with SSE0 subarch
+112167  == 112152
+112789  == 112152
+112199  naked ar tool is used in vex makefile
+112501  vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)
+113583  == 112501
+112538  memalign crash
+113190  Broken links in docs/html/
+113230  Valgrind sys_pipe on x86-64 wrongly thinks file descriptors
+        should be 64bit
+113996  vex amd64->IR: fucomp (0xDD 0xE9)
+114196  vex x86->IR: out %eax,(%dx) (0xEF 0xC9 0xC3 0x90)
+114289  Memcheck fails to intercept malloc when used in an uclibc environment
+114756  mbind syscall support
+114757  Valgrind dies with assertion: Assertion 'noLargerThan > 0' failed
+114563  stack tracking module not informed when valgrind switches threads
+114564  clone() and stacks
+114565  == 114564
+115496  glibc crashes trying to use sysinfo page
+116200  enable fsetxattr, fgetxattr, and fremovexattr for amd64
+
+(3.1.0RC1: 20 November 2005, vex r1466, valgrind r5224).
+(3.1.0:    26 November 2005, vex r1471, valgrind r5235).
+
+
+Release 3.0.1 (29 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.0.1 fixes a bunch of bugs reported in 3.0.0.  There is no new
+functionality.  Some of the fixed bugs are critical, so if you
+use/distribute 3.0.0, an upgrade to 3.0.1 is recommended.  The fixed
+bugs are:
+
+(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
+ a bugzilla entry).
+
+109313  (== 110505) x86 cmpxchg8b
+n-i-bz  x86: track but ignore changes to %eflags.AC (alignment check)
+110102  dis_op2_E_G(amd64)
+110202  x86 sys_waitpid(#286)
+110203  clock_getres(,0)
+110208  execve fail wrong retval
+110274  SSE1 now mandatory for x86
+110388  amd64 0xDD 0xD1
+110464  amd64 0xDC 0x1D FCOMP
+110478  amd64 0xF 0xD PREFETCH
+n-i-bz  XML <unique> printing wrong
+n-i-bz  Dirk r4359 (amd64 syscalls from trunk)
+110591  amd64 and x86: rdtsc not implemented properly
+n-i-bz  Nick r4384 (stub implementations of Addrcheck and Helgrind)
+110652  AMD64 valgrind crashes on cwtd instruction
+110653  AMD64 valgrind crashes on sarb $0x4,foo(%rip) instruction
+110656  PATH=/usr/bin::/bin valgrind foobar stats ./fooba
+110657  Small test fixes
+110671  vex x86->IR: unhandled instruction bytes: 0xF3 0xC3 (rep ret)
+n-i-bz  Nick (Cachegrind should not assert when it encounters a client
+        request.)
+110685  amd64->IR: unhandled instruction bytes: 0xE1 0x56 (loope Jb)
+110830  configuring with --host fails to build 32 bit on 64 bit target
+110875  Assertion when execve fails
+n-i-bz  Updates to Memcheck manual
+n-i-bz  Fixed broken malloc_usable_size()
+110898  opteron instructions missing: btq btsq btrq bsfq
+110954  x86->IR: unhandled instruction bytes: 0xE2 0xF6 (loop Jb)
+n-i-bz  Make suppressions work for "???" lines in stacktraces.
+111006  bogus warnings from linuxthreads
+111092  x86: dis_Grp2(Reg): unhandled case(x86) 
+111231  sctp_getladdrs() and sctp_getpaddrs() returns uninitialized
+        memory
+111102  (comment #4)   Fixed 64-bit unclean "silly arg" message
+n-i-bz  vex x86->IR: unhandled instruction bytes: 0x14 0x0
+n-i-bz  minor umount/fcntl wrapper fixes
+111090  Internal Error running Massif
+101204  noisy warning
+111513  Illegal opcode for SSE instruction (x86 movups)
+111555  VEX/Makefile: CC is set to gcc
+n-i-bz  Fix XML bugs in FAQ
+
+(3.0.1: 29 August 05,
+        vex/branches/VEX_3_0_BRANCH r1367,
+        valgrind/branches/VALGRIND_3_0_BRANCH r4574).
+
+
+
+Release 3.0.0 (3 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.0.0 is a major overhaul of Valgrind.  The most significant user
+visible change is that Valgrind now supports architectures other than
+x86.  The new architectures it supports are AMD64 and PPC32, and the
+infrastructure is present for other architectures to be added later.
+
+AMD64 support works well, but has some shortcomings:
+
+- It generally won't be as solid as the x86 version.  For example,
+  support for more obscure instructions and system calls may be missing.
+  We will fix these as they arise.
+
+- Address space may be limited; see the point about
+  position-independent executables below.
+
+- If Valgrind is built on an AMD64 machine, it will only run 64-bit
+  executables.  If you want to run 32-bit x86 executables under Valgrind
+  on an AMD64, you will need to build Valgrind on an x86 machine and
+  copy it to the AMD64 machine.  And it probably won't work if you do
+  something tricky like exec'ing a 32-bit program from a 64-bit program
+  while using --trace-children=yes.  We hope to improve this situation
+  in the future.
+
+The PPC32 support is very basic.  It may not work reliably even for
+small programs, but it's a start.  Many thanks to Paul Mackerras for
+his great work that enabled this support.  We are working to make
+PPC32 usable as soon as possible.
+
+Other user-visible changes:
+
+- Valgrind is no longer built by default as a position-independent
+  executable (PIE), as this caused too many problems.
+
+  Without PIE enabled, AMD64 programs will only be able to access 2GB of
+  address space.  We will fix this eventually, but not for the moment.
+  
+  Use --enable-pie at configure-time to turn this on.
+
+- Support for programs that use stack-switching has been improved.  Use
+  the --max-stackframe flag for simple cases, and the
+  VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and
+  VALGRIND_STACK_CHANGE client requests for trickier cases.
+
+- Support for programs that use self-modifying code has been improved,
+  in particular programs that put temporary code fragments on the stack.
+  This helps for C programs compiled with GCC that use nested functions,
+  and also Ada programs.  This is controlled with the --smc-check
+  flag, although the default setting should work in most cases.
+
+- Output can now be printed in XML format.  This should make it easier
+  for tools such as GUI front-ends and automated error-processing
+  schemes to use Valgrind output as input.  The --xml flag controls this.
+  As part of this change, ELF directory information is read from executables,
+  so absolute source file paths are available if needed.
+
+- Programs that allocate many heap blocks may run faster, due to
+  improvements in certain data structures.
+
+- Addrcheck is currently not working.  We hope to get it working again
+  soon.  Helgrind is still not working, as was the case for the 2.4.0
+  release.
+
+- The JITter has been completely rewritten, and is now in a separate
+  library, called Vex.  This enabled a lot of the user-visible changes,
+  such as new architecture support.  The new JIT unfortunately translates
+  more slowly than the old one, so programs may take longer to start.
+  We believe the code quality is produces is about the same, so once
+  started, programs should run at about the same speed.  Feedback about
+  this would be useful.
+
+  On the plus side, Vex and hence Memcheck tracks value flow properly
+  through floating point and vector registers, something the 2.X line
+  could not do.  That means that Memcheck is much more likely to be
+  usably accurate on vectorised code.
+
+- There is a subtle change to the way exiting of threaded programs
+  is handled.  In 3.0, Valgrind's final diagnostic output (leak check,
+  etc) is not printed until the last thread exits.  If the last thread
+  to exit was not the original thread which started the program, any
+  other process wait()-ing on this one to exit may conclude it has
+  finished before the diagnostic output is printed.  This may not be
+  what you expect.  2.X had a different scheme which avoided this
+  problem, but caused deadlocks under obscure circumstances, so we
+  are trying something different for 3.0.
+
+- Small changes in control log file naming which make it easier to
+  use valgrind for debugging MPI-based programs.  The relevant
+  new flags are --log-file-exactly= and --log-file-qualifier=.
+
+- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding
+  support was added.  In principle this means Valgrind can produce
+  meaningful backtraces on x86 code compiled with -fomit-frame-pointer
+  providing you also compile your code with -fasynchronous-unwind-tables.
+
+- The documentation build system has been completely redone.
+  The documentation masters are now in XML format, and from that
+  HTML, PostScript and PDF documentation is generated.  As a result
+  the manual is now available in book form.  Note that the
+  documentation in the source tarballs is pre-built, so you don't need
+  any XML processing tools to build Valgrind from a tarball.
+
+Changes that are not user-visible:
+
+- The code has been massively overhauled in order to modularise it.
+  As a result we hope it is easier to navigate and understand.
+
+- Lots of code has been rewritten.
+
+BUGS FIXED:
+
+110046  sz == 4 assertion failed 
+109810  vex amd64->IR: unhandled instruction bytes: 0xA3 0x4C 0x70 0xD7
+109802  Add a plausible_stack_size command-line parameter ?
+109783  unhandled ioctl TIOCMGET (running hw detection tool discover) 
+109780  unhandled ioctl BLKSSZGET (running fdisk -l /dev/hda)
+109718  vex x86->IR: unhandled instruction: ffreep 
+109429  AMD64 unhandled syscall: 127 (sigpending)
+109401  false positive uninit in strchr from ld-linux.so.2
+109385  "stabs" parse failure 
+109378  amd64: unhandled instruction REP NOP
+109376  amd64: unhandled instruction LOOP Jb 
+109363  AMD64 unhandled instruction bytes 
+109362  AMD64 unhandled syscall: 24 (sched_yield)
+109358  fork() won't work with valgrind-3.0 SVN
+109332  amd64 unhandled instruction: ADC Ev, Gv
+109314  Bogus memcheck report on amd64
+108883  Crash; vg_memory.c:905 (vgPlain_init_shadow_range):
+        Assertion `vgPlain_defined_init_shadow_page()' failed.
+108349  mincore syscall parameter checked incorrectly 
+108059  build infrastructure: small update
+107524  epoll_ctl event parameter checked on EPOLL_CTL_DEL
+107123  Vex dies with unhandled instructions: 0xD9 0x31 0xF 0xAE
+106841  auxmap & openGL problems
+106713  SDL_Init causes valgrind to exit
+106352  setcontext and makecontext not handled correctly 
+106293  addresses beyond initial client stack allocation 
+        not checked in VALGRIND_DO_LEAK_CHECK
+106283  PIE client programs are loaded at address 0
+105831  Assertion `vgPlain_defined_init_shadow_page()' failed.
+105039  long run-times probably due to memory manager 
+104797  valgrind needs to be aware of BLKGETSIZE64
+103594  unhandled instruction: FICOM
+103320  Valgrind 2.4.0 fails to compile with gcc 3.4.3 and -O0
+103168  potentially memory leak in coregrind/ume.c 
+102039  bad permissions for mapped region at address 0xB7C73680
+101881  weird assertion problem
+101543  Support fadvise64 syscalls
+75247   x86_64/amd64 support (the biggest "bug" we have ever fixed)
+
+(3.0RC1: 27 July   05, vex r1303, valgrind r4283).
+(3.0.0:   3 August 05, vex r1313, valgrind r4316).
+
+
+
+Stable release 2.4.1 (1 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+(The notes for this release have been lost.  Sorry!  It would have
+contained various bug fixes but no new features.)
+
+
+
+Stable release 2.4.0 (March 2005) -- CHANGES RELATIVE TO 2.2.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.4.0 brings many significant changes and bug fixes.  The most
+significant user-visible change is that we no longer supply our own
+pthread implementation.  Instead, Valgrind is finally capable of
+running the native thread library, either LinuxThreads or NPTL.
+
+This means our libpthread has gone, along with the bugs associated
+with it.  Valgrind now supports the kernel's threading syscalls, and
+lets you use your standard system libpthread.  As a result:
+
+* There are many fewer system dependencies and strange library-related
+  bugs.  There is a small performance improvement, and a large
+  stability improvement.
+
+* On the downside, Valgrind can no longer report misuses of the POSIX
+  PThreads API.  It also means that Helgrind currently does not work.
+  We hope to fix these problems in a future release.
+
+Note that running the native thread libraries does not mean Valgrind
+is able to provide genuine concurrent execution on SMPs.  We still
+impose the restriction that only one thread is running at any given
+time.
+
+There are many other significant changes too:
+
+* Memcheck is (once again) the default tool.
+
+* The default stack backtrace is now 12 call frames, rather than 4.
+
+* Suppressions can have up to 25 call frame matches, rather than 4.
+
+* Memcheck and Addrcheck use less memory.  Under some circumstances,
+  they no longer allocate shadow memory if there are large regions of
+  memory with the same A/V states - such as an mmaped file.
+
+* The memory-leak detector in Memcheck and Addrcheck has been
+  improved.  It now reports more types of memory leak, including
+  leaked cycles.  When reporting leaked memory, it can distinguish
+  between directly leaked memory (memory with no references), and
+  indirectly leaked memory (memory only referred to by other leaked
+  memory).
+
+* Memcheck's confusion over the effect of mprotect() has been fixed:
+  previously mprotect could erroneously mark undefined data as
+  defined.
+
+* Signal handling is much improved and should be very close to what
+  you get when running natively.  
+
+  One result of this is that Valgrind observes changes to sigcontexts
+  passed to signal handlers.  Such modifications will take effect when
+  the signal returns.  You will need to run with --single-step=yes to
+  make this useful.
+
+* Valgrind is built in Position Independent Executable (PIE) format if
+  your toolchain supports it.  This allows it to take advantage of all
+  the available address space on systems with 4Gbyte user address
+  spaces.
+
+* Valgrind can now run itself (requires PIE support).
+
+* Syscall arguments are now checked for validity.  Previously all
+  memory used by syscalls was checked, but now the actual values
+  passed are also checked.
+
+* Syscall wrappers are more robust against bad addresses being passed
+  to syscalls: they will fail with EFAULT rather than killing Valgrind
+  with SIGSEGV.
+
+* Because clone() is directly supported, some non-pthread uses of it
+  will work.  Partial sharing (where some resources are shared, and
+  some are not) is not supported.
+
+* open() and readlink() on /proc/self/exe are supported.
+
+BUGS FIXED:
+
+88520   pipe+fork+dup2 kills the main program
+88604  Valgrind Aborts when using $VALGRIND_OPTS and user progra...
+88614  valgrind: vg_libpthread.c:2323 (read): Assertion `read_pt...
+88703  Stabs parser fails to handle ";"
+88886  ioctl wrappers for TIOCMBIS and TIOCMBIC
+89032  valgrind pthread_cond_timedwait fails
+89106  the 'impossible' happened
+89139  Missing sched_setaffinity & sched_getaffinity
+89198  valgrind lacks support for SIOCSPGRP and SIOCGPGRP
+89263  Missing ioctl translations for scsi-generic and CD playing
+89440  tests/deadlock.c line endings
+89481  `impossible' happened: EXEC FAILED
+89663  valgrind 2.2.0 crash on Redhat 7.2
+89792  Report pthread_mutex_lock() deadlocks instead of returnin...
+90111  statvfs64 gives invalid error/warning
+90128  crash+memory fault with stabs generated by gnat for a run...
+90778  VALGRIND_CHECK_DEFINED() not as documented in memcheck.h
+90834  cachegrind crashes at end of program without reporting re...
+91028  valgrind: vg_memory.c:229 (vgPlain_unmap_range): Assertio...
+91162  valgrind crash while debugging drivel 1.2.1
+91199  Unimplemented function
+91325  Signal routing does not propagate the siginfo structure
+91599  Assertion `cv == ((void *)0)'
+91604  rw_lookup clears orig and sends the NULL value to rw_new
+91821  Small problems building valgrind with $top_builddir ne $t...
+91844  signal 11 (SIGSEGV) at get_tcb (libpthread.c:86) in corec...
+92264  UNIMPLEMENTED FUNCTION: pthread_condattr_setpshared
+92331  per-target flags necessitate AM_PROG_CC_C_O
+92420  valgrind doesn't compile with linux 2.6.8.1/9
+92513  Valgrind 2.2.0 generates some warning messages
+92528  vg_symtab2.c:170 (addLoc): Assertion `loc->size > 0' failed.
+93096  unhandled ioctl 0x4B3A and 0x5601
+93117  Tool and core interface versions do not match
+93128  Can't run valgrind --tool=memcheck because of unimplement...
+93174  Valgrind can crash if passed bad args to certain syscalls
+93309  Stack frame in new thread is badly aligned
+93328  Wrong types used with sys_sigprocmask()
+93763  /usr/include/asm/msr.h is missing
+93776  valgrind: vg_memory.c:508 (vgPlain_find_map_space): Asser...
+93810  fcntl() argument checking a bit too strict
+94378  Assertion `tst->sigqueue_head != tst->sigqueue_tail' failed.
+94429  valgrind 2.2.0 segfault with mmap64 in glibc 2.3.3
+94645  Impossible happened: PINSRW mem
+94953  valgrind: the `impossible' happened: SIGSEGV
+95667  Valgrind does not work with any KDE app
+96243  Assertion 'res==0' failed
+96252  stage2 loader of valgrind fails to allocate memory
+96520  All programs crashing at _dl_start (in /lib/ld-2.3.3.so) ...
+96660  ioctl CDROMREADTOCENTRY causes bogus warnings
+96747  After looping in a segfault handler, the impossible happens
+96923  Zero sized arrays crash valgrind trace back with SIGFPE
+96948  valgrind stops with assertion failure regarding mmap2
+96966  valgrind fails when application opens more than 16 sockets
+97398  valgrind: vg_libpthread.c:2667 Assertion failed
+97407  valgrind: vg_mylibc.c:1226 (vgPlain_safe_fd): Assertion `...
+97427  "Warning: invalid file descriptor -1 in syscall close()" ...
+97785  missing backtrace
+97792  build in obj dir fails - autoconf / makefile cleanup
+97880  pthread_mutex_lock fails from shared library (special ker...
+97975  program aborts without ang VG messages
+98129  Failed when open and close file 230000 times using stdio
+98175  Crashes when using valgrind-2.2.0 with a program using al...
+98288  Massif broken
+98303  UNIMPLEMENTED FUNCTION pthread_condattr_setpshared
+98630  failed--compilation missing warnings.pm, fails to make he...
+98756  Cannot valgrind signal-heavy kdrive X server
+98966  valgrinding the JVM fails with a sanity check assertion
+99035  Valgrind crashes while profiling
+99142  loops with message "Signal 11 being dropped from thread 0...
+99195  threaded apps crash on thread start (using QThread::start...
+99348  Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_off...
+99568  False negative due to mishandling of mprotect
+99738  valgrind memcheck crashes on program that uses sigitimer
+99923  0-sized allocations are reported as leaks
+99949  program seg faults after exit()
+100036         "newSuperblock's request for 1048576 bytes failed"
+100116         valgrind: (pthread_cond_init): Assertion `sizeof(* cond) ...
+100486         memcheck reports "valgrind: the `impossible' happened: V...
+100833         second call to "mremap" fails with EINVAL
+101156         (vgPlain_find_map_space): Assertion `(addr & ((1 << 12)-1...
+101173         Assertion `recDepth >= 0 && recDepth < 500' failed
+101291         creating threads in a forked process fails
+101313         valgrind causes different behavior when resizing a window...
+101423         segfault for c++ array of floats
+101562         valgrind massif dies on SIGINT even with signal handler r...
+
+
+Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.2.0 brings nine months worth of improvements and bug fixes.  We
+believe it to be a worthy successor to 2.0.0.  There are literally
+hundreds of bug fixes and minor improvements.  There are also some
+fairly major user-visible changes:
+
+* A complete overhaul of handling of system calls and signals, and 
+  their interaction with threads.  In general, the accuracy of the 
+  system call, thread and signal simulations is much improved:
+
+  - Blocking system calls behave exactly as they do when running
+    natively (not on valgrind).  That is, if a syscall blocks only the
+    calling thread when running natively, than it behaves the same on
+    valgrind.  No more mysterious hangs because V doesn't know that some
+    syscall or other, should block only the calling thread.
+
+  - Interrupted syscalls should now give more faithful results.
+
+  - Signal contexts in signal handlers are supported.
+
+* Improvements to NPTL support to the extent that V now works 
+  properly on NPTL-only setups.
+
+* Greater isolation between Valgrind and the program being run, so
+  the program is less likely to inadvertently kill Valgrind by
+  doing wild writes.
+
+* Massif: a new space profiling tool.  Try it!  It's cool, and it'll
+  tell you in detail where and when your C/C++ code is allocating heap.
+  Draws pretty .ps pictures of memory use against time.  A potentially
+  powerful tool for making sense of your program's space use.
+
+* File descriptor leakage checks.  When enabled, Valgrind will print out
+  a list of open file descriptors on exit.
+
+* Improved SSE2/SSE3 support.
+
+* Time-stamped output; use --time-stamp=yes
+
+
+
+Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.2.0 is not much different from 2.1.2, released seven weeks ago.
+A number of bugs have been fixed, most notably #85658, which gave
+problems for quite a few people.  There have been many internal
+cleanups, but those are not user visible.
+
+The following bugs have been fixed since 2.1.2:
+
+85658   Assert in coregrind/vg_libpthread.c:2326 (open64) !=
+        (void*)0 failed
+        This bug was reported multiple times, and so the following
+        duplicates of it are also fixed: 87620, 85796, 85935, 86065, 
+        86919, 86988, 87917, 88156
+
+80716   Semaphore mapping bug caused by unmap (sem_destroy)
+        (Was fixed prior to 2.1.2)
+
+86987   semctl and shmctl syscalls family is not handled properly
+
+86696   valgrind 2.1.2 + RH AS2.1 + librt
+
+86730   valgrind locks up at end of run with assertion failure 
+        in __pthread_unwind
+
+86641   memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
+        (also fixes 74298, a duplicate of this)
+
+85947   MMX/SSE unhandled instruction 'sfence'
+
+84978   Wrong error "Conditional jump or move depends on
+        uninitialised value" resulting from "sbbl %reg, %reg"
+
+86254   ssort() fails when signed int return type from comparison is 
+        too small to handle result of unsigned int subtraction
+
+87089   memalign( 4, xxx) makes valgrind assert
+
+86407   Add support for low-level parallel port driver ioctls.
+
+70587   Add timestamps to Valgrind output? (wishlist)
+
+84937   vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
+        (fixed prior to 2.1.2)
+
+86317   cannot load libSDL-1.2.so.0 using valgrind
+
+86989   memcpy from mac_replace_strmem.c complains about
+        uninitialized pointers passed when length to copy is zero
+
+85811   gnu pascal symbol causes segmentation fault; ok in 2.0.0
+
+79138   writing to sbrk()'d memory causes segfault
+
+77369   sched deadlock while signal received during pthread_join
+        and the joined thread exited
+
+88115   In signal handler for SIGFPE,  siginfo->si_addr is wrong 
+        under Valgrind
+
+78765   Massif crashes on app exit if FP exceptions are enabled
+
+Additionally there are the following changes, which are not 
+connected to any bug report numbers, AFAICS:
+
+* Fix scary bug causing mis-identification of SSE stores vs
+  loads and so causing memcheck to sometimes give nonsense results
+  on SSE code.
+
+* Add support for the POSIX message queue system calls.
+
+* Fix to allow 32-bit Valgrind to run on AMD64 boxes.  Note: this does
+  NOT allow Valgrind to work with 64-bit executables - only with 32-bit
+  executables on an AMD64 box.
+
+* At configure time, only check whether linux/mii.h can be processed 
+  so that we don't generate ugly warnings by trying to compile it.
+
+* Add support for POSIX clocks and timers.
+
+
+
+Developer (cvs head) release 2.1.2 (18 July 2004)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.1.2 contains four months worth of bug fixes and refinements.
+Although officially a developer release, we believe it to be stable
+enough for widespread day-to-day use.  2.1.2 is pretty good, so try it
+first, although there is a chance it won't work.  If so then try 2.0.0
+and tell us what went wrong."  2.1.2 fixes a lot of problems present
+in 2.0.0 and is generally a much better product.
+
+Relative to 2.1.1, a large number of minor problems with 2.1.1 have
+been fixed, and so if you use 2.1.1 you should try 2.1.2.  Users of
+the last stable release, 2.0.0, might also want to try this release.
+
+The following bugs, and probably many more, have been fixed.  These
+are listed at http://bugs.kde.org.  Reporting a bug for valgrind in
+the http://bugs.kde.org is much more likely to get you a fix than
+mailing developers directly, so please continue to keep sending bugs
+there.
+
+76869   Crashes when running any tool under Fedora Core 2 test1
+        This fixes the problem with returning from a signal handler 
+        when VDSOs are turned off in FC2.
+
+69508   java 1.4.2 client fails with erroneous "stack size too small".
+        This fix makes more of the pthread stack attribute related 
+        functions work properly.  Java still doesn't work though.
+
+71906   malloc alignment should be 8, not 4
+        All memory returned by malloc/new etc is now at least
+        8-byte aligned.
+
+81970   vg_alloc_ThreadState: no free slots available
+        (closed because the workaround is simple: increase
+         VG_N_THREADS, rebuild and try again.)
+
+78514   Conditional jump or move depends on uninitialized value(s)
+        (a slight mishanding of FP code in memcheck)
+
+77952   pThread Support (crash) (due to initialisation-ordering probs)
+        (also 85118)
+
+80942   Addrcheck wasn't doing overlap checking as it should.
+78048   return NULL on malloc/new etc failure, instead of asserting
+73655   operator new() override in user .so files often doesn't get picked up
+83060   Valgrind does not handle native kernel AIO
+69872   Create proper coredumps after fatal signals
+82026   failure with new glibc versions: __libc_* functions are not exported
+70344   UNIMPLEMENTED FUNCTION: tcdrain 
+81297   Cancellation of pthread_cond_wait does not require mutex
+82872   Using debug info from additional packages (wishlist)
+83025   Support for ioctls FIGETBSZ and FIBMAP
+83340   Support for ioctl HDIO_GET_IDENTITY
+79714   Support for the semtimedop system call.
+77022   Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
+82098   hp2ps ansification (wishlist)
+83573   Valgrind SIGSEGV on execve
+82999   show which cmdline option was erroneous (wishlist)
+83040   make valgrind VPATH and distcheck-clean (wishlist)
+83998   Assertion `newfd > vgPlain_max_fd' failed (see below)
+82722   Unchecked mmap in as_pad leads to mysterious failures later
+78958   memcheck seg faults while running Mozilla 
+85416   Arguments with colon (e.g. --logsocket) ignored
+
+
+Additionally there are the following changes, which are not 
+connected to any bug report numbers, AFAICS:
+
+* Rearranged address space layout relative to 2.1.1, so that
+  Valgrind/tools will run out of memory later than currently in many
+  circumstances.  This is good news esp. for Calltree.  It should
+  be possible for client programs to allocate over 800MB of
+  memory when using memcheck now.
+
+* Improved checking when laying out memory.  Should hopefully avoid
+  the random segmentation faults that 2.1.1 sometimes caused.
+
+* Support for Fedora Core 2 and SuSE 9.1.  Improvements to NPTL
+  support to the extent that V now works properly on NPTL-only setups.
+
+* Renamed the following options:
+  --logfile-fd  -->  --log-fd
+  --logfile     -->  --log-file
+  --logsocket   -->  --log-socket
+  to be consistent with each other and other options (esp. --input-fd).
+
+* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
+  improve the checking of other interface related ioctls.
+
+* Fix building with gcc-3.4.1.
+
+* Remove limit on number of semaphores supported.
+
+* Add support for syscalls: set_tid_address (258), acct (51).
+
+* Support instruction "repne movs" -- not official but seems to occur.
+
+* Implement an emulated soft limit for file descriptors in addition to
+  the current reserved area, which effectively acts as a hard limit. The
+  setrlimit system call now simply updates the emulated limits as best
+  as possible - the hard limit is not allowed to move at all and just
+  returns EPERM if you try and change it.  This should stop reductions
+  in the soft limit causing assertions when valgrind tries to allocate
+  descriptors from the reserved area.
+  (This actually came from bug #83998).
+
+* Major overhaul of Cachegrind implementation.  First user-visible change
+  is that cachegrind.out files are now typically 90% smaller than they
+  used to be;  code annotation times are correspondingly much smaller.
+  Second user-visible change is that hit/miss counts for code that is
+  unloaded at run-time is no longer dumped into a single "discard" pile,
+  but accurately preserved.
+
+* Client requests for telling valgrind about memory pools.
+
+
+
+Developer (cvs head) release 2.1.1 (12 March 2004)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.1.1 contains some internal structural changes needed for V's
+long-term future.  These don't affect end-users.  Most notable
+user-visible changes are:
+
+* Greater isolation between Valgrind and the program being run, so
+  the program is less likely to inadvertently kill Valgrind by
+  doing wild writes.
+
+* Massif: a new space profiling tool.  Try it!  It's cool, and it'll
+  tell you in detail where and when your C/C++ code is allocating heap.
+  Draws pretty .ps pictures of memory use against time.  A potentially
+  powerful tool for making sense of your program's space use.
+
+* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
+  various signal/syscall things, and various problems with debug
+  info readers.
+
+* Support for glibc-2.3.3 based systems.
+
+We are now doing automatic overnight build-and-test runs on a variety
+of distros.  As a result, we believe 2.1.1 builds and runs on:
+Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
+
+
+The following bugs, and probably many more, have been fixed.  These
+are listed at http://bugs.kde.org.  Reporting a bug for valgrind in
+the http://bugs.kde.org is much more likely to get you a fix than
+mailing developers directly, so please continue to keep sending bugs
+there.
+
+69616   glibc 2.3.2 w/NPTL is massively different than what valgrind expects 
+69856   I don't know how to instrument MMXish stuff (Helgrind)
+73892   valgrind segfaults starting with Objective-C debug info 
+        (fix for S-type stabs)
+73145   Valgrind complains too much about close(<reserved fd>) 
+73902   Shadow memory allocation seems to fail on RedHat 8.0 
+68633   VG_N_SEMAPHORES too low (V itself was leaking semaphores)
+75099   impossible to trace multiprocess programs 
+76839   the `impossible' happened: disInstr: INT but not 0x80 ! 
+76762   vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed. 
+76747   cannot include valgrind.h in c++ program 
+76223   parsing B(3,10) gave NULL type => impossible happens 
+75604   shmdt handling problem 
+76416   Problems with gcc 3.4 snap 20040225 
+75614   using -gstabs when building your programs the `impossible' happened
+75787   Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
+75294   gcc 3.4 snapshot's libstdc++ have unsupported instructions. 
+        (REP RET)
+73326   vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed. 
+72596   not recognizing __libc_malloc 
+69489   Would like to attach ddd to running program 
+72781   Cachegrind crashes with kde programs 
+73055   Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
+73026   Descriptor leak check reports port numbers wrongly 
+71705   README_MISSING_SYSCALL_OR_IOCTL out of date 
+72643   Improve support for SSE/SSE2 instructions 
+72484   valgrind leaves it's own signal mask in place when execing 
+72650   Signal Handling always seems to restart system calls 
+72006   The mmap system call turns all errors in ENOMEM 
+71781   gdb attach is pretty useless 
+71180   unhandled instruction bytes: 0xF 0xAE 0x85 0xE8 
+69886   writes to zero page cause valgrind to assert on exit 
+71791   crash when valgrinding gimp 1.3 (stabs reader problem)
+69783   unhandled syscall: 218 
+69782   unhandled instruction bytes: 0x66 0xF 0x2B 0x80 
+70385   valgrind fails if the soft file descriptor limit is less 
+        than about 828
+69529   "rep; nop" should do a yield 
+70827   programs with lots of shared libraries report "mmap failed" 
+        for some of them when reading symbols 
+71028   glibc's strnlen is optimised enough to confuse valgrind 
+
+
+
+
+Unstable (cvs head) release 2.1.0 (15 December 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
+(Julian).  It looks eminently usable, and given that it fixes some
+significant bugs, may well be worth using on a day-to-day basis.
+2.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
+8.2, RedHat 8.
+
+2.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
+handling of system calls and signals, and their interaction with
+threads.  In general, the accuracy of the system call, thread and
+signal simulations is much improved.  Specifically:
+
+- Blocking system calls behave exactly as they do when running
+  natively (not on valgrind).  That is, if a syscall blocks only the
+  calling thread when running natively, than it behaves the same on
+  valgrind.  No more mysterious hangs because V doesn't know that some
+  syscall or other, should block only the calling thread.
+
+- Interrupted syscalls should now give more faithful results.
+
+- Finally, signal contexts in signal handlers are supported.  As a
+  result, konqueror on SuSE 9 no longer segfaults when notified of
+  file changes in directories it is watching.
+
+Other changes:
+
+- Robert Walsh's file descriptor leakage checks.  When enabled,
+  Valgrind will print out a list of open file descriptors on
+  exit.  Along with each file descriptor, Valgrind prints out a stack
+  backtrace of where the file was opened and any details relating to the
+  file descriptor such as the file name or socket details.
+  To use, give: --track-fds=yes
+
+- Implemented a few more SSE/SSE2 instructions.
+
+- Less crud on the stack when you do 'where' inside a GDB attach.
+
+- Fixed the following bugs:
+  68360: Valgrind does not compile against 2.6.0-testX kernels
+  68525: CVS head doesn't compile on C90 compilers
+  68566: pkgconfig support (wishlist)
+  68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
+  69140: valgrind not able to explicitly specify a path to a binary. 
+  69432: helgrind asserts encountering a MutexErr when there are 
+         EraserErr suppressions
+
+- Increase the max size of the translation cache from 200k average bbs
+  to 300k average bbs.  Programs on the size of OOo (680m17) are
+  thrashing the cache at the smaller size, creating large numbers of
+  retranslations and wasting significant time as a result.
+
+
+
+Stable release 2.0.0 (5 Nov 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+2.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
+improves support for SuSE 9 and the Red Hat "Severn" beta.
+
+- Further improvements to SSE/SSE2 support.  The entire test suite of
+  the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
+  20030307Z '-g -O -xW' now works.  I think this gives pretty good
+  coverage of SSE/SSE2 floating point instructions, or at least the
+  subset emitted by Icc.
+
+- Also added support for the following instructions:
+    MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
+    PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
+
+- CFI support for GDB version 6.  Needed to enable newer GDBs
+  to figure out where they are when using --gdb-attach=yes.
+
+- Fix this:
+      mc_translate.c:1091 (memcheck_instrument): Assertion
+      `u_in->size == 4 || u_in->size == 16' failed.
+
+- Return an error rather than panicing when given a bad socketcall.
+
+- Fix checking of syscall rt_sigtimedwait().
+
+- Implement __NR_clock_gettime (syscall 265).  Needed on Red Hat Severn.
+
+- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
+  bytes long, when it could be shorter, which could cause false
+  positives.
+
+- Support use of select() for very large numbers of file descriptors.
+
+- Don't fail silently if the executable is statically linked, or is
+  setuid/setgid. Print an error message instead.
+
+- Support for old DWARF-1 format line number info.
+
+
+
+Snapshot 20031012 (12 October 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Three months worth of bug fixes, roughly.  Most significant single
+change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
+
+20031012 builds on Red Hat Fedora ("Severn") but doesn't really work
+(curiously, mozilla runs OK, but a modest "ls -l" bombs).  I hope to
+get a working version out soon.  It may or may not work ok on the
+forthcoming SuSE 9; I hear positive noises about it but haven't been
+able to verify this myself (not until I get hold of a copy of 9).
+
+A detailed list of changes, in no particular order:
+
+- Describe --gen-suppressions in the FAQ.
+
+- Syscall __NR_waitpid supported.
+
+- Minor MMX bug fix.
+
+- -v prints program's argv[] at startup.
+
+- More glibc-2.3 suppressions.
+
+- Suppressions for stack underrun bug(s) in the c++ support library
+  distributed with Intel Icc 7.0.
+
+- Fix problems reading /proc/self/maps.
+
+- Fix a couple of messages that should have been suppressed by -q, 
+  but weren't.
+
+- Make Addrcheck understand "Overlap" suppressions.
+
+- At startup, check if program is statically linked and bail out if so.
+
+- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
+
+- Memcheck/addrcheck: minor speed optimisations
+
+- Handle syscall __NR_brk more correctly than before.
+
+- Fixed incorrect allocate/free mismatch errors when using
+  operator new(unsigned, std::nothrow_t const&)
+  operator new[](unsigned, std::nothrow_t const&)
+
+- Support POSIX pthread spinlocks.
+
+- Fixups for clean compilation with gcc-3.3.1.
+
+- Implemented more opcodes: 
+    - push %es
+    - push %ds
+    - pop %es
+    - pop %ds
+    - movntq
+    - sfence
+    - pshufw
+    - pavgb
+    - ucomiss
+    - enter
+    - mov imm32, %esp
+    - all "in" and "out" opcodes
+    - inc/dec %esp
+    - A whole bunch of SSE/SSE2 instructions
+
+- Memcheck: don't bomb on SSE/SSE2 code.
+
+
+Snapshot 20030725 (25 July 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Fixes some minor problems in 20030716.
+
+- Fix bugs in overlap checking for strcpy/memcpy etc.
+
+- Do overlap checking with Addrcheck as well as Memcheck.
+
+- Fix this:
+      Memcheck: the `impossible' happened:
+      get_error_name: unexpected type
+
+- Install headers needed to compile new skins.
+
+- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
+  passed to non-traced children.
+
+- Fix file descriptor leak in valgrind-listener.
+
+- Fix longstanding bug in which the allocation point of a 
+  block resized by realloc was not correctly set.  This may
+  have caused confusing error messages.
+
+
+Snapshot 20030716 (16 July 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+20030716 is a snapshot of our current CVS head (development) branch.
+This is the branch which will become valgrind-2.0.  It contains
+significant enhancements over the 1.9.X branch.
+
+Despite this being a snapshot of the CVS head, it is believed to be
+quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
+-- and therefore suitable for widespread use.  Please let us know asap
+if it causes problems for you.
+
+Two reasons for releasing a snapshot now are:
+
+- It's been a while since 1.9.6, and this snapshot fixes
+  various problems that 1.9.6 has with threaded programs 
+  on glibc-2.3.X based systems.
+
+- So as to make available improvements in the 2.0 line.
+
+Major changes in 20030716, as compared to 1.9.6:
+
+- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
+  systems (SuSE 8.2, Red Hat 9).  If you have had problems
+  with inconsistent/illogical behaviour of errno, h_errno or the DNS
+  resolver functions in threaded programs, 20030716 should improve
+  matters.  This snapshot seems stable enough to run OpenOffice.org
+  1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
+  threaded app if ever I saw one.
+
+- Automatic generation of suppression records; you no longer
+  need to write them by hand.  Use --gen-suppressions=yes.
+
+- strcpy/memcpy/etc check their arguments for overlaps, when
+  running with the Memcheck or Addrcheck skins.
+
+- malloc_usable_size() is now supported.
+
+- new client requests:
+    - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS: 
+      useful with regression testing
+    - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions 
+      on real CPU (use with caution!)
+
+- The GDB attach mechanism is more flexible.  Allow the GDB to
+  be run to be specified by --gdb-path=/path/to/gdb, and specify
+  which file descriptor V will read its input from with
+  --input-fd=<number>.
+
+- Cachegrind gives more accurate results (wasn't tracking instructions in
+  malloc() and friends previously, is now).
+
+- Complete support for the MMX instruction set.
+
+- Partial support for the SSE and SSE2 instruction sets.  Work for this
+  is ongoing.  About half the SSE/SSE2 instructions are done, so
+  some SSE based programs may work.  Currently you need to specify
+  --skin=addrcheck.  Basically not suitable for real use yet.
+
+- Significant speedups (10%-20%) for standard memory checking.
+
+- Fix assertion failure in pthread_once().
+
+- Fix this:
+    valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select): 
+              Assertion `ms_end >= ms_now' failed.
+
+- Implement pthread_mutexattr_setpshared.
+
+- Understand Pentium 4 branch hints.  Also implemented a couple more
+  obscure x86 instructions.
+
+- Lots of other minor bug fixes.
+
+- We have a decent regression test system, for the first time.
+  This doesn't help you directly, but it does make it a lot easier
+  for us to track the quality of the system, especially across
+  multiple linux distributions.  
+
+  You can run the regression tests with 'make regtest' after 'make
+  install' completes.  On SuSE 8.2 and Red Hat 9 I get this:
+     == 84 tests, 0 stderr failures, 0 stdout failures ==
+
+  On Red Hat 8, I get this:
+
+     == 84 tests, 2 stderr failures, 1 stdout failure ==
+     corecheck/tests/res_search               (stdout)
+     memcheck/tests/sigaltstack               (stderr)
+
+  sigaltstack is probably harmless.  res_search doesn't work
+  on R H 8 even running natively, so I'm not too worried.   
+
+  On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
+
+     == 84 tests, 2 stderr failures, 1 stdout failure ==
+     corecheck/tests/pth_atfork1              (stdout)
+     corecheck/tests/pth_atfork1              (stderr)
+     memcheck/tests/sigaltstack               (stderr)
+
+  You need to run on a PII system, at least, since some tests
+  contain P6-specific instructions, and the test machine needs
+  access to the internet so that corecheck/tests/res_search
+  (a test that the DNS resolver works) can function.
+
+As ever, thanks for the vast amount of feedback :) and bug reports :(
+We may not answer all messages, but we do at least look at all of
+them, and tend to fix the most frequently reported bugs.
+
+
+
+Version 1.9.6 (7 May 2003 or thereabouts)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Major changes in 1.9.6:
+
+- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
+  RedHat 9, to name but two ...)  It turned out that 1.9.5
+  had problems with threading support on glibc >= 2.3.2,
+  usually manifested by threaded programs deadlocking in system calls,
+  or running unbelievably slowly.  Hopefully these are fixed now.  1.9.6
+  is the first valgrind which gives reasonable support for
+  glibc-2.3.2.  Also fixed a 2.3.2 problem with pthread_atfork().
+
+- Majorly expanded FAQ.txt.  We've added workarounds for all
+  common problems for which a workaround is known.
+
+Minor changes in 1.9.6:
+
+- Fix identification of the main thread's stack.  Incorrect
+  identification of it was causing some on-stack addresses to not get
+  identified as such.  This only affected the usefulness of some error
+  messages; the correctness of the checks made is unchanged.
+
+- Support for kernels >= 2.5.68.
+
+- Dummy implementations of __libc_current_sigrtmin, 
+  __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
+  good enough to keep alive programs which previously died for lack of
+  them.
+
+- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
+
+- Fix bug in the DWARF2 debug line info loader, when instructions 
+  following each other have source lines far from each other 
+  (e.g. with inlined functions).
+
+- Debug info reading: read symbols from both "symtab" and "dynsym"
+  sections, rather than merely from the one that comes last in the
+  file.
+
+- New syscall support: prctl(), creat(), lookup_dcookie().
+
+- When checking calls to accept(), recvfrom(), getsocketopt(),
+  don't complain if buffer values are NULL.
+
+- Try and avoid assertion failures in
+  mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
+
+- Minor bug fixes in cg_annotate.
+
+
+
+Version 1.9.5 (7 April 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It occurs to me that it would be helpful for valgrind users to record
+in the source distribution the changes in each release.  So I now
+attempt to mend my errant ways :-)  Changes in this and future releases
+will be documented in the NEWS file in the source distribution.
+
+Major changes in 1.9.5:
+
+- (Critical bug fix): Fix a bug in the FPU simulation.  This was
+  causing some floating point conditional tests not to work right.
+  Several people reported this.  If you had floating point code which
+  didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
+
+- Partial support for Red Hat 9.  RH9 uses the new Native Posix 
+  Threads Library (NPTL), instead of the older LinuxThreads.  
+  This potentially causes problems with V which will take some
+  time to correct.  In the meantime we have partially worked around
+  this, and so 1.9.5 works on RH9.  Threaded programs still work,
+  but they may deadlock, because some system calls (accept, read,
+  write, etc) which should be nonblocking, in fact do block.  This
+  is a known bug which we are looking into.
+
+  If you can, your best bet (unfortunately) is to avoid using 
+  1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
+  If your glibc is 2.3.1 or earlier, you're almost certainly OK.
+
+Minor changes in 1.9.5:
+
+- Added some #errors to valgrind.h to ensure people don't include
+  it accidentally in their sources.  This is a change from 1.0.X
+  which was never properly documented.  The right thing to include
+  is now memcheck.h.  Some people reported problems and strange
+  behaviour when (incorrectly) including valgrind.h in code with 
+  1.9.1 -- 1.9.4.  This is no longer possible.
+
+- Add some __extension__ bits and pieces so that gcc configured
+  for valgrind-checking compiles even with -Werror.  If you
+  don't understand this, ignore it.  Of interest to gcc developers
+  only.
+
+- Removed a pointless check which caused problems interworking 
+  with Clearcase.  V would complain about shared objects whose
+  names did not end ".so", and refuse to run.  This is now fixed.
+  In fact it was fixed in 1.9.4 but not documented.
+
+- Fixed a bug causing an assertion failure of "waiters == 1"
+  somewhere in vg_scheduler.c, when running large threaded apps,
+  notably MySQL.
+
+- Add support for the munlock system call (124).
+
+Some comments about future releases:
+
+1.9.5 is, we hope, the most stable Valgrind so far.  It pretty much
+supersedes the 1.0.X branch.  If you are a valgrind packager, please
+consider making 1.9.5 available to your users.  You can regard the
+1.0.X branch as obsolete: 1.9.5 is stable and vastly superior.  There
+are no plans at all for further releases of the 1.0.X branch.
+
+If you want a leading-edge valgrind, consider building the cvs head
+(from SourceForge), or getting a snapshot of it.  Current cool stuff
+going in includes MMX support (done); SSE/SSE2 support (in progress),
+a significant (10-20%) performance improvement (done), and the usual
+large collection of minor changes.  Hopefully we will be able to
+improve our NPTL support, but no promises.
+
index bf024aca7374758be8ea4619c91e0fec3bcfd20b..451ec48c07bf6008615a97753157ba53d0a0e834 100755 (executable)
 # Also set the (expected/last) release date here.
 # Do not forget to rerun ./autogen.sh
 m4_define([v_major_ver], [3])
-m4_define([v_minor_ver], [22])
+m4_define([v_minor_ver], [23])
 m4_define([v_micro_ver], [0])
-m4_define([v_suffix_ver], [])
-m4_define([v_rel_date], ["31 Oct 2023"])
+m4_define([v_suffix_ver], [GIT])
+m4_define([v_rel_date], ["?? Apr 2024"])
 m4_define([v_version],
          m4_if(v_suffix_ver, [],
                [v_major_ver.v_minor_ver.v_micro_ver],
This page took 0.296126 seconds and 5 git commands to generate.