| 2 | |
| 3 | |
| 4 | {{{ |
| 5 | Release 3.12.0 (20 October 2016) |
| 6 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 7 | |
| 8 | 3.12.0 is a feature release with many improvements and the usual |
| 9 | collection of bug fixes. |
| 10 | |
| 11 | This release supports X86/Linux, AMD64/Linux, ARM32/Linux, |
| 12 | ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, |
| 13 | MIPS32/Linux, MIPS64/Linux, ARM/Android, ARM64/Android, |
| 14 | MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, X86/MacOSX |
| 15 | 10.10 and AMD64/MacOSX 10.10. There is also preliminary support for |
| 16 | X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux. |
| 17 | |
| 18 | * ================== PLATFORM CHANGES ================= |
| 19 | |
| 20 | * POWER: Support for ISA 3.0 has been added |
| 21 | |
| 22 | * mips: support for O32 FPXX ABI has been added. |
| 23 | * mips: improved recognition of different processors |
| 24 | * mips: determination of page size now done at run time |
| 25 | |
| 26 | * amd64: Partial support for AMD FMA4 instructions. |
| 27 | |
| 28 | * arm, arm64: Support for v8 crypto and CRC instructions. |
| 29 | |
| 30 | * Improvements and robustification of the Solaris port. |
| 31 | |
| 32 | * Preliminary support for MacOS 10.12 (Sierra) has been added. |
| 33 | |
| 34 | Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we |
| 35 | would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64) |
| 36 | where possible. Valgrind's support for 32-bit x86 has stagnated in |
| 37 | recent years and has fallen far behind that for 64-bit x86 |
| 38 | instructions. By contrast 64-bit x86 is well supported, up to and |
| 39 | including AVX2. |
| 40 | |
| 41 | * ==================== TOOL CHANGES ==================== |
| 42 | |
| 43 | * Memcheck: |
| 44 | |
| 45 | - Added meta mempool support for describing a custom allocator which: |
| 46 | - Auto-frees all chunks assuming that destroying a pool destroys all |
| 47 | objects in the pool |
| 48 | - Uses itself to allocate other memory blocks |
| 49 | |
| 50 | - New flag --ignore-range-below-sp to ignore memory accesses below |
| 51 | the stack pointer, if you really have to. The related flag |
| 52 | --workaround-gcc296-bugs=yes is now deprecated. Use |
| 53 | --ignore-range-below-sp=1024-1 as a replacement. |
| 54 | |
| 55 | * DRD: |
| 56 | |
| 57 | - Improved thread startup time significantly on non-Linux platforms. |
| 58 | |
| 59 | * DHAT |
| 60 | |
| 61 | - Added collection of the metric "tot-blocks-allocd" |
| 62 | |
| 63 | * ==================== OTHER CHANGES ==================== |
| 64 | |
| 65 | * Replacement/wrapping of malloc/new related functions is now done not just |
| 66 | for system libraries by default, but for any globally defined malloc/new |
| 67 | related function (both in shared libraries and statically linked alternative |
| 68 | malloc implementations). The dynamic (runtime) linker is excluded, though. |
| 69 | To only intercept malloc/new related functions in |
| 70 | system libraries use --soname-synonyms=somalloc=nouserintercepts (where |
| 71 | "nouserintercepts" can be any non-existing library name). |
| 72 | This new functionality is not implemented for MacOS X. |
| 73 | |
| 74 | * The maximum number of callers in a suppression entry is now equal to |
| 75 | the maximum size for --num-callers (500). |
| 76 | Note that --gen-suppressions=yes|all similarly generates suppressions |
| 77 | containing up to --num-callers frames. |
| 78 | |
| 79 | * New and modified GDB server monitor features: |
| 80 | |
| 81 | - Valgrind's gdbserver now accepts the command 'catch syscall'. |
| 82 | Note that you must have GDB >= 7.11 to use 'catch syscall' with |
| 83 | gdbserver. |
| 84 | |
| 85 | * New option --run-cxx-freeres=<yes|no> can be used to change whether |
| 86 | __gnu_cxx::__freeres() cleanup function is called or not. Default is |
| 87 | 'yes'. |
| 88 | |
| 89 | * Valgrind is able to read compressed debuginfo sections in two formats: |
| 90 | - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib) |
| 91 | - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu) |
| 92 | |
| 93 | * Modest JIT-cost improvements: the cost of instrumenting code blocks |
| 94 | for the most common use case (x86_64-linux, Memcheck) has been |
| 95 | reduced by 10%-15%. |
| 96 | |
| 97 | * Improved performance for programs that do a lot of discarding of |
| 98 | instruction address ranges of 8KB or less. |
| 99 | |
| 100 | * The C++ symbol demangler has been updated. |
| 101 | |
| 102 | * More robustness against invalid syscall parameters on Linux. |
| 103 | |
| 104 | * ==================== FIXED BUGS ==================== |
| 105 | |
| 106 | The following bugs have been fixed or resolved. Note that "n-i-bz" |
| 107 | stands for "not in bugzilla" -- that is, a bug that was reported to us |
| 108 | but never got a bugzilla entry. We encourage you to file bugs in |
| 109 | bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather |
| 110 | than mailing the developers (or mailing lists) directly -- bugs that |
| 111 | are not entered into bugzilla tend to get forgotten about or ignored. |
| 112 | |
| 113 | To see details of a given bug, visit |
| 114 | https://bugs.kde.org/show_bug.cgi?id=XXXXXX |
| 115 | where XXXXXX is the bug number as listed below. |
| 116 | |
| 117 | 191069 Exiting due to signal not reported in XML output |
| 118 | 199468 Suppressions: stack size limited to 25 |
| 119 | while --num-callers allows more frames |
| 120 | 212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM) |
| 121 | 278744 cvtps2pd with redundant RexW |
| 122 | 303877 valgrind doesn't support compressed debuginfo sections. |
| 123 | 345307 Warning about "still reachable" memory when using libstdc++ from gcc 5 |
| 124 | 348345 Assertion fails for negative lineno |
| 125 | 351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1 |
| 126 | 351692 Dumps created by valgrind are not readable by gdb (mips32 specific) |
| 127 | 351804 Crash on generating suppressions for "printf" call on OS X 10.10 |
| 128 | 352197 mips: mmap2() not wrapped correctly for page size > 4096 |
| 129 | 353083 arm64 doesn't implement various xattr system calls |
| 130 | 353084 arm64 doesn't support sigpending system call |
| 131 | 353137 www: update info for Supported Platforms |
| 132 | 353138 www: update "The Valgrind Developers" page |
| 133 | 353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine |
| 134 | == 365325 |
| 135 | == 357873 |
| 136 | 353384 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62) |
| 137 | 353398 WARNING: unhandled amd64-solaris syscall: 207 |
| 138 | 353660 XML in auxwhat tag not escaping reserved symbols properly |
| 139 | 353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN |
| 140 | 353727 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72) |
| 141 | 353802 ELF debug info reader confused with multiple .rodata sections |
| 142 | 353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed |
| 143 | 353917 unhandled amd64-solaris syscall fchdir(120) |
| 144 | 353920 unhandled amd64-solaris syscall: 170 |
| 145 | 354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3) |
| 146 | 354392 unhandled amd64-solaris syscall: 171 |
| 147 | 354797 Vbit test does not include Iops for Power 8 instruction support |
| 148 | 354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11 |
| 149 | == 361351 |
| 150 | == 362920 |
| 151 | == 366222 |
| 152 | 354933 Fix documentation of --kernel-variant=android-no-hw-tls option |
| 153 | 355188 valgrind should intercept all malloc related global functions |
| 154 | 355454 do not intercept malloc related symbols from the runtime linker |
| 155 | 355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained |
| 156 | 356044 Dwarf line info reader misinterprets is_stmt register |
| 157 | 356112 mips: replace addi with addiu |
| 158 | 356393 valgrind (vex) crashes because isZeroU happened |
| 159 | == 363497 |
| 160 | == 364497 |
| 161 | 356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min) |
| 162 | 356678 arm64-linux: unhandled syscall 232 (mincore) |
| 163 | 356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND |
| 164 | 356823 Unsupported ARM instruction: stlex |
| 165 | 357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state |
| 166 | 357338 Unhandled instruction for SHA instructions libcrypto Boring SSL |
| 167 | 357673 crash if I try to run valgrind with a binary link with libcurl |
| 168 | 357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+ |
| 169 | 357871 pthread_spin_destroy not properly wrapped |
| 170 | 357887 Calls to VG_(fclose) do not close the file descriptor |
| 171 | 357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm. |
| 172 | 358030 support direct socket calls on x86 32bit (new in linux 4.3) |
| 173 | 358478 drd/tests/std_thread.cpp doesn't build with GCC6 |
| 174 | 359133 Assertion 'eltSzB <= ddpa->poolSzB' failed |
| 175 | 359181 Buffer Overflow during Demangling |
| 176 | 359201 futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET |
| 177 | 359289 s390x: popcnt (B9E1) not implemented |
| 178 | 359472 The Power PC vsubuqm instruction doesn't always give the correct result |
| 179 | 359503 Add missing syscalls for aarch64 (arm64) |
| 180 | 359645 "You need libc6-dbg" help message could be more helpful |
| 181 | 359703 s390: wire up separate socketcalls system calls |
| 182 | 359724 getsockname might crash - deref_UInt should call safe_to_deref |
| 183 | 359733 amd64 implement ld.so strchr/index override like x86 |
| 184 | 359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5 |
| 185 | 359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses |
| 186 | uninitialized data |
| 187 | 359838 arm64: Unhandled instruction 0xD5033F5F (clrex) |
| 188 | 359871 Incorrect mask handling in ppoll |
| 189 | 359952 Unrecognised PCMPESTRM variants (0x70, 0x19) |
| 190 | 360008 Contents of Power vr registers contents is not printed correctly when |
| 191 | the --vgdb-shadow-registers=yes option is used |
| 192 | 360035 POWER PC instruction bcdadd and bcdsubtract generate result with |
| 193 | non-zero shadow bits |
| 194 | 360378 arm64: Unhandled instruction 0x5E280844 (sha1h s4, s2) |
| 195 | 360425 arm64 unsupported instruction ldpsw |
| 196 | == 364435 |
| 197 | 360519 none/tests/arm64/memory.vgtest might fail with newer gcc |
| 198 | 360571 Error about the Android Runtime reading below the stack pointer on ARM |
| 199 | 360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64 |
| 200 | 360749 kludge for multiple .rodata sections on Solaris no longer needed |
| 201 | 360752 raise the number of reserved fds in m_main.c from 10 to 12 |
| 202 | 361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5 |
| 203 | 361226 s390x: risbgn (EC59) not implemented |
| 204 | 361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create' |
| 205 | 361354 ppc64[le]: wire up separate socketcalls system calls |
| 206 | 361615 Inconsistent termination for multithreaded process terminated by signal |
| 207 | 361926 Unhandled Solaris syscall: sysfs(84) |
| 208 | 362009 V dumps core on unimplemented functionality before threads are created |
| 209 | 362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5 |
| 210 | 362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64) |
| 211 | 362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed |
| 212 | 362953 Request for an update to the Valgrind Developers page |
| 213 | 363680 add renameat2() support |
| 214 | 363705 arm64 missing syscall name_to_handle_at and open_by_handle_at |
| 215 | 363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at |
| 216 | 363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5 |
| 217 | 364058 clarify in manual limitations of array overruns detections |
| 218 | 364413 pselect sycallwrapper mishandles NULL sigmask |
| 219 | 364728 Power PC, missing support for several HW registers in |
| 220 | get_otrack_shadow_offset_wrk() |
| 221 | 364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5 |
| 222 | 365273 Invalid write to stack location reported after signal handler runs |
| 223 | 365912 ppc64BE segfault during jm-insns test (RELRO) |
| 224 | 366079 FPXX Support for MIPS32 Valgrind |
| 225 | 366138 Fix configure errors out when using Xcode 8 (clang 8.0.0) |
| 226 | 366344 Multiple unhandled instruction for Aarch64 |
| 227 | (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060) |
| 228 | 367995 Integration of memcheck with custom memory allocator |
| 229 | 368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer |
| 230 | 368412 False positive result for altivec capability check |
| 231 | 368416 Add tc06_two_races_xml.exp output for ppc64 |
| 232 | 368419 Perf Events ioctls not implemented |
| 233 | 368461 mmapunmap test fails on ppc64 |
| 234 | 368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target |
| 235 | 369000 AMD64 fma4 instructions unsupported. |
| 236 | 369169 ppc64 fails jm_int_isa_2_07 test |
| 237 | 369175 jm_vec_isa_2_07 test crashes on ppc64 |
| 238 | 369209 valgrind loops and eats up all memory if cwd doesn't exist. |
| 239 | 369356 pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr |
| 240 | 369359 msghdr_foreachfield can crash when handling bad iovec |
| 241 | 369360 Bad sigprocmask old or new sets can crash valgrind |
| 242 | 369361 vmsplice syscall wrapper crashes on bad iovec |
| 243 | 369362 Bad sigaction arguments crash valgrind |
| 244 | 369383 x86 sys_modify_ldt wrapper crashes on bad ptr |
| 245 | 369402 Bad set/get_thread_area pointer crashes valgrind |
| 246 | 369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers |
| 247 | 369446 valgrind crashes on unknown fcntl command |
| 248 | 369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER |
| 249 | 369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter) |
| 250 | 370265 ISA 3.0 HW cap stuff needs updating |
| 251 | 371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work |
| 252 | n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64 |
| 253 | n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap |
| 254 | n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments |
| 255 | n-i-bz Fix ppoll_alarm exclusion on OS X |
| 256 | n-i-bz Document brk segment limitation, reference manual in limit reached msg. |
| 257 | n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737] |
| 258 | n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206] |
| 259 | n-i-bz amd64: memcheck false positive with shr %edx |
| 260 | n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]" |
| 261 | n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion |
| 262 | n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D} |
| 263 | n-i-bz DHAT: added collection of the metric "tot-blocks-allocd" |
| 264 | |
| 265 | (3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094) |
| 266 | (3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096) |
| 267 | (3.12.0: 21 October 2016, vex r3282, valgrind r16098) |
| 268 | }}} |