Subject: CVS commit: pkgsrc/devel/valgrind
From: Michael Forney
Date: 2020-10-08 05:30:58
Message id: 20201008033058.AD1DAFB28@cvs.NetBSD.org

Log Message:
valgrind: update to 3.16.1

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.

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]".

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.

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.

Files:
RevisionActionfile
1.33modifypkgsrc/devel/valgrind/Makefile
1.12modifypkgsrc/devel/valgrind/PLIST
1.2modifypkgsrc/devel/valgrind/PLIST.Darwin
1.11modifypkgsrc/devel/valgrind/distinfo
1.3addpkgsrc/devel/valgrind/patches/patch-configure