Update memcheck description of C++ new and delete
[valgrind.git] / NEWS
blob11c67410fb6f8fae0fc1ee895c63e2a6d17efb4e
1 Release 3.23.0 (26 Apr 2024)
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 * --track-fds=yes will now also warn about double closing of file
14   descriptors. Printing the context where the file descriptor was
15   originally opened and where it was previously closed.
17 * --track-fds=yes also produces "real" errors now which can be
18   suppressed and work with --error-exitcode. When combined with
19   --xml the xml-output now also includes FdBadClose and FdNotClosed
20   error kinds (see docs/internals/xml-output-protocol5.txt).
22 * The option --show-error-list=no|yes now accepts a new value all.
23   This indicates to also print the suppressed errors.
24   This is useful to analyse which errors are suppressed by which
25   suppression entries.
26   The valgrind monitor command 'v.info all_errors' similarly now
27   accepts a new optional argument 'also_suppressed' to show
28   all errors including the suppressed errors.
30 * ================== PLATFORM CHANGES =================
32 * Added ARM64 support for FreeBSD.
34 * ARM64 now supports dotprod instructions (sdot/udot).
36 * AMD64 better supports code build with -march=x86-64-v3.
37   fused-multiple-add instructions (fma) are now emulated more
38   accurately. And memcheck now handles __builtin_strcmp using 128/256
39   bit vectors with sse4.1, avx/avx2.
41 * S390X added support for NNPA (neural network processing assist)
42   facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and
43   NNPA (z16/arch14).
45 * X86 recognizes new binutils-2.42 nop patterns.
47 * ==================== TOOL CHANGES ===================
49 * The none tool now also supports xml output.
51 * ==================== FIXED BUGS ====================
53 The following bugs have been fixed or resolved.  Note that "n-i-bz"
54 stands for "not in bugzilla" -- that is, a bug that was reported to us
55 but never got a bugzilla entry.  We encourage you to file bugs in
56 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
57 than mailing the developers (or mailing lists) directly -- bugs that
58 are not entered into bugzilla tend to get forgotten about or ignored.
61 283429  ARM leak checking needs CLEAR_CALLER_SAVED_REGS
62 281059  Cannot connect to Oracle using valgrind
63 328563  make track-fds support xml output
64 362680  --error-exitcode not honored when file descriptor leaks are found
65 369723  __builtin_longjmp not supported in clang/llvm on Android arm64 target
66 390269  unhandled amd64-darwin syscall: unix:464 (openat_nocancel)
67 401284  False positive "Source and destination overlap in strncat"
68 428364  Signals inside io_uring_enter not handled
69 437790  valgrind reports "Conditional jump or move depends on uninitialised
70         value" in memchr of macOS 10.12-10.15
71 460616  disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)
72 463458  memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3
73 463463  none/tests/amd64/fma fails when executed on a x86-64-v3 system
74 466762  Add redirs for C23 free_sized() and free_aligned_sized()
75 466884  Missing writev uninit padding suppression for _XSend
76 471036  disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6
77 471222  support tracking of file descriptors being double closed
78 474160  If errors-for-leak-kinds is specified, exit-on-first-error should only exit
79         on one of the listed errors.
80 475498  Add reallocarray wrapper
81 476025  Vbit expected test results for Iop_CmpGT64Ux2 are wrong
82 476320  Build failure with GCC
83 476331  clean up generated/distributed filter scripts
84 476535  Difference in allocation size for massif/tests/overloaded-new between
85         clang++/libc++ and g++/libstdc++
86 476548  valgrind 3.22.0 fails on assertion when loading debuginfo file
87         produced by mold
88 476708  valgrind-monitor.py regular expressions should use raw strings
89 476780  Extend strlcat and strlcpy wrappers to GNU libc
90 476787  Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
91         defined
92 476887  WARNING: unhandled amd64-freebsd syscall: 578
93 477198  Add fchmodat2 syscall on linux
94 477628  Add mremap support for Solaris
95 477630  Include ucontext.h rather than sys/ucontext.h in Solaris sources
96 477719  vgdb incorrectly replies to qRcmd packet
97 478211  Redundant code for vgdb.c and Valgrind core tools
98 478624  Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
99         (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26
100 478837  valgrind fails to read debug info for rust binaries
101 479041  Executables without RW sections do not trigger debuginfo reading
102 480052  WARNING: unhandled amd64-freebsd syscall: 580
103 480126  Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8
104 480405  valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
105         Assertion '!sr_isError(sr)' failed."
106 480488  Add support for FreeBSD 13.3
107 480706  Unhandled syscall 325 (mlock2)
108 481127  amd64: Implement VFMADD213 for Iop_MAddF32
109 481131  [PATCH] x86 regtest: fix clobber lists in generated asm statements
110 481676  Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang
111 481874  Add arm64 support for FreeBSD
112 483786  Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper
113 484002  Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()
114 484426  aarch64: 0.5 gets rounded to 0
115 484480  False positives when using sem_trywait
116 484935  [patch] Valgrind reports false "Conditional jump or move depends on
117         uninitialised value" errors for aarch64 signal handlers
118 485148  vfmadd213ss instruction is instrumented incorrectly (the remaining
119         part of the register is cleared instead of kept unmodified)
120 485487  glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
121 485778  Crash with --track-fds=all and --gen-suppressions=all
122 n-i-bz  Add redirect for memccpy
124 To see details of a given bug, visit
125   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
126 where XXXXXX is the bug number as listed above.
128 (3.23.0.RC1: 19 Apr 2024)
129 (3.23.0.RC2: 24 Apr 2024)
131 Release 3.22.0 (31 Oct 2023)
132 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
135 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
136 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
137 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
138 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
139 AMD64/macOS 10.13 and nanoMIPS/Linux.
141 * ==================== CORE CHANGES ===================
143 * A new configure option --with-gdbscripts-dir lets you install
144   the gdb valgrind python monitor scripts in a specific location.
145   For example a distro could use it to install the scripts in a
146   safe load location --with-gdbscripts-dir=%{_datadir}/gdb/auto-load
147   It is also possible to configure --without-gdb-scripts-dir so no
148   .debug_gdb_scripts section is added to the vgpreload library and
149   no valgrind-monitor python scripts are installed at all.
151 * ================== PLATFORM CHANGES =================
153 * Support has been added for FreeBSD 14 and FreeBSD 15.
154 * Add support for the folllowing FreeBSD system calls:
155   close_range, kqueuex, membarrier, timerfd_create,
156   timerfd_settime and timerfd_gettime (all added in FreeBSD 15).
158 * ==================== TOOL CHANGES ===================
160 * Memcheck now tests and warns about the values used for
161   alignment and size. These apply to various functions: memalign,
162   posix_memalign and aligned_alloc in C and various overloads
163   of operators new and delete in C++. The kinds of error that can
164   be detected are
165   - invalid alignment, for instance the alignment is usually required
166     to be a power of 2
167   - mismatched alignment between aligned allocation and aligned
168     deallocation
169   - mismatched size when sized delete is used
170   - bad size for functions that have implementation defined behaviour
171     when the requested size is zero
173 * Cachegrind:
174   - You can now profile part of a program's execution using the new
175     `CACHEGRIND_START_INSTRUMENTATION` and `CACHEGRIND_STOP_INSTRUMENTATION`
176     client requests, along with the new `--instr-at-start` option. The
177     behaviour is the same as Callgrind's equivalent functionality.
179 * ==================== FIXED BUGS ====================
181 The following bugs have been fixed or resolved.  Note that "n-i-bz"
182 stands for "not in bugzilla" -- that is, a bug that was reported to us
183 but never got a bugzilla entry.  We encourage you to file bugs in
184 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
185 than mailing the developers (or mailing lists) directly -- bugs that
186 are not entered into bugzilla tend to get forgotten about or ignored.
188 390871  ELF debug info reader confused with multiple .rodata* sections
189 417993  vbit-test fail on s390x with Iop_Add32: spurious dependency on uninit
190 426751  Valgrind reports "still reachable" memory using musl
191         (alpine running inside docker)
192 432801  Valgrind 3.16.1 reports a jump based on uninitialized memory somehow
193         related to clang and signals
194 433857  Add validation to C++17 aligned new/delete alignment size
195 433859  Add mismatched detection to C++ 17 aligned new/delete
196 460192  Add epoll_pwait2
197 461074  DWARF2 CFI reader: unhandled DW_OP_ 0x11 (consts) DW_OP_ 0x92 (bregx)
198 465782  s390x: Valgrind doesn't compile with Clang on s390x
199 466105  aligned_alloc problems, part 2
200 467441  Add mismatched detection to C++ 14 sized delete
201 469049  link failure on ppc64 (big endian) valgrind 3.20
202 469146  massif --ignore-fn does not ignore inlined functions
203 469768  Make it possible to install gdb scripts in a different location
204 470121  Can't run callgrind_control with valgrind 3.21.0 because of perl errors
205 470132  s390x: Assertion failure on VGM instruction
206 470520  Multiple realloc zero errors crash in MC_(eq_Error)
207 470713  Failure on the Yosys project: valgrind: m_libcfile.c:1802
208         (Bool vgPlain_realpath(const HChar *, HChar *)):
209         Assertion 'resolved' failed
210 470830  Don't print actions vgdb me ... continue for vgdb --multi mode
211 470978  s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"
212 471311  gdb --multi mode stdout redirecting to stderr
213 471807  Add support for lazy reading and downloading of DWARF debuginfo
214 472219  Syscall param ppoll(ufds.events) points to uninitialised byte(s)
215 472875  none/tests/s390x/dfp-1 failure 
216 472963  Broken regular expression in configure.ac
217 473604  Fix bug472219.c compile failure with Clang 16
218 473677  make check compile failure with Clang 16 based on GCC 13.x
219 473745  must-be-redirected function - strlen
220 473870  FreeBSD 14 applications fail early at startup
221 473944  Handle mold linker split RW PT_LOAD segments correctly
222 474332  aligned_alloc under Valgrind returns nullptr when alignment is not a multiple of sizeof(void *)
223 475650  DRD does not work with C11 threads
224 475652  Missing suppression for __wcsncpy_avx2 (strncpy-avx2.S:308)?
225 476108  vg_replace_malloc DELETE checks size
226 n-i-bz  Allow arguments with spaces in .valgrindrc files
227 n-i-bz  FreeBSD fixed reading of Valgrind tools own debuginfo
229 To see details of a given bug, visit
230   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
231 where XXXXXX is the bug number as listed above.
233 (3.22.0.RC1: 17 Oct 2023)
234 (3.22.0.RC2: 26 Oct 2023)
236 Release 3.21.0 (28 Apr 2023)
237 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
240 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
241 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
242 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
243 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
244 AMD64/macOS 10.13 and nanoMIPS/Linux.
246 * ==================== CORE CHANGES ===================
248 * When GDB is used to debug a program running under valgrind using
249   the valgrind gdbserver, GDB will automatically load some
250   python code provided in valgrind defining GDB front end commands
251   corresponding to the valgrind monitor commands.
252   These GDB front end commands accept the same format as
253   the monitor commands directly sent to the Valgrind gdbserver.
254   These GDB front end commands provide a better integration
255   in the GDB command line interface, so as to use for example
256   GDB auto-completion, command specific help, searching for
257   a command or command help matching a regexp, ...
258   For relevant monitor commands, GDB will evaluate arguments
259   to make the use of monitor commands easier.
260   For example, instead of having to print the address of a variable
261   to pass it to a subsequent monitor command, the GDB front end
262   command will evaluate the address argument. It is for example
263   possible to do:
264     (gdb) memcheck who_points_at &some_struct sizeof(some_struct)
265   instead of:
266     (gdb) p &some_struct
267     $2 = (some_struct_type *) 0x1130a0 <some_struct>
268     (gdb) p sizeof(some_struct)
269     $3 = 40
270     (gdb) monitor who_point_at 0x1130a0 40
272 * The vgdb utility now supports extended-remote protocol when
273   invoked with --multi. In this mode the GDB run command is
274   supported. Which means you don't need to run gdb and valgrind
275   from different terminals. So for example to start your program
276   in gdb and run it under valgrind you can do:
277   $ gdb prog
278   (gdb) set remote exec-file prog
279   (gdb) set sysroot /
280   (gdb) target extended-remote | vgdb --multi
281   (gdb) start
283 * The behaviour of realloc with a size of zero can now
284   be changed for tools that intercept malloc. Those
285   tools are memcheck, helgrind, drd, massif and dhat.
286   Realloc implementations generally do one of two things
287      - free the memory like free() and return NULL
288        (GNU libc and ptmalloc).
289      - either free the memory and then allocate a
290        minimum sized block or just return the
291        original pointer. Return NULL if the
292        allocation of the minimum sized block fails
293        (jemalloc, musl, snmalloc, Solaris, macOS).
294   When Valgrind is configured and built it will
295   try to match the OS and libc behaviour. However
296   if you are using a non-default library to replace
297   malloc and family (e.g., musl on a glibc Linux or
298   tcmalloc on FreeBSD) then you can use a command line
299   option to change the behaviour of Valgrind:
300     --realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]
302 * ================== PLATFORM CHANGES =================
304 * Make the address space limit on FreeBSD amd64 128Gbytes
305   (the same as Linux and Solaris, it was 32Gbytes)
307 * ==================== TOOL CHANGES ===================
309 * Memcheck:
310   - When doing a delta leak_search, it is now possible to only
311     output the new loss records compared to the previous leak search.
312     This is available in the memcheck monitor command 'leak_search'
313     by specifying the "new" keyword or in your program by using
314     the client request VALGRIND_DO_NEW_LEAK_CHECK.
315     Whenever a "delta" leak search is done (i.e. when specifying
316     "new" or "increased" or "changed" in the monitor command),
317     the new loss records have a "new" marker.
318   - Valgrind now contains python code that defines GDB memcheck
319     front end monitor commands. See CORE CHANGES.
320   - Performs checks for the use of realloc with a size of zero.
321     This is non-portable and a source of errors. If memcheck
322     detects such a usage it will generate an error
323       realloc() with size 0
324     followed by the usual callstacks.
325     A switch has been added to allow this to be turned off:
326       --show-realloc-size-zero=yes|no [yes]
328 * Helgrind:
329   - The option ---history-backtrace-size=<number> allows to configure
330     the number of entries to record in the stack traces of "old"
331     accesses. Previously, this number was hardcoded to 8.
332   - Valgrind now contains python code that defines GDB helgrind
333     front end monitor commands. See CORE CHANGES.
335 * Cachegrind:
336   - `--cache-sim=no` is now the default. The cache simulation is old and
337     unlikely to match any real modern machine. This means only the `Ir`
338     event are gathered by default, but that is by far the most useful
339     event.
340   - `cg_annotate`, `cg_diff`, and `cg_merge` have been rewritten in
341     Python. As a result, they all have more flexible command line
342     argument handling, e.g. supporting `--show-percs` and
343     `--no-show-percs` forms as well as the existing `--show-percs=yes`
344     and `--show-percs=no`.
345   - `cg_annotate` has some functional changes.
346     - It's much faster, e.g. 3-4x on common cases.
347     - It now supports diffing (with `--diff`, `--mod-filename`, and
348       `--mod-funcname`) and merging (by passing multiple data files).
349     - It now provides more information at the file and function level.
350       There are now "File:function" and "Function:file" sections. These
351       are very useful for programs that use inlining a lot.
352     - Support for user-annotated files and the `-I`/`--include` option
353       has been removed, because it was of little use and blocked other
354       improvements.
355     - The `--auto` option is renamed `--annotate`, though the old
356       `--auto=yes`/`--auto=no` forms are still supported.
357   - `cg_diff` and `cg_merge` are now deprecated, because `cg_annotate`
358     now does a better job of diffing and merging.
359   - The Cachegrind output file format has changed very slightly, but in
360     ways nobody is likely to notice.
362 * Callgrind:
363   - Valgrind now contains python code that defines GDB callgrind
364     front end monitor commands. See CORE CHANGES.
366 * Massif:
367   - Valgrind now contains python code that defines GDB massif
368     front end monitor commands. See CORE CHANGES.
370 * DHAT:
371   - A new kind of user request has been added which allows you to
372     override the 1024 byte limit on access count histograms for blocks
373     of memory. The client request is DHAT_HISTOGRAM_MEMORY.
375 * ==================== FIXED BUGS ====================
377 The following bugs have been fixed or resolved.  Note that "n-i-bz"
378 stands for "not in bugzilla" -- that is, a bug that was reported to us
379 but never got a bugzilla entry.  We encourage you to file bugs in
380 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
381 than mailing the developers (or mailing lists) directly -- bugs that
382 are not entered into bugzilla tend to get forgotten about or ignored.
384 170510  Don't warn about ioctl of size 0 without direction hint
385 241072  List tools in --help output
386 327548  false positive while destroying mutex
387 382034  Testcases build fixes for musl
388 351857  confusing error message about valid command line option
389 374596  inconsistent RDTSCP support on x86_64
390 392331  Spurious lock not held error from inside pthread_cond_timedwait
391 397083  Likely false positive "uninitialised value(s)" for __wmemchr_avx2 and __wmemcmp_avx2_movbe
392 400793  pthread_rwlock_timedwrlock false positive
393 419054  Unhandled syscall getcpu on arm32
394 433873  openat2 syscall unimplemented on Linux
395 434057  Add stdio mode to valgrind's gdbserver
396 435441  valgrind fails to interpose malloc on musl 1.2.2 due to weak symbol name and no libc soname
397 436413  Warn about realloc of size zero
398 439685  compiler warning in callgrind/main.c
399 444110  priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.
400 444487  hginfo test detects an extra lock inside data symbol "_rtld_local"
401 444488  Use glibc.pthread.stack_cache_size tunable
402 444568  drd/tests/pth_barrier_thr_cr fails on Fedora 38
403 445743  "The impossible happened: mutex is locked simultaneously by two threads"
404         while using mutexes with priority inheritance and signals
405 449309  Missing loopback device ioctl(s) 
406 459476  vgdb: allow address reuse to avoid "address already in use" errorsuse" errors
407 460356  s390: Sqrt32Fx4 -- cannot reduce tree
408 462830  WARNING: unhandled amd64-freebsd syscall: 474
409 463027  broken check for MPX instruction support in assembler
410 464103  Enhancement: add a client request to DHAT to mark memory to be histogrammed
411 464476  Firefox fails to start under Valgrind
412 464609  Valgrind memcheck should support Linux pidfd_open
413 464680  Show issues caused by memory policies like selinux deny_execmem
414 464859  Build failures with GCC-13 (drd tsan_unittest)
415 464969  D language demangling
416 465435  m_libcfile.c:66 (vgPlain_safe_fd): Assertion 'newfd >= VG_(fd_hard_limit)' failed.
417 466104  aligned_alloc problems, part 1
418 467036  Add time cost statistics for Regtest
419 467482  Build failure on aarch64 Alpine
420 467714  fdleak_* and rlimit tests fail when parent process has more than
421         64 descriptors opened
422 467839  Gdbserver: Improve compatibility of library directory name
423 468401  [PATCH] Add a style file for clang-format
424 468556  Build failure for vgdb
425 468606  build: remove "Valgrind relies on GCC" check/output
426 469097  ppc64(be) doesn't support SCV syscall instruction
427 n-i-bz  FreeBSD rfork syscall fail with EINVAL or ENOSYS rather than VG_(unimplemented)
429 To see details of a given bug, visit
430   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
431 where XXXXXX is the bug number as listed above.
433 * ==================== KNOWN ISSUES ===================
435 * configure --enable-lto=yes is know to not work in all setups.
436   See bug 469049. Workaround: Build without LTO.
438 (3.21.0.RC1: 14 Apr 2023)
439 (3.21.0.RC2: 21 Apr 2023)
441 Release 3.20.0 (24 Oct 2022)
442 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
444 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
445 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
446 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
447 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
448 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
449 AMD64/macOS 10.13 and nanoMIPS/Linux.
451 * ==================== CORE CHANGES ===================
453 * The option "--vgdb-stop-at=event1,event2,..." accepts the new value abexit.
454   This indicates to invoke gdbserver when your program exits abnormally
455   (i.e. with a non zero exit code).
456 * Fix Rust v0 name demangling.
457 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
458 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
459 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with
460   HardenedBSD
461 * The option --enable-debuginfod=<no|yes> [default: yes] has been added on
462   Linux.
463 * More DWARF5 support as generated by clang14.
465 * ==================== FIXED BUGS ====================
467 The following bugs have been fixed or resolved.  Note that "n-i-bz"
468 stands for "not in bugzilla" -- that is, a bug that was reported to us
469 but never got a bugzilla entry.  We encourage you to file bugs in
470 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
471 than mailing the developers (or mailing lists) directly -- bugs that
472 are not entered into bugzilla tend to get forgotten about or ignored.
474 131186  writev reports error in (vector[...])
475 434764  iconv_open causes ld.so v2.28+ to use optimised strncmp
476 446754  Improve error codes from alloc functions under memcheck
477 452274  memcheck crashes with Assertion 'sci->status.what == SsIdle' failed
478 452779  Valgrind fails to build on FreeBSD 13.0 with llvm-devel (15.0.0)
479 453055  shared_timed_mutex drd test fails with "Lock shared failed" message
480 453602  Missing command line option to enable/disable debuginfod
481 452802  Handle lld 9+ split RW PT_LOAD segments correctly
482 454040  s390x: False-positive memcheck:cond in memmem on arch13 systems 
483 456171  [PATCH] FreeBSD: Don't record address errors when accessing the 'kern.ps_strings' sysctl struct
484 n-i-bz  Implement vgdb invoker on FreeBSD
485 458845  PowerPC: The L field for the dcbf and sync instruction should be
486         3 bits in ISA 3.1.
487 458915  Remove register cache to fix 458915 gdbserver causes wrong syscall return
488 459031  Documentation on --error-exitcode incomplete
489 459477  XERROR messages lacks ending '\n' in vgdb
490 462007  Implicit int in none/tests/faultstatus.c
492 To see details of a given bug, visit
493   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
494 where XXXXXX is the bug number as listed above.
496 (3.20.0.RC1: 20 Oct 2022)
499 Release 3.19.0 (11 Apr 2022)
500 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
502 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
503 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
504 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
505 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
506 AMD64/FreeBSD.  There is also preliminary support for X86/macOS 10.13,
507 AMD64/macOS 10.13 and nanoMIPS/Linux.
509 * ==================== CORE CHANGES ===================
511 * Fix Rust v0 name demangling.
512 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
513 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
514 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD
516 * ================== PLATFORM CHANGES =================
518 * arm64:
519   - ignore the "v8.x" architecture levels, only look at actual CPU features
520     present. Fixes mismatch detected between RDMA and atomics features
521     preventing startup on some QEMU configurations.
522   - Implement LD{,A}XP and ST{,L}XP
523   - Fix incorrect code emitted for doubleword CAS.
525 * s390:
526   - Fix sys_ipc semtimedop syscall
527   - Fix VFLRX and WFLRX instructions
528   - Fix EXRL instruction with negative offset
530 * ppc64:
531   - Reimplement the vbpermq instruction support to generate less Iops and
532     avoid overflowing internal buffers.
533   - Fix checking for scv support to avoid "Facility 'SCV' unavailable (12),
534     exception" messages in dmsg.
535   - Fix setting condition code for Vector Compare quad word instructions.
536   - Fix fix lxsibzx, lxsihzx and lxsihzx instructions so they only load
537     their respective sized data.
538   - Fix the prefixed stq instruction in PC relative mode.
540 * ==================== TOOL CHANGES ===================
542 * Memcheck:
543   - Speed up --track-origins=yes for large (in the range of hundreds to
544     thousands of megabytes) mmap/munmaps.
545 * DRD/Helgrind:
546   - Several fixes for new versions of libstd++ using new posix try_lock
547     functions
549 * ==================== FIXED BUGS ====================
551 The following bugs have been fixed or resolved.  Note that "n-i-bz"
552 stands for "not in bugzilla" -- that is, a bug that was reported to us
553 but never got a bugzilla entry.  We encourage you to file bugs in
554 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
555 than mailing the developers (or mailing lists) directly -- bugs that
556 are not entered into bugzilla tend to get forgotten about or ignored.
558 403802  leak_cpp_interior fails with some reachable blocks different than expected
559 435732  memcheck/tests/leak_cpp_interior fails with gcc11
560 444242  s390x: Valgrind crashes on EXRL with negative offset
561 444399  arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).
562         == 434283
563 444481  gdb_server test failures on s390x
564 444495  dhat/tests/copy fails on s390x
565 444552  memcheck/tests/sem fails on s390x with glibc 2.34
566 444571  PPC, fix the lxsibzx and lxsihzx so they only load their respective
567         sized data.
568 444836  PPC, pstq instruction for R=1 is not storing to the correct address.
569 444925  fexecve syscall wrapper not properly implemented
570 445032  valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and
571         libthr.so associated
572 445211  Fix out of tree builds
573 445300  [PATCH] Fix building tests with Musl
574 445011  SIGCHLD is sent when valgrind uses debuginfod-find
575 445354  arm64 backend: incorrect code emitted for doubleword CAS
576 445415  arm64 front end: alignment checks missing for atomic instructions
577 445504  Using C++ condition_variable results in bogus "mutex is locked simultaneously by two threads" warning
578 445607  Unhandled amd64-freebsd syscall: 247
579 445668  Inline stack frame generation is broken for Rust binaries
580 445916  Demangle Rust v0 symbols with .llvm suffix
581 446139  DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false positives
582 446138  DRD/Helgrind with std::timed_mutex::try_lock_until false positives
583 446281  Add a DRD suppression for fwrite
584 446103  Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap
585 446139  DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false
586 446251  TARGET_SIGNAL_THR added to enum target_signal
587 446823  FreeBSD - missing syscalls when using libzm4
588 447991  s390x: Valgrind indicates illegal instruction on wflrx
589 447995  Valgrind segfault on power10 due to hwcap checking code
590 449483  Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the
591         condition code correctly.
592 449672  ppc64 --track-origins=yes failures because of bad cmov addHRegUse
593 449838  sigsegv liburing the 'impossible' happened for io_uring_setup
594 450025  Powerc: ACC file not implemented as a logical overlay of the VSR
595         registers.
596 450437  Warn for execve syscall with argv or argv[0] being NULL
597 450536  Powerpc: valgrind throws 'facility scv unavailable exception'
598 451626  Syscall param bpf(attr->raw_tracepoint.name) points to unaddressable byte(s)
599 451827  [ppc64le] VEX temporary storage exhausted with several vbpermq instructions
600 451843  valgrind fails to start on a FreeBSD system which enforces W^X
602 To see details of a given bug, visit
603   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
604 where XXXXXX is the bug number as listed above.
606 (3.19.0.RC1: 02 Apr 2022)
607 (3.19.0.RC2: 08 Apr 2022)