ppc test_dfp2 build fix for GCC 15
[valgrind.git] / NEWS
blob5c576ff33e4c6679126dcf5305ba38df936a0c05
1 Release 3.25.0 (?? Apr 2025)
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
5 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
6 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
7 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
8 and ARM64/FreeBSD  There is also preliminary support for X86/macOS 10.13,
9 AMD64/macOS 10.13 and nanoMIPS/Linux.
11 * ==================== CORE CHANGES ===================
13 * The valgrind gdbserver now supports the GDB remote protocol packet
14   'x addr,len' (available in GDB release >= 16).
15   The x packet can reduce the time taken by GDB to read memory from valgrind.
17 * ================== PLATFORM CHANGES =================
19 * ==================== TOOL CHANGES ===================
21 * ==================== FIXED BUGS ====================
23 The following bugs have been fixed or resolved.  Note that "n-i-bz"
24 stands for "not in bugzilla" -- that is, a bug that was reported to us
25 but never got a bugzilla entry.  We encourage you to file bugs in
26 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
27 than mailing the developers (or mailing lists) directly -- bugs that
28 are not entered into bugzilla tend to get forgotten about or ignored.
30 489913  WARNING: unhandled amd64-linux syscall: 444 (landlock_create_ruleset)
31 494246  syscall fsopen not wrapped
32 494327  Crash when running Helgrind built with #define TRACE_PTH_FNS 1
33 494337  All threaded applications cause still holding lock errors
34 495488  Add FreeBSD getrlimitusage syscall wrapper
35 496571  False positive for null key passed to bpf_map_get_next_key syscall.
36 469782  Valgrind does not support zstd-compressed debug sections
37 497130  Recognize new DWARF5 DW_LANG constants
38 497455  Update drd/scripts/download-and-build-gcc
39 497723  Enabling Ada demangling breaks callgrind differentiation between
40         overloaded functions and procedures
41 498317  FdBadUse is not a valid CoreError type in a suppression
42         even though it's generated by --gen-suppressions=yes
43 498143  False positive on EVIOCGRAB ioctl
44 498492  none/tests/amd64/lzcnt64 crashes on FreeBSD compiled with clang
46 To see details of a given bug, visit
47   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
48 where XXXXXX is the bug number as listed above.
51 Release 3.24.0 (31 Oct 2024)
52 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
55 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
56 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
57 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
58 and ARM64/FreeBSD  There is also preliminary support for X86/macOS 10.13,
59 AMD64/macOS 10.13 and nanoMIPS/Linux.
61 * ==================== CORE CHANGES ===================
63 * Bad file descriptor usage now generates a real error with
64   --track-fds=yes that is suppressible and shows up in the xml output
65   with full execution backtrace. The warnings shown without using the
66   option are deprecated and will be removed in a future valgrind
67   version.
69 * Ada name demangling is now supported in error messages.
71 * ================== PLATFORM CHANGES =================
73 * S390X added support for the DFLTCC instruction provided by the
74   deflate-conversion facility (z15/arch13).
76 * S390X added support for the instructions provided by the MSA facility
77   and MSA extensions 1-9.
79 * ==================== TOOL CHANGES ===================
81 * ==================== FIXED BUGS ====================
83 The following bugs have been fixed or resolved.  Note that "n-i-bz"
84 stands for "not in bugzilla" -- that is, a bug that was reported to us
85 but never got a bugzilla entry.  We encourage you to file bugs in
86 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
87 than mailing the developers (or mailing lists) directly -- bugs that
88 are not entered into bugzilla tend to get forgotten about or ignored.
90 202770  open fd at exit --log-socket=127.0.0.1:1500 with --track-fds=yes
91 276780  An instruction in fftw (Fast Fourier Transform) is unhandled by
92         valgrind: vex x86->IR: unhandled instruction bytes:
93         0x66 0xF 0x3A 0x2
94 311655  --log-file=FILE leads to apparent fd leak
95 317127  Fedora18/x86_64 --sanity-level=3 : aspacem segment mismatch
96 337388  fcntl works on Valgrind's own file descriptors
97 377966  arm64 unhandled instruction dc zva392146  aarch64: unhandled
98         instruction 0xD5380001 (MRS rT, midr_el1)
99 391148  Unhandled AVX instruction vmovq %xmm9,%xmm1
100 392146  aarch64: unhandled instruction 0xD5380001 (MRS rT, midr_el1)
101 412377  SIGILL on cache flushes on arm64
102 417572  vex amd64->IR: unhandled instruction bytes: 0xC5 0x79 0xD6 0xED 0xC5
103 440180  s390x: Failed assertion in disassembler
104 444781  MIPS: wrong syscall numbers used
105 447989  Support Armv8.2 SHA-512 instructions
106 445235  Java/Ada/D demangling is probably broken
107 453044  gbserver_tests failures in aarch64
108 479661  Valgrind leaks file descriptors
109 486180  [Valgrind][MIPS] 'VexGuestArchState' has no member named
110         'guest_IP_AT_SYSCALL'
111 486293  memccpy false positives
112 486569  linux inotify_init syscall wrapper missing POST entry in syscall_table
113 487439  SIGILL in JDK11, JDK17
114 487993  Alignment error when using Eigen with Valgrind and -m32
115 488026  Use of `sizeof` instead of `strlen
116 488379  --track-fds=yes errors that cannot be suppressed with --xml-file=
117 488441  Add tests for --track-fds=yes --xml=yes and fd suppression tests
118 489040  massif trace change to show the location increasing the stack
119 489088  Valgrind throws unhandled instruction bytes: 0xC5 0x79 0xD6 0xE0 0xC5
120 489338  arm64: Instruction fcvtas should round 322.5 to 323, but result is 322.
121 489676  vgdb handle EINTR and EAGAIN more consistently
122 490651  Stop using -flto-partition=one
123 491394  (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map &&
124         di->fsm.rw_map_count' failed
125 492210  False positive on x86/amd64 with ZF taken directly from addition
126 492214  statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11
127         but not supported in valgrind
128 492422  Please support DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
129 492663  Valgrind ignores debug info for some binaries
130 493418  Add bad fd usage errors for --track-fds in ML_(fd_allowed)
131 493454  Missing FUSE_COMPATIBLE_MAY_BLOCK markers
132 493507  direct readlink syscall from PRE handler is incompatible with
133         FUSE_COMPATIBLE_MAY_BLOCK
134 493959  s390x: Fix regtest failure for none/tests/s390x/op00
135 493970  s390x: Store/restore FPC upon helper call causes slowdown
136 494218  Remove FREEBSD_VERS from configure and build
137 494252  s390x: incorrect disassembly for LOCHI and friends
138 494960  Fixes and tweaks for gsl19test
139 495278  PowerPC instruction dcbf should allow the L field values of 4, 6 on
140         ISA 3.0 and earlier, just ignore the value
141 495469  aligned_alloc and posix_memalign missing MALLOC_TRACE with returned
142         pointer
143 495470  s390x: 3.24.0.RC1 missing file and regtest failure
144 n-i-bz  Improve messages for sigaltstack errors, use specific
145         stack_t member names
147 To see details of a given bug, visit
148   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
149 where XXXXXX is the bug number as listed above.
151 (3.24.0.RC1: 27 Oct 2024)
154 Release 3.23.0 (26 Apr 2024)
155 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
158 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
159 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
160 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
161 and ARM64/FreeBSD  There is also preliminary support for X86/macOS 10.13,
162 AMD64/macOS 10.13 and nanoMIPS/Linux.
164 * ==================== CORE CHANGES ===================
166 * --track-fds=yes will now also warn about double closing of file
167   descriptors. Printing the context where the file descriptor was
168   originally opened and where it was previously closed.
170 * --track-fds=yes also produces "real" errors now which can be
171   suppressed and work with --error-exitcode. When combined with
172   --xml the xml-output now also includes FdBadClose and FdNotClosed
173   error kinds (see docs/internals/xml-output-protocol5.txt).
175 * The option --show-error-list=no|yes now accepts a new value all.
176   This indicates to also print the suppressed errors.
177   This is useful to analyse which errors are suppressed by which
178   suppression entries.
179   The valgrind monitor command 'v.info all_errors' similarly now
180   accepts a new optional argument 'also_suppressed' to show
181   all errors including the suppressed errors.
183 * ================== PLATFORM CHANGES =================
185 * Added ARM64 support for FreeBSD.
187 * ARM64 now supports dotprod instructions (sdot/udot).
189 * AMD64 better supports code build with -march=x86-64-v3.
190   fused-multiple-add instructions (fma) are now emulated more
191   accurately. And memcheck now handles __builtin_strcmp using 128/256
192   bit vectors with sse4.1, avx/avx2.
194 * S390X added support for NNPA (neural network processing assist)
195   facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and
196   NNPA (z16/arch14).
198 * X86 recognizes new binutils-2.42 nop patterns.
200 * ==================== TOOL CHANGES ===================
202 * The none tool now also supports xml output.
204 * ==================== FIXED BUGS ====================
206 The following bugs have been fixed or resolved.  Note that "n-i-bz"
207 stands for "not in bugzilla" -- that is, a bug that was reported to us
208 but never got a bugzilla entry.  We encourage you to file bugs in
209 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
210 than mailing the developers (or mailing lists) directly -- bugs that
211 are not entered into bugzilla tend to get forgotten about or ignored.
214 283429  ARM leak checking needs CLEAR_CALLER_SAVED_REGS
215 281059  Cannot connect to Oracle using valgrind
216 328563  make track-fds support xml output
217 362680  --error-exitcode not honored when file descriptor leaks are found
218 369723  __builtin_longjmp not supported in clang/llvm on Android arm64 target
219 390269  unhandled amd64-darwin syscall: unix:464 (openat_nocancel)
220 401284  False positive "Source and destination overlap in strncat"
221 428364  Signals inside io_uring_enter not handled
222 437790  valgrind reports "Conditional jump or move depends on uninitialised
223         value" in memchr of macOS 10.12-10.15
224 460616  disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)
225 463458  memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3
226 463463  none/tests/amd64/fma fails when executed on a x86-64-v3 system
227 466762  Add redirs for C23 free_sized() and free_aligned_sized()
228 466884  Missing writev uninit padding suppression for _XSend
229 471036  disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6
230 471222  support tracking of file descriptors being double closed
231 474160  If errors-for-leak-kinds is specified, exit-on-first-error should only exit
232         on one of the listed errors.
233 475498  Add reallocarray wrapper
234 476025  Vbit expected test results for Iop_CmpGT64Ux2 are wrong
235 476320  Build failure with GCC
236 476331  clean up generated/distributed filter scripts
237 476535  Difference in allocation size for massif/tests/overloaded-new between
238         clang++/libc++ and g++/libstdc++
239 476548  valgrind 3.22.0 fails on assertion when loading debuginfo file
240         produced by mold
241 476708  valgrind-monitor.py regular expressions should use raw strings
242 476780  Extend strlcat and strlcpy wrappers to GNU libc
243 476787  Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
244         defined
245 476887  WARNING: unhandled amd64-freebsd syscall: 578
246 477198  Add fchmodat2 syscall on linux
247 477628  Add mremap support for Solaris
248 477630  Include ucontext.h rather than sys/ucontext.h in Solaris sources
249 477719  vgdb incorrectly replies to qRcmd packet
250 478211  Redundant code for vgdb.c and Valgrind core tools
251 478624  Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
252         (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26
253 478837  valgrind fails to read debug info for rust binaries
254 479041  Executables without RW sections do not trigger debuginfo reading
255 480052  WARNING: unhandled amd64-freebsd syscall: 580
256 480126  Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8
257 480405  valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
258         Assertion '!sr_isError(sr)' failed."
259 480488  Add support for FreeBSD 13.3
260 480706  Unhandled syscall 325 (mlock2)
261 481127  amd64: Implement VFMADD213 for Iop_MAddF32
262 481131  [PATCH] x86 regtest: fix clobber lists in generated asm statements
263 481676  Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang
264 481874  Add arm64 support for FreeBSD
265 483786  Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper
266 484002  Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()
267 484426  aarch64: 0.5 gets rounded to 0
268 484480  False positives when using sem_trywait
269 484935  [patch] Valgrind reports false "Conditional jump or move depends on
270         uninitialised value" errors for aarch64 signal handlers
271 485148  vfmadd213ss instruction is instrumented incorrectly (the remaining
272         part of the register is cleared instead of kept unmodified)
273 485487  glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
274 485778  Crash with --track-fds=all and --gen-suppressions=all
275 n-i-bz  Add redirect for memccpy
277 To see details of a given bug, visit
278   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
279 where XXXXXX is the bug number as listed above.
281 (3.23.0.RC1: 19 Apr 2024)
282 (3.23.0.RC2: 24 Apr 2024)
284 Release 3.22.0 (31 Oct 2023)
285 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
287 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
288 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
289 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
290 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
291 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
292 AMD64/macOS 10.13 and nanoMIPS/Linux.
294 * ==================== CORE CHANGES ===================
296 * A new configure option --with-gdbscripts-dir lets you install
297   the gdb valgrind python monitor scripts in a specific location.
298   For example a distro could use it to install the scripts in a
299   safe load location --with-gdbscripts-dir=%{_datadir}/gdb/auto-load
300   It is also possible to configure --without-gdb-scripts-dir so no
301   .debug_gdb_scripts section is added to the vgpreload library and
302   no valgrind-monitor python scripts are installed at all.
304 * ================== PLATFORM CHANGES =================
306 * Support has been added for FreeBSD 14 and FreeBSD 15.
307 * Add support for the folllowing FreeBSD system calls:
308   close_range, kqueuex, membarrier, timerfd_create,
309   timerfd_settime and timerfd_gettime (all added in FreeBSD 15).
311 * ==================== TOOL CHANGES ===================
313 * Memcheck now tests and warns about the values used for
314   alignment and size. These apply to various functions: memalign,
315   posix_memalign and aligned_alloc in C and various overloads
316   of operators new and delete in C++. The kinds of error that can
317   be detected are
318   - invalid alignment, for instance the alignment is usually required
319     to be a power of 2
320   - mismatched alignment between aligned allocation and aligned
321     deallocation
322   - mismatched size when sized delete is used
323   - bad size for functions that have implementation defined behaviour
324     when the requested size is zero
326 * Cachegrind:
327   - You can now profile part of a program's execution using the new
328     `CACHEGRIND_START_INSTRUMENTATION` and `CACHEGRIND_STOP_INSTRUMENTATION`
329     client requests, along with the new `--instr-at-start` option. The
330     behaviour is the same as Callgrind's equivalent functionality.
332 * ==================== FIXED BUGS ====================
334 The following bugs have been fixed or resolved.  Note that "n-i-bz"
335 stands for "not in bugzilla" -- that is, a bug that was reported to us
336 but never got a bugzilla entry.  We encourage you to file bugs in
337 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
338 than mailing the developers (or mailing lists) directly -- bugs that
339 are not entered into bugzilla tend to get forgotten about or ignored.
341 390871  ELF debug info reader confused with multiple .rodata* sections
342 417993  vbit-test fail on s390x with Iop_Add32: spurious dependency on uninit
343 426751  Valgrind reports "still reachable" memory using musl
344         (alpine running inside docker)
345 432801  Valgrind 3.16.1 reports a jump based on uninitialized memory somehow
346         related to clang and signals
347 433857  Add validation to C++17 aligned new/delete alignment size
348 433859  Add mismatched detection to C++ 17 aligned new/delete
349 460192  Add epoll_pwait2
350 461074  DWARF2 CFI reader: unhandled DW_OP_ 0x11 (consts) DW_OP_ 0x92 (bregx)
351 465782  s390x: Valgrind doesn't compile with Clang on s390x
352 466105  aligned_alloc problems, part 2
353 467441  Add mismatched detection to C++ 14 sized delete
354 469049  link failure on ppc64 (big endian) valgrind 3.20
355 469146  massif --ignore-fn does not ignore inlined functions
356 469768  Make it possible to install gdb scripts in a different location
357 470121  Can't run callgrind_control with valgrind 3.21.0 because of perl errors
358 470132  s390x: Assertion failure on VGM instruction
359 470520  Multiple realloc zero errors crash in MC_(eq_Error)
360 470713  Failure on the Yosys project: valgrind: m_libcfile.c:1802
361         (Bool vgPlain_realpath(const HChar *, HChar *)):
362         Assertion 'resolved' failed
363 470830  Don't print actions vgdb me ... continue for vgdb --multi mode
364 470978  s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"
365 471311  gdb --multi mode stdout redirecting to stderr
366 471807  Add support for lazy reading and downloading of DWARF debuginfo
367 472219  Syscall param ppoll(ufds.events) points to uninitialised byte(s)
368 472875  none/tests/s390x/dfp-1 failure 
369 472963  Broken regular expression in configure.ac
370 473604  Fix bug472219.c compile failure with Clang 16
371 473677  make check compile failure with Clang 16 based on GCC 13.x
372 473745  must-be-redirected function - strlen
373 473870  FreeBSD 14 applications fail early at startup
374 473944  Handle mold linker split RW PT_LOAD segments correctly
375 474332  aligned_alloc under Valgrind returns nullptr when alignment is not a multiple of sizeof(void *)
376 475650  DRD does not work with C11 threads
377 475652  Missing suppression for __wcsncpy_avx2 (strncpy-avx2.S:308)?
378 476108  vg_replace_malloc DELETE checks size
379 n-i-bz  Allow arguments with spaces in .valgrindrc files
380 n-i-bz  FreeBSD fixed reading of Valgrind tools own debuginfo
382 To see details of a given bug, visit
383   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
384 where XXXXXX is the bug number as listed above.
386 (3.22.0.RC1: 17 Oct 2023)
387 (3.22.0.RC2: 26 Oct 2023)
389 Release 3.21.0 (28 Apr 2023)
390 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
392 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
393 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
394 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
395 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
396 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
397 AMD64/macOS 10.13 and nanoMIPS/Linux.
399 * ==================== CORE CHANGES ===================
401 * When GDB is used to debug a program running under valgrind using
402   the valgrind gdbserver, GDB will automatically load some
403   python code provided in valgrind defining GDB front end commands
404   corresponding to the valgrind monitor commands.
405   These GDB front end commands accept the same format as
406   the monitor commands directly sent to the Valgrind gdbserver.
407   These GDB front end commands provide a better integration
408   in the GDB command line interface, so as to use for example
409   GDB auto-completion, command specific help, searching for
410   a command or command help matching a regexp, ...
411   For relevant monitor commands, GDB will evaluate arguments
412   to make the use of monitor commands easier.
413   For example, instead of having to print the address of a variable
414   to pass it to a subsequent monitor command, the GDB front end
415   command will evaluate the address argument. It is for example
416   possible to do:
417     (gdb) memcheck who_points_at &some_struct sizeof(some_struct)
418   instead of:
419     (gdb) p &some_struct
420     $2 = (some_struct_type *) 0x1130a0 <some_struct>
421     (gdb) p sizeof(some_struct)
422     $3 = 40
423     (gdb) monitor who_point_at 0x1130a0 40
425 * The vgdb utility now supports extended-remote protocol when
426   invoked with --multi. In this mode the GDB run command is
427   supported. Which means you don't need to run gdb and valgrind
428   from different terminals. So for example to start your program
429   in gdb and run it under valgrind you can do:
430   $ gdb prog
431   (gdb) set remote exec-file prog
432   (gdb) set sysroot /
433   (gdb) target extended-remote | vgdb --multi
434   (gdb) start
436 * The behaviour of realloc with a size of zero can now
437   be changed for tools that intercept malloc. Those
438   tools are memcheck, helgrind, drd, massif and dhat.
439   Realloc implementations generally do one of two things
440      - free the memory like free() and return NULL
441        (GNU libc and ptmalloc).
442      - either free the memory and then allocate a
443        minimum sized block or just return the
444        original pointer. Return NULL if the
445        allocation of the minimum sized block fails
446        (jemalloc, musl, snmalloc, Solaris, macOS).
447   When Valgrind is configured and built it will
448   try to match the OS and libc behaviour. However
449   if you are using a non-default library to replace
450   malloc and family (e.g., musl on a glibc Linux or
451   tcmalloc on FreeBSD) then you can use a command line
452   option to change the behaviour of Valgrind:
453     --realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]
455 * ================== PLATFORM CHANGES =================
457 * Make the address space limit on FreeBSD amd64 128Gbytes
458   (the same as Linux and Solaris, it was 32Gbytes)
460 * ==================== TOOL CHANGES ===================
462 * Memcheck:
463   - When doing a delta leak_search, it is now possible to only
464     output the new loss records compared to the previous leak search.
465     This is available in the memcheck monitor command 'leak_search'
466     by specifying the "new" keyword or in your program by using
467     the client request VALGRIND_DO_NEW_LEAK_CHECK.
468     Whenever a "delta" leak search is done (i.e. when specifying
469     "new" or "increased" or "changed" in the monitor command),
470     the new loss records have a "new" marker.
471   - Valgrind now contains python code that defines GDB memcheck
472     front end monitor commands. See CORE CHANGES.
473   - Performs checks for the use of realloc with a size of zero.
474     This is non-portable and a source of errors. If memcheck
475     detects such a usage it will generate an error
476       realloc() with size 0
477     followed by the usual callstacks.
478     A switch has been added to allow this to be turned off:
479       --show-realloc-size-zero=yes|no [yes]
481 * Helgrind:
482   - The option ---history-backtrace-size=<number> allows to configure
483     the number of entries to record in the stack traces of "old"
484     accesses. Previously, this number was hardcoded to 8.
485   - Valgrind now contains python code that defines GDB helgrind
486     front end monitor commands. See CORE CHANGES.
488 * Cachegrind:
489   - `--cache-sim=no` is now the default. The cache simulation is old and
490     unlikely to match any real modern machine. This means only the `Ir`
491     event are gathered by default, but that is by far the most useful
492     event.
493   - `cg_annotate`, `cg_diff`, and `cg_merge` have been rewritten in
494     Python. As a result, they all have more flexible command line
495     argument handling, e.g. supporting `--show-percs` and
496     `--no-show-percs` forms as well as the existing `--show-percs=yes`
497     and `--show-percs=no`.
498   - `cg_annotate` has some functional changes.
499     - It's much faster, e.g. 3-4x on common cases.
500     - It now supports diffing (with `--diff`, `--mod-filename`, and
501       `--mod-funcname`) and merging (by passing multiple data files).
502     - It now provides more information at the file and function level.
503       There are now "File:function" and "Function:file" sections. These
504       are very useful for programs that use inlining a lot.
505     - Support for user-annotated files and the `-I`/`--include` option
506       has been removed, because it was of little use and blocked other
507       improvements.
508     - The `--auto` option is renamed `--annotate`, though the old
509       `--auto=yes`/`--auto=no` forms are still supported.
510   - `cg_diff` and `cg_merge` are now deprecated, because `cg_annotate`
511     now does a better job of diffing and merging.
512   - The Cachegrind output file format has changed very slightly, but in
513     ways nobody is likely to notice.
515 * Callgrind:
516   - Valgrind now contains python code that defines GDB callgrind
517     front end monitor commands. See CORE CHANGES.
519 * Massif:
520   - Valgrind now contains python code that defines GDB massif
521     front end monitor commands. See CORE CHANGES.
523 * DHAT:
524   - A new kind of user request has been added which allows you to
525     override the 1024 byte limit on access count histograms for blocks
526     of memory. The client request is DHAT_HISTOGRAM_MEMORY.
528 * ==================== FIXED BUGS ====================
530 The following bugs have been fixed or resolved.  Note that "n-i-bz"
531 stands for "not in bugzilla" -- that is, a bug that was reported to us
532 but never got a bugzilla entry.  We encourage you to file bugs in
533 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
534 than mailing the developers (or mailing lists) directly -- bugs that
535 are not entered into bugzilla tend to get forgotten about or ignored.
537 170510  Don't warn about ioctl of size 0 without direction hint
538 241072  List tools in --help output
539 327548  false positive while destroying mutex
540 382034  Testcases build fixes for musl
541 351857  confusing error message about valid command line option
542 374596  inconsistent RDTSCP support on x86_64
543 392331  Spurious lock not held error from inside pthread_cond_timedwait
544 397083  Likely false positive "uninitialised value(s)" for __wmemchr_avx2 and __wmemcmp_avx2_movbe
545 400793  pthread_rwlock_timedwrlock false positive
546 419054  Unhandled syscall getcpu on arm32
547 433873  openat2 syscall unimplemented on Linux
548 434057  Add stdio mode to valgrind's gdbserver
549 435441  valgrind fails to interpose malloc on musl 1.2.2 due to weak symbol name and no libc soname
550 436413  Warn about realloc of size zero
551 439685  compiler warning in callgrind/main.c
552 444110  priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.
553 444487  hginfo test detects an extra lock inside data symbol "_rtld_local"
554 444488  Use glibc.pthread.stack_cache_size tunable
555 444568  drd/tests/pth_barrier_thr_cr fails on Fedora 38
556 445743  "The impossible happened: mutex is locked simultaneously by two threads"
557         while using mutexes with priority inheritance and signals
558 449309  Missing loopback device ioctl(s) 
559 459476  vgdb: allow address reuse to avoid "address already in use" errorsuse" errors
560 460356  s390: Sqrt32Fx4 -- cannot reduce tree
561 462830  WARNING: unhandled amd64-freebsd syscall: 474
562 463027  broken check for MPX instruction support in assembler
563 464103  Enhancement: add a client request to DHAT to mark memory to be histogrammed
564 464476  Firefox fails to start under Valgrind
565 464609  Valgrind memcheck should support Linux pidfd_open
566 464680  Show issues caused by memory policies like selinux deny_execmem
567 464859  Build failures with GCC-13 (drd tsan_unittest)
568 464969  D language demangling
569 465435  m_libcfile.c:66 (vgPlain_safe_fd): Assertion 'newfd >= VG_(fd_hard_limit)' failed.
570 466104  aligned_alloc problems, part 1
571 467036  Add time cost statistics for Regtest
572 467482  Build failure on aarch64 Alpine
573 467714  fdleak_* and rlimit tests fail when parent process has more than
574         64 descriptors opened
575 467839  Gdbserver: Improve compatibility of library directory name
576 468401  [PATCH] Add a style file for clang-format
577 468556  Build failure for vgdb
578 468606  build: remove "Valgrind relies on GCC" check/output
579 469097  ppc64(be) doesn't support SCV syscall instruction
580 n-i-bz  FreeBSD rfork syscall fail with EINVAL or ENOSYS rather than VG_(unimplemented)
582 To see details of a given bug, visit
583   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
584 where XXXXXX is the bug number as listed above.
586 * ==================== KNOWN ISSUES ===================
588 * configure --enable-lto=yes is know to not work in all setups.
589   See bug 469049. Workaround: Build without LTO.
591 (3.21.0.RC1: 14 Apr 2023)
592 (3.21.0.RC2: 21 Apr 2023)
594 Release 3.20.0 (24 Oct 2022)
595 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
597 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
598 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
599 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
600 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
601 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
602 AMD64/macOS 10.13 and nanoMIPS/Linux.
604 * ==================== CORE CHANGES ===================
606 * The option "--vgdb-stop-at=event1,event2,..." accepts the new value abexit.
607   This indicates to invoke gdbserver when your program exits abnormally
608   (i.e. with a non zero exit code).
609 * Fix Rust v0 name demangling.
610 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
611 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
612 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with
613   HardenedBSD
614 * The option --enable-debuginfod=<no|yes> [default: yes] has been added on
615   Linux.
616 * More DWARF5 support as generated by clang14.
618 * ==================== FIXED BUGS ====================
620 The following bugs have been fixed or resolved.  Note that "n-i-bz"
621 stands for "not in bugzilla" -- that is, a bug that was reported to us
622 but never got a bugzilla entry.  We encourage you to file bugs in
623 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
624 than mailing the developers (or mailing lists) directly -- bugs that
625 are not entered into bugzilla tend to get forgotten about or ignored.
627 131186  writev reports error in (vector[...])
628 434764  iconv_open causes ld.so v2.28+ to use optimised strncmp
629 446754  Improve error codes from alloc functions under memcheck
630 452274  memcheck crashes with Assertion 'sci->status.what == SsIdle' failed
631 452779  Valgrind fails to build on FreeBSD 13.0 with llvm-devel (15.0.0)
632 453055  shared_timed_mutex drd test fails with "Lock shared failed" message
633 453602  Missing command line option to enable/disable debuginfod
634 452802  Handle lld 9+ split RW PT_LOAD segments correctly
635 454040  s390x: False-positive memcheck:cond in memmem on arch13 systems 
636 456171  [PATCH] FreeBSD: Don't record address errors when accessing the 'kern.ps_strings' sysctl struct
637 n-i-bz  Implement vgdb invoker on FreeBSD
638 458845  PowerPC: The L field for the dcbf and sync instruction should be
639         3 bits in ISA 3.1.
640 458915  Remove register cache to fix 458915 gdbserver causes wrong syscall return
641 459031  Documentation on --error-exitcode incomplete
642 459477  XERROR messages lacks ending '\n' in vgdb
643 462007  Implicit int in none/tests/faultstatus.c
645 To see details of a given bug, visit
646   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
647 where XXXXXX is the bug number as listed above.
649 (3.20.0.RC1: 20 Oct 2022)
652 Release 3.19.0 (11 Apr 2022)
653 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
655 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
656 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
657 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
658 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
659 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
660 AMD64/macOS 10.13 and nanoMIPS/Linux.
662 * ==================== CORE CHANGES ===================
664 * Fix Rust v0 name demangling.
665 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
666 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
667 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD
669 * ================== PLATFORM CHANGES =================
671 * arm64:
672   - ignore the "v8.x" architecture levels, only look at actual CPU features
673     present. Fixes mismatch detected between RDMA and atomics features
674     preventing startup on some QEMU configurations.
675   - Implement LD{,A}XP and ST{,L}XP
676   - Fix incorrect code emitted for doubleword CAS.
678 * s390:
679   - Fix sys_ipc semtimedop syscall
680   - Fix VFLRX and WFLRX instructions
681   - Fix EXRL instruction with negative offset
683 * ppc64:
684   - Reimplement the vbpermq instruction support to generate less Iops and
685     avoid overflowing internal buffers.
686   - Fix checking for scv support to avoid "Facility 'SCV' unavailable (12),
687     exception" messages in dmsg.
688   - Fix setting condition code for Vector Compare quad word instructions.
689   - Fix fix lxsibzx, lxsihzx and lxsihzx instructions so they only load
690     their respective sized data.
691   - Fix the prefixed stq instruction in PC relative mode.
693 * ==================== TOOL CHANGES ===================
695 * Memcheck:
696   - Speed up --track-origins=yes for large (in the range of hundreds to
697     thousands of megabytes) mmap/munmaps.
698 * DRD/Helgrind:
699   - Several fixes for new versions of libstd++ using new posix try_lock
700     functions
702 * ==================== FIXED BUGS ====================
704 The following bugs have been fixed or resolved.  Note that "n-i-bz"
705 stands for "not in bugzilla" -- that is, a bug that was reported to us
706 but never got a bugzilla entry.  We encourage you to file bugs in
707 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
708 than mailing the developers (or mailing lists) directly -- bugs that
709 are not entered into bugzilla tend to get forgotten about or ignored.
711 403802  leak_cpp_interior fails with some reachable blocks different than expected
712 435732  memcheck/tests/leak_cpp_interior fails with gcc11
713 444242  s390x: Valgrind crashes on EXRL with negative offset
714 444399  arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).
715         == 434283
716 444481  gdb_server test failures on s390x
717 444495  dhat/tests/copy fails on s390x
718 444552  memcheck/tests/sem fails on s390x with glibc 2.34
719 444571  PPC, fix the lxsibzx and lxsihzx so they only load their respective
720         sized data.
721 444836  PPC, pstq instruction for R=1 is not storing to the correct address.
722 444925  fexecve syscall wrapper not properly implemented
723 445032  valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and
724         libthr.so associated
725 445211  Fix out of tree builds
726 445300  [PATCH] Fix building tests with Musl
727 445011  SIGCHLD is sent when valgrind uses debuginfod-find
728 445354  arm64 backend: incorrect code emitted for doubleword CAS
729 445415  arm64 front end: alignment checks missing for atomic instructions
730 445504  Using C++ condition_variable results in bogus "mutex is locked simultaneously by two threads" warning
731 445607  Unhandled amd64-freebsd syscall: 247
732 445668  Inline stack frame generation is broken for Rust binaries
733 445916  Demangle Rust v0 symbols with .llvm suffix
734 446139  DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false positives
735 446138  DRD/Helgrind with std::timed_mutex::try_lock_until false positives
736 446281  Add a DRD suppression for fwrite
737 446103  Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap
738 446139  DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false
739 446251  TARGET_SIGNAL_THR added to enum target_signal
740 446823  FreeBSD - missing syscalls when using libzm4
741 447991  s390x: Valgrind indicates illegal instruction on wflrx
742 447995  Valgrind segfault on power10 due to hwcap checking code
743 449483  Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the
744         condition code correctly.
745 449672  ppc64 --track-origins=yes failures because of bad cmov addHRegUse
746 449838  sigsegv liburing the 'impossible' happened for io_uring_setup
747 450025  Powerc: ACC file not implemented as a logical overlay of the VSR
748         registers.
749 450437  Warn for execve syscall with argv or argv[0] being NULL
750 450536  Powerpc: valgrind throws 'facility scv unavailable exception'
751 451626  Syscall param bpf(attr->raw_tracepoint.name) points to unaddressable byte(s)
752 451827  [ppc64le] VEX temporary storage exhausted with several vbpermq instructions
753 451843  valgrind fails to start on a FreeBSD system which enforces W^X
755 To see details of a given bug, visit
756   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
757 where XXXXXX is the bug number as listed above.
759 (3.19.0.RC1: 02 Apr 2022)
760 (3.19.0.RC2: 08 Apr 2022)