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