We are pleased to announce a new release of Valgrind, version 3.16.1, available from http://valgrind.org/downloads/current.html. The source tarball is signed with the PGP key at the bottom of this message.
3.16.1 updates support for existing platforms and reduces Memcheck's false positive rate on optimised code generated by Clang and GCC. There are, as ever, many refinements and bug fixes. The release notes below give more details. A 3.16.0 tarball does exist, but was never announced due to the late discovery of two critical bugs in it. These are fixed in 3.16.1. We recommend you use or distribute 3.16.1 and not 3.16.0. Our thanks to all those who contribute to Valgrind's development. This release represents a great deal of time, energy and effort on the part of many people. Happy and productive debugging and profiling, -- The Valgrind Developers 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 experimental 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 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 (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) -----BEGIN PGP PUBLIC KEY BLOCK----- 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 xn/APcV8iSUjgKGcnQfuhhayxQk= =C8ND -----END PGP PUBLIC KEY BLOCK----- _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users