blob: 00825ed1f7afc08a79f972159cdfc382eb93edd6 [file] [log] [blame]
jseward43230652003-12-14 00:14:54 +00001
jsewardbd0a6e42004-07-17 12:19:43 +00002Unstable (cvs head) release 2.1.2 (18 July 2004)
3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42.1.2 contains four months worth of bug fixes and refinements.
5Although officially an "unstable" release, we believe it to be stable
6enough for widespread day-to-day use. A large number of minor
7problems with 2.1.1 have been fixed, and so if you use 2.1.1 you
8should try 2.1.2. Users of the last stable release, 2.0.0, might also
9want to try this release.
10
11
12The following bugs, and probably many more, have been fixed. These
13are listed at http://bugs.kde.org. Reporting a bug for valgrind in
14the http://bugs.kde.org is much more likely to get you a fix than
15mailing developers directly, so please continue to keep sending bugs
16there.
17
1876869 Crashes when running any tool under Fedora Core 2 test1
19 This fixes the problem with returning from a signal handler
20 when VDSOs are turned off in FC2. Note that we don't
21 (yet) support VDSOs being on
22 (use "echo 0 > /proc/sys/kernel/vdso").
23
2469508 java 1.4.2 client fails with erroneous "stack size too small"
25 (make more of the pthread stack attribute related functions
26 work properly)
27
2871906 malloc alignment should be 8, not 4
29 All memory returned by malloc/new etc is now at least
30 8-byte aligned.
31
3278514 Conditional jump or move depends on uninitialized value(s)
33 (a slight mishanding of FP code in memcheck)
34
3580942 Addrcheck wasn't doing overlap checking as it should.
3678048 return NULL on malloc/new etc failure, instead of asserting
3773655 operator new() override in user .so files often doesn't get picked up
3883060 Valgrind does not handle native kernel AIO
3969872 Create proper coredumps after fatal signals
4082026 failure with new glibc versions: __libc_* functions are not exported
4170344 UNIMPLEMENTED FUNCTION: tcdrain
4281297 Cancellation of pthread_cond_wait does not require mutex
4382872 Using debug info from additional packages (wishlist)
4483025 Support for ioctls FIGETBSZ and FIBMAP
4583340 Support for ioctl HDIO_GET_IDENTITY
4679714 Support for the semtimedop system call.
4777022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
4882098 hp2ps ansification (wishlist)
4983573 Valgrind SIGSEGV on execve
5082999 show which cmdline option was erroneous (wishlist)
5183040 make valgrind VPATH and distcheck-clean (wishlist)
5277952 pThread Support (crash) (due to initialisation-ordering probs)
53
54
55Additionally there are the following changes, which are not
56connected to any bug report numbers, AFAICS:
57
58* Rearranged address space layout relative to 2.1.1, so that
59 Valgrind/tools will run out of memory later than currently in many
60 circumstances. This is good news esp. for Calltree. It should
61 be possible for client programs to allocate over 800MB of
62 memory when using memcheck now.
63
64* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
65 support to the extent that V now works properly on NPTL-only setups.
66
67* Renamed the following options:
68 --logfile-fd --> --log-fd
69 --logfile --> --log-file
70 --logsocket --> --log-socket
71 to be consistent with each other and other options (esp. --input-fd).
72
73* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
74 improve the checking of other interface related ioctls.
75
76* Removed all uses of nested functions as they only work with gcc and
77 cause the stack to be marked as executable in order for them to work.
78 Valgrind should be buildable with Intel Icc now.
79
80* Fix building with gcc-3.4.1.
81
82* Remove limit on number of semaphores supported.
83
84* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
85 improve the checking of other interface related ioctls.
86
87* Add support for syscalls: set_tid_address (258), acct (51).
88
89* Support instruction "repne movs" -- not official but seems to occur.
90
91* Implement an emulated soft limit for file descriptors in addition to
92 the current reserved area, which effectively acts as a hard limit. The
93 setrlimit system call now simply updates the emulated limits as best
94 as possible - the hard limit is not allowed to move at all and just
95 returns EPERM if you try and change it. This should stop reductions
96 in the soft limit causing assertions when valgrind tries to allocate
97 descriptors from the reserved area.
98
99* Major overhaul of Cachegrind implementation (not user-visible)
100
101* Client requests for telling valgrind about memory pools.
102
103
104
jsewarde3e77042004-03-12 21:07:05 +0000105Unstable (cvs head) release 2.1.1 (12 March 2004)
106~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsewardbd0a6e42004-07-17 12:19:43 +00001072.1.1 contains some internal structural changes needed for V's
jsewarde3e77042004-03-12 21:07:05 +0000108long-term future. These don't affect end-users. Most notable
109user-visible changes are:
110
111* Greater isolation between Valgrind and the program being run, so
112 the program is less likely to inadvertently kill Valgrind by
113 doing wild writes.
114
115* Massif: a new space profiling tool. Try it! It's cool, and it'll
116 tell you in detail where and when your C/C++ code is allocating heap.
117 Draws pretty .ps pictures of memory use against time. A potentially
118 powerful tool for making sense of your program's space use.
119
120* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
121 various signal/syscall things, and various problems with debug
122 info readers.
123
124* Support for glibc-2.3.3 based systems.
125
126We are now doing automatic overnight build-and-test runs on a variety
127of distros. As a result, we believe 2.1.1 builds and runs on:
128Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
129
130
131The following bugs, and probably many more, have been fixed. These
132are listed at http://bugs.kde.org. Reporting a bug for valgrind in
133the http://bugs.kde.org is much more likely to get you a fix than
134mailing developers directly, so please continue to keep sending bugs
135there.
136
13769616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
13869856 I don't know how to instrument MMXish stuff (Helgrind)
13973892 valgrind segfaults starting with Objective-C debug info
140 (fix for S-type stabs)
14173145 Valgrind complains too much about close(<reserved fd>)
14273902 Shadow memory allocation seems to fail on RedHat 8.0
14368633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
14475099 impossible to trace multiprocess programs
14576839 the `impossible' happened: disInstr: INT but not 0x80 !
14676762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
14776747 cannot include valgrind.h in c++ program
14876223 parsing B(3,10) gave NULL type => impossible happens
14975604 shmdt handling problem
15076416 Problems with gcc 3.4 snap 20040225
15175614 using -gstabs when building your programs the `impossible' happened
15275787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
15375294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
154 (REP RET)
15573326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
15672596 not recognizing __libc_malloc
15769489 Would like to attach ddd to running program
15872781 Cachegrind crashes with kde programs
15973055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
16073026 Descriptor leak check reports port numbers wrongly
16171705 README_MISSING_SYSCALL_OR_IOCTL out of date
16272643 Improve support for SSE/SSE2 instructions
16372484 valgrind leaves it's own signal mask in place when execing
16472650 Signal Handling always seems to restart system calls
16572006 The mmap system call turns all errors in ENOMEM
16671781 gdb attach is pretty useless
16771180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
16869886 writes to zero page cause valgrind to assert on exit
16971791 crash when valgrinding gimp 1.3 (stabs reader problem)
17069783 unhandled syscall: 218
17169782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
17270385 valgrind fails if the soft file descriptor limit is less
173 than about 828
17469529 "rep; nop" should do a yield
17570827 programs with lots of shared libraries report "mmap failed"
176 for some of them when reading symbols
17771028 glibc's strnlen is optimised enough to confuse valgrind
178
179
180
181
jseward43230652003-12-14 00:14:54 +0000182Unstable (cvs head) release 2.1.0 (15 December 2003)
183~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
184For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
185(Julian). It looks eminently usable, and given that it fixes some
186significant bugs, may well be worth using on a day-to-day basis.
1872.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
1888.2, RedHat 8.
189
1902.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
191handling of system calls and signals, and their interaction with
192threads. In general, the accuracy of the system call, thread and
193signal simulations is much improved. Specifically:
194
195- Blocking system calls behave exactly as they do when running
196 natively (not on valgrind). That is, if a syscall blocks only the
197 calling thread when running natively, than it behaves the same on
198 valgrind. No more mysterious hangs because V doesn't know that some
199 syscall or other, should block only the calling thread.
200
201- Interrupted syscalls should now give more faithful results.
202
203- Finally, signal contexts in signal handlers are supported. As a
204 result, konqueror on SuSE 9 no longer segfaults when notified of
205 file changes in directories it is watching.
206
207Other changes:
208
209- Robert Walsh's file descriptor leakage checks. When enabled,
210 Valgrind will print out a list of open file descriptors on
211 exit. Along with each file descriptor, Valgrind prints out a stack
212 backtrace of where the file was opened and any details relating to the
213 file descriptor such as the file name or socket details.
214 To use, give: --track-fds=yes
215
216- Implemented a few more SSE/SSE2 instructions.
217
218- Less crud on the stack when you do 'where' inside a GDB attach.
219
220- Fixed the following bugs:
221 68360: Valgrind does not compile against 2.6.0-testX kernels
222 68525: CVS head doesn't compile on C90 compilers
223 68566: pkgconfig support (wishlist)
224 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
225 69140: valgrind not able to explicitly specify a path to a binary.
226 69432: helgrind asserts encountering a MutexErr when there are
227 EraserErr suppressions
228
jseward0b12daf2003-12-14 14:35:28 +0000229- Increase the max size of the translation cache from 200k average bbs
230 to 300k average bbs. Programs on the size of OOo (680m17) are
231 thrashing the cache at the smaller size, creating large numbers of
232 retranslations and wasting significant time as a result.
233
jseward43230652003-12-14 00:14:54 +0000234
235
236Stable release 2.0.0 (5 Nov 2003)
237~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
238
2392.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
240improves support for SuSE 9 and the Red Hat "Severn" beta.
241
242- Further improvements to SSE/SSE2 support. The entire test suite of
243 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
244 20030307Z '-g -O -xW' now works. I think this gives pretty good
245 coverage of SSE/SSE2 floating point instructions, or at least the
246 subset emitted by Icc.
247
248- Also added support for the following instructions:
249 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
250 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
251
252- CFI support for GDB version 6. Needed to enable newer GDBs
253 to figure out where they are when using --gdb-attach=yes.
254
255- Fix this:
256 mc_translate.c:1091 (memcheck_instrument): Assertion
257 `u_in->size == 4 || u_in->size == 16' failed.
258
259- Return an error rather than panicing when given a bad socketcall.
260
261- Fix checking of syscall rt_sigtimedwait().
262
263- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
264
265- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
266 bytes long, when it could be shorter, which could cause false
267 positives.
268
269- Support use of select() for very large numbers of file descriptors.
270
271- Don't fail silently if the executable is statically linked, or is
272 setuid/setgid. Print an error message instead.
273
274- Support for old DWARF-1 format line number info.
275
276
277
278Snapshot 20031012 (12 October 2003)
279~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280
281Three months worth of bug fixes, roughly. Most significant single
282change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
283
28420031012 builds on Red Hat Fedora ("Severn") but doesn't really work
285(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
286get a working version out soon. It may or may not work ok on the
287forthcoming SuSE 9; I hear positive noises about it but haven't been
288able to verify this myself (not until I get hold of a copy of 9).
289
290A detailed list of changes, in no particular order:
291
292- Describe --gen-suppressions in the FAQ.
293
294- Syscall __NR_waitpid supported.
295
296- Minor MMX bug fix.
297
298- -v prints program's argv[] at startup.
299
300- More glibc-2.3 suppressions.
301
302- Suppressions for stack underrun bug(s) in the c++ support library
303 distributed with Intel Icc 7.0.
304
305- Fix problems reading /proc/self/maps.
306
307- Fix a couple of messages that should have been suppressed by -q,
308 but weren't.
309
310- Make Addrcheck understand "Overlap" suppressions.
311
312- At startup, check if program is statically linked and bail out if so.
313
314- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
315
316- Memcheck/addrcheck: minor speed optimisations
317
318- Handle syscall __NR_brk more correctly than before.
319
320- Fixed incorrect allocate/free mismatch errors when using
321 operator new(unsigned, std::nothrow_t const&)
322 operator new[](unsigned, std::nothrow_t const&)
323
324- Support POSIX pthread spinlocks.
325
326- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000327
328- Implemented more opcodes:
329 - push %es
330 - push %ds
331 - pop %es
332 - pop %ds
333 - movntq
334 - sfence
335 - pshufw
336 - pavgb
337 - ucomiss
338 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000339 - mov imm32, %esp
340 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000341 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000342 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000343
jseward43230652003-12-14 00:14:54 +0000344- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000345
sewardj90238792003-05-05 00:23:42 +0000346
sewardj945f39f2003-07-25 21:11:40 +0000347Snapshot 20030725 (25 July 2003)
348~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
349
350Fixes some minor problems in 20030716.
351
352- Fix bugs in overlap checking for strcpy/memcpy etc.
353
354- Do overlap checking with Addrcheck as well as Memcheck.
355
356- Fix this:
357 Memcheck: the `impossible' happened:
358 get_error_name: unexpected type
359
360- Install headers needed to compile new skins.
361
sewardje3dd2e02003-07-27 08:04:48 +0000362- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000363 passed to non-traced children.
364
sewardjb9eda952003-07-26 21:39:05 +0000365- Fix file descriptor leak in valgrind-listener.
366
sewardje3dd2e02003-07-27 08:04:48 +0000367- Fix longstanding bug in which the allocation point of a
368 block resized by realloc was not correctly set. This may
369 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000370
371
sewardj626fd892003-07-16 20:10:26 +0000372Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000373~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
374
sewardj626fd892003-07-16 20:10:26 +000037520030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000376This is the branch which will become valgrind-2.0. It contains
377significant enhancements over the 1.9.X branch.
378
379Despite this being a snapshot of the CVS head, it is believed to be
380quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
381-- and therefore suitable for widespread use. Please let us know asap
382if it causes problems for you.
383
384Two reasons for releasing a snapshot now are:
385
386- It's been a while since 1.9.6, and this snapshot fixes
387 various problems that 1.9.6 has with threaded programs
388 on glibc-2.3.X based systems.
389
390- So as to make available improvements in the 2.0 line.
391
sewardj626fd892003-07-16 20:10:26 +0000392Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000393
394- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
395 systems (SuSE 8.2, Red Hat 9). If you have had problems
396 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000397 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000398 matters. This snapshot seems stable enough to run OpenOffice.org
399 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
400 threaded app if ever I saw one.
401
402- Automatic generation of suppression records; you no longer
403 need to write them by hand. Use --gen-suppressions=yes.
404
sewardj21511802003-07-22 17:47:42 +0000405- strcpy/memcpy/etc check their arguments for overlaps, when
406 running with the Memcheck or Addrcheck skins.
407
408- malloc_usable_size() is now supported.
409
410- new client requests:
411 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
412 useful with regression testing
413 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
414 on real CPU (use with caution!)
415
sewardj9d916ed2003-07-14 23:38:40 +0000416- The GDB attach mechanism is more flexible. Allow the GDB to
417 be run to be specified by --gdb-path=/path/to/gdb, and specify
418 which file descriptor V will read its input from with
419 --input-fd=<number>.
420
sewardj21511802003-07-22 17:47:42 +0000421- Cachegrind gives more accurate results (wasn't tracking instructions in
422 malloc() and friends previously, is now).
423
sewardj9d916ed2003-07-14 23:38:40 +0000424- Complete support for the MMX instruction set.
425
426- Partial support for the SSE and SSE2 instruction sets. Work for this
427 is ongoing. About half the SSE/SSE2 instructions are done, so
428 some SSE based programs may work. Currently you need to specify
429 --skin=addrcheck. Basically not suitable for real use yet.
430
431- Significant speedups (10%-20%) for standard memory checking.
432
433- Fix assertion failure in pthread_once().
434
435- Fix this:
436 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
437 Assertion `ms_end >= ms_now' failed.
438
439- Implement pthread_mutexattr_setpshared.
440
441- Understand Pentium 4 branch hints. Also implemented a couple more
442 obscure x86 instructions.
443
444- Lots of other minor bug fixes.
445
sewardj626fd892003-07-16 20:10:26 +0000446- We have a decent regression test system, for the first time.
447 This doesn't help you directly, but it does make it a lot easier
448 for us to track the quality of the system, especially across
449 multiple linux distributions.
450
451 You can run the regression tests with 'make regtest' after 'make
452 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
453
454 == 84 tests, 0 stderr failures, 0 stdout failures ==
455
456 On Red Hat 8, I get this:
457
458 == 84 tests, 2 stderr failures, 1 stdout failure ==
459 corecheck/tests/res_search (stdout)
460 memcheck/tests/sigaltstack (stderr)
461
462 sigaltstack is probably harmless. res_search doesn't work
463 on R H 8 even running natively, so I'm not too worried.
464
465 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
466
467 == 84 tests, 2 stderr failures, 1 stdout failure ==
468 corecheck/tests/pth_atfork1 (stdout)
469 corecheck/tests/pth_atfork1 (stderr)
470 memcheck/tests/sigaltstack (stderr)
471
472 You need to run on a PII system, at least, since some tests
473 contain P6-specific instructions, and the test machine needs
474 access to the internet so that corecheck/tests/res_search
475 (a test that the DNS resolver works) can function.
476
sewardj9d916ed2003-07-14 23:38:40 +0000477As ever, thanks for the vast amount of feedback :) and bug reports :(
478We may not answer all messages, but we do at least look at all of
479them, and tend to fix the most frequently reported bugs.
480
481
482
sewardj37918822003-05-05 01:05:09 +0000483Version 1.9.6 (7 May 2003 or thereabouts)
484~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485
486Major changes in 1.9.6:
487
488- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
489 RedHat 9, to name but two ...) It turned out that 1.9.5
490 had problems with threading support on glibc >= 2.3.2,
491 usually manifested by threaded programs deadlocking in system calls,
492 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
493 is the first valgrind which gives reasonable support for
494 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
495
496- Majorly expanded FAQ.txt. We've added workarounds for all
497 common problems for which a workaround is known.
498
499Minor changes in 1.9.6:
500
501- Fix identification of the main thread's stack. Incorrect
502 identification of it was causing some on-stack addresses to not get
503 identified as such. This only affected the usefulness of some error
504 messages; the correctness of the checks made is unchanged.
505
506- Support for kernels >= 2.5.68.
507
508- Dummy implementations of __libc_current_sigrtmin,
509 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
510 good enough to keep alive programs which previously died for lack of
511 them.
512
513- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
514
sewardj3d47b792003-05-05 22:15:35 +0000515- Fix bug in the DWARF2 debug line info loader, when instructions
516 following each other have source lines far from each other
517 (e.g. with inlined functions).
518
sewardj37918822003-05-05 01:05:09 +0000519- Debug info reading: read symbols from both "symtab" and "dynsym"
520 sections, rather than merely from the one that comes last in the
521 file.
522
523- New syscall support: prctl(), creat(), lookup_dcookie().
524
525- When checking calls to accept(), recvfrom(), getsocketopt(),
526 don't complain if buffer values are NULL.
527
528- Try and avoid assertion failures in
529 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
530
531- Minor bug fixes in cg_annotate.
532
533
534
sewardj90238792003-05-05 00:23:42 +0000535Version 1.9.5 (7 April 2003)
536~~~~~~~~~~~~~~~~~~~~~~~~~~~~
537
538It occurs to me that it would be helpful for valgrind users to record
539in the source distribution the changes in each release. So I now
540attempt to mend my errant ways :-) Changes in this and future releases
541will be documented in the NEWS file in the source distribution.
542
543Major changes in 1.9.5:
544
545- (Critical bug fix): Fix a bug in the FPU simulation. This was
546 causing some floating point conditional tests not to work right.
547 Several people reported this. If you had floating point code which
548 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
549
550- Partial support for Red Hat 9. RH9 uses the new Native Posix
551 Threads Library (NPTL), instead of the older LinuxThreads.
552 This potentially causes problems with V which will take some
553 time to correct. In the meantime we have partially worked around
554 this, and so 1.9.5 works on RH9. Threaded programs still work,
555 but they may deadlock, because some system calls (accept, read,
556 write, etc) which should be nonblocking, in fact do block. This
557 is a known bug which we are looking into.
558
559 If you can, your best bet (unfortunately) is to avoid using
560 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
561 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
562
563Minor changes in 1.9.5:
564
565- Added some #errors to valgrind.h to ensure people don't include
566 it accidentally in their sources. This is a change from 1.0.X
567 which was never properly documented. The right thing to include
568 is now memcheck.h. Some people reported problems and strange
569 behaviour when (incorrectly) including valgrind.h in code with
570 1.9.1 -- 1.9.4. This is no longer possible.
571
572- Add some __extension__ bits and pieces so that gcc configured
573 for valgrind-checking compiles even with -Werror. If you
574 don't understand this, ignore it. Of interest to gcc developers
575 only.
576
577- Removed a pointless check which caused problems interworking
578 with Clearcase. V would complain about shared objects whose
579 names did not end ".so", and refuse to run. This is now fixed.
580 In fact it was fixed in 1.9.4 but not documented.
581
582- Fixed a bug causing an assertion failure of "waiters == 1"
583 somewhere in vg_scheduler.c, when running large threaded apps,
584 notably MySQL.
585
586- Add support for the munlock system call (124).
587
588Some comments about future releases:
589
5901.9.5 is, we hope, the most stable Valgrind so far. It pretty much
591supersedes the 1.0.X branch. If you are a valgrind packager, please
592consider making 1.9.5 available to your users. You can regard the
5931.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
594are no plans at all for further releases of the 1.0.X branch.
595
596If you want a leading-edge valgrind, consider building the cvs head
597(from SourceForge), or getting a snapshot of it. Current cool stuff
598going in includes MMX support (done); SSE/SSE2 support (in progress),
599a significant (10-20%) performance improvement (done), and the usual
600large collection of minor changes. Hopefully we will be able to
601improve our NPTL support, but no promises.
602