blob: b24f6dcf2dddc709eba1da5fe87fb5fc9a1e36fe [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
nethercote5e63bfb2004-07-17 12:49:53 +000099* Major overhaul of Cachegrind implementation. Only user visible change
100 is that cachegrind.out files are now typically 90% smaller than they
101 used to be. Code annotation times are correspondingly much smaller.
jsewardbd0a6e42004-07-17 12:19:43 +0000102
103* Client requests for telling valgrind about memory pools.
104
105
106
jsewarde3e77042004-03-12 21:07:05 +0000107Unstable (cvs head) release 2.1.1 (12 March 2004)
108~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsewardbd0a6e42004-07-17 12:19:43 +00001092.1.1 contains some internal structural changes needed for V's
jsewarde3e77042004-03-12 21:07:05 +0000110long-term future. These don't affect end-users. Most notable
111user-visible changes are:
112
113* Greater isolation between Valgrind and the program being run, so
114 the program is less likely to inadvertently kill Valgrind by
115 doing wild writes.
116
117* Massif: a new space profiling tool. Try it! It's cool, and it'll
118 tell you in detail where and when your C/C++ code is allocating heap.
119 Draws pretty .ps pictures of memory use against time. A potentially
120 powerful tool for making sense of your program's space use.
121
122* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
123 various signal/syscall things, and various problems with debug
124 info readers.
125
126* Support for glibc-2.3.3 based systems.
127
128We are now doing automatic overnight build-and-test runs on a variety
129of distros. As a result, we believe 2.1.1 builds and runs on:
130Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
131
132
133The following bugs, and probably many more, have been fixed. These
134are listed at http://bugs.kde.org. Reporting a bug for valgrind in
135the http://bugs.kde.org is much more likely to get you a fix than
136mailing developers directly, so please continue to keep sending bugs
137there.
138
13969616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
14069856 I don't know how to instrument MMXish stuff (Helgrind)
14173892 valgrind segfaults starting with Objective-C debug info
142 (fix for S-type stabs)
14373145 Valgrind complains too much about close(<reserved fd>)
14473902 Shadow memory allocation seems to fail on RedHat 8.0
14568633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
14675099 impossible to trace multiprocess programs
14776839 the `impossible' happened: disInstr: INT but not 0x80 !
14876762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
14976747 cannot include valgrind.h in c++ program
15076223 parsing B(3,10) gave NULL type => impossible happens
15175604 shmdt handling problem
15276416 Problems with gcc 3.4 snap 20040225
15375614 using -gstabs when building your programs the `impossible' happened
15475787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
15575294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
156 (REP RET)
15773326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
15872596 not recognizing __libc_malloc
15969489 Would like to attach ddd to running program
16072781 Cachegrind crashes with kde programs
16173055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
16273026 Descriptor leak check reports port numbers wrongly
16371705 README_MISSING_SYSCALL_OR_IOCTL out of date
16472643 Improve support for SSE/SSE2 instructions
16572484 valgrind leaves it's own signal mask in place when execing
16672650 Signal Handling always seems to restart system calls
16772006 The mmap system call turns all errors in ENOMEM
16871781 gdb attach is pretty useless
16971180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
17069886 writes to zero page cause valgrind to assert on exit
17171791 crash when valgrinding gimp 1.3 (stabs reader problem)
17269783 unhandled syscall: 218
17369782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
17470385 valgrind fails if the soft file descriptor limit is less
175 than about 828
17669529 "rep; nop" should do a yield
17770827 programs with lots of shared libraries report "mmap failed"
178 for some of them when reading symbols
17971028 glibc's strnlen is optimised enough to confuse valgrind
180
181
182
183
jseward43230652003-12-14 00:14:54 +0000184Unstable (cvs head) release 2.1.0 (15 December 2003)
185~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
187(Julian). It looks eminently usable, and given that it fixes some
188significant bugs, may well be worth using on a day-to-day basis.
1892.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
1908.2, RedHat 8.
191
1922.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
193handling of system calls and signals, and their interaction with
194threads. In general, the accuracy of the system call, thread and
195signal simulations is much improved. Specifically:
196
197- Blocking system calls behave exactly as they do when running
198 natively (not on valgrind). That is, if a syscall blocks only the
199 calling thread when running natively, than it behaves the same on
200 valgrind. No more mysterious hangs because V doesn't know that some
201 syscall or other, should block only the calling thread.
202
203- Interrupted syscalls should now give more faithful results.
204
205- Finally, signal contexts in signal handlers are supported. As a
206 result, konqueror on SuSE 9 no longer segfaults when notified of
207 file changes in directories it is watching.
208
209Other changes:
210
211- Robert Walsh's file descriptor leakage checks. When enabled,
212 Valgrind will print out a list of open file descriptors on
213 exit. Along with each file descriptor, Valgrind prints out a stack
214 backtrace of where the file was opened and any details relating to the
215 file descriptor such as the file name or socket details.
216 To use, give: --track-fds=yes
217
218- Implemented a few more SSE/SSE2 instructions.
219
220- Less crud on the stack when you do 'where' inside a GDB attach.
221
222- Fixed the following bugs:
223 68360: Valgrind does not compile against 2.6.0-testX kernels
224 68525: CVS head doesn't compile on C90 compilers
225 68566: pkgconfig support (wishlist)
226 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
227 69140: valgrind not able to explicitly specify a path to a binary.
228 69432: helgrind asserts encountering a MutexErr when there are
229 EraserErr suppressions
230
jseward0b12daf2003-12-14 14:35:28 +0000231- Increase the max size of the translation cache from 200k average bbs
232 to 300k average bbs. Programs on the size of OOo (680m17) are
233 thrashing the cache at the smaller size, creating large numbers of
234 retranslations and wasting significant time as a result.
235
jseward43230652003-12-14 00:14:54 +0000236
237
238Stable release 2.0.0 (5 Nov 2003)
239~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240
2412.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
242improves support for SuSE 9 and the Red Hat "Severn" beta.
243
244- Further improvements to SSE/SSE2 support. The entire test suite of
245 the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
246 20030307Z '-g -O -xW' now works. I think this gives pretty good
247 coverage of SSE/SSE2 floating point instructions, or at least the
248 subset emitted by Icc.
249
250- Also added support for the following instructions:
251 MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
252 PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
253
254- CFI support for GDB version 6. Needed to enable newer GDBs
255 to figure out where they are when using --gdb-attach=yes.
256
257- Fix this:
258 mc_translate.c:1091 (memcheck_instrument): Assertion
259 `u_in->size == 4 || u_in->size == 16' failed.
260
261- Return an error rather than panicing when given a bad socketcall.
262
263- Fix checking of syscall rt_sigtimedwait().
264
265- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
266
267- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
268 bytes long, when it could be shorter, which could cause false
269 positives.
270
271- Support use of select() for very large numbers of file descriptors.
272
273- Don't fail silently if the executable is statically linked, or is
274 setuid/setgid. Print an error message instead.
275
276- Support for old DWARF-1 format line number info.
277
278
279
280Snapshot 20031012 (12 October 2003)
281~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282
283Three months worth of bug fixes, roughly. Most significant single
284change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
285
28620031012 builds on Red Hat Fedora ("Severn") but doesn't really work
287(curiosly, mozilla runs OK, but a modest "ls -l" bombs). I hope to
288get a working version out soon. It may or may not work ok on the
289forthcoming SuSE 9; I hear positive noises about it but haven't been
290able to verify this myself (not until I get hold of a copy of 9).
291
292A detailed list of changes, in no particular order:
293
294- Describe --gen-suppressions in the FAQ.
295
296- Syscall __NR_waitpid supported.
297
298- Minor MMX bug fix.
299
300- -v prints program's argv[] at startup.
301
302- More glibc-2.3 suppressions.
303
304- Suppressions for stack underrun bug(s) in the c++ support library
305 distributed with Intel Icc 7.0.
306
307- Fix problems reading /proc/self/maps.
308
309- Fix a couple of messages that should have been suppressed by -q,
310 but weren't.
311
312- Make Addrcheck understand "Overlap" suppressions.
313
314- At startup, check if program is statically linked and bail out if so.
315
316- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
317
318- Memcheck/addrcheck: minor speed optimisations
319
320- Handle syscall __NR_brk more correctly than before.
321
322- Fixed incorrect allocate/free mismatch errors when using
323 operator new(unsigned, std::nothrow_t const&)
324 operator new[](unsigned, std::nothrow_t const&)
325
326- Support POSIX pthread spinlocks.
327
328- Fixups for clean compilation with gcc-3.3.1.
daywalker5d945de2003-09-26 00:32:53 +0000329
330- Implemented more opcodes:
331 - push %es
332 - push %ds
333 - pop %es
334 - pop %ds
335 - movntq
336 - sfence
337 - pshufw
338 - pavgb
339 - ucomiss
340 - enter
daywalkerb18d2532003-09-27 20:15:01 +0000341 - mov imm32, %esp
342 - all "in" and "out" opcodes
daywalker79aad842003-09-30 22:58:12 +0000343 - inc/dec %esp
jseward43230652003-12-14 00:14:54 +0000344 - A whole bunch of SSE/SSE2 instructions
daywalker5d945de2003-09-26 00:32:53 +0000345
jseward43230652003-12-14 00:14:54 +0000346- Memcheck: don't bomb on SSE/SSE2 code.
daywalker5d945de2003-09-26 00:32:53 +0000347
sewardj90238792003-05-05 00:23:42 +0000348
sewardj945f39f2003-07-25 21:11:40 +0000349Snapshot 20030725 (25 July 2003)
350~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
351
352Fixes some minor problems in 20030716.
353
354- Fix bugs in overlap checking for strcpy/memcpy etc.
355
356- Do overlap checking with Addrcheck as well as Memcheck.
357
358- Fix this:
359 Memcheck: the `impossible' happened:
360 get_error_name: unexpected type
361
362- Install headers needed to compile new skins.
363
sewardje3dd2e02003-07-27 08:04:48 +0000364- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
sewardj945f39f2003-07-25 21:11:40 +0000365 passed to non-traced children.
366
sewardjb9eda952003-07-26 21:39:05 +0000367- Fix file descriptor leak in valgrind-listener.
368
sewardje3dd2e02003-07-27 08:04:48 +0000369- Fix longstanding bug in which the allocation point of a
370 block resized by realloc was not correctly set. This may
371 have caused confusing error messages.
sewardj945f39f2003-07-25 21:11:40 +0000372
373
sewardj626fd892003-07-16 20:10:26 +0000374Snapshot 20030716 (16 July 2003)
sewardj9d916ed2003-07-14 23:38:40 +0000375~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
376
sewardj626fd892003-07-16 20:10:26 +000037720030716 is a snapshot of our current CVS head (development) branch.
sewardj9d916ed2003-07-14 23:38:40 +0000378This is the branch which will become valgrind-2.0. It contains
379significant enhancements over the 1.9.X branch.
380
381Despite this being a snapshot of the CVS head, it is believed to be
382quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
383-- and therefore suitable for widespread use. Please let us know asap
384if it causes problems for you.
385
386Two reasons for releasing a snapshot now are:
387
388- It's been a while since 1.9.6, and this snapshot fixes
389 various problems that 1.9.6 has with threaded programs
390 on glibc-2.3.X based systems.
391
392- So as to make available improvements in the 2.0 line.
393
sewardj626fd892003-07-16 20:10:26 +0000394Major changes in 20030716, as compared to 1.9.6:
sewardj9d916ed2003-07-14 23:38:40 +0000395
396- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
397 systems (SuSE 8.2, Red Hat 9). If you have had problems
398 with inconsistent/illogical behaviour of errno, h_errno or the DNS
sewardj626fd892003-07-16 20:10:26 +0000399 resolver functions in threaded programs, 20030716 should improve
sewardj9d916ed2003-07-14 23:38:40 +0000400 matters. This snapshot seems stable enough to run OpenOffice.org
401 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
402 threaded app if ever I saw one.
403
404- Automatic generation of suppression records; you no longer
405 need to write them by hand. Use --gen-suppressions=yes.
406
sewardj21511802003-07-22 17:47:42 +0000407- strcpy/memcpy/etc check their arguments for overlaps, when
408 running with the Memcheck or Addrcheck skins.
409
410- malloc_usable_size() is now supported.
411
412- new client requests:
413 - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
414 useful with regression testing
415 - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
416 on real CPU (use with caution!)
417
sewardj9d916ed2003-07-14 23:38:40 +0000418- The GDB attach mechanism is more flexible. Allow the GDB to
419 be run to be specified by --gdb-path=/path/to/gdb, and specify
420 which file descriptor V will read its input from with
421 --input-fd=<number>.
422
sewardj21511802003-07-22 17:47:42 +0000423- Cachegrind gives more accurate results (wasn't tracking instructions in
424 malloc() and friends previously, is now).
425
sewardj9d916ed2003-07-14 23:38:40 +0000426- Complete support for the MMX instruction set.
427
428- Partial support for the SSE and SSE2 instruction sets. Work for this
429 is ongoing. About half the SSE/SSE2 instructions are done, so
430 some SSE based programs may work. Currently you need to specify
431 --skin=addrcheck. Basically not suitable for real use yet.
432
433- Significant speedups (10%-20%) for standard memory checking.
434
435- Fix assertion failure in pthread_once().
436
437- Fix this:
438 valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
439 Assertion `ms_end >= ms_now' failed.
440
441- Implement pthread_mutexattr_setpshared.
442
443- Understand Pentium 4 branch hints. Also implemented a couple more
444 obscure x86 instructions.
445
446- Lots of other minor bug fixes.
447
sewardj626fd892003-07-16 20:10:26 +0000448- We have a decent regression test system, for the first time.
449 This doesn't help you directly, but it does make it a lot easier
450 for us to track the quality of the system, especially across
451 multiple linux distributions.
452
453 You can run the regression tests with 'make regtest' after 'make
454 install' completes. On SuSE 8.2 and Red Hat 9 I get this:
455
456 == 84 tests, 0 stderr failures, 0 stdout failures ==
457
458 On Red Hat 8, I get this:
459
460 == 84 tests, 2 stderr failures, 1 stdout failure ==
461 corecheck/tests/res_search (stdout)
462 memcheck/tests/sigaltstack (stderr)
463
464 sigaltstack is probably harmless. res_search doesn't work
465 on R H 8 even running natively, so I'm not too worried.
466
467 On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
468
469 == 84 tests, 2 stderr failures, 1 stdout failure ==
470 corecheck/tests/pth_atfork1 (stdout)
471 corecheck/tests/pth_atfork1 (stderr)
472 memcheck/tests/sigaltstack (stderr)
473
474 You need to run on a PII system, at least, since some tests
475 contain P6-specific instructions, and the test machine needs
476 access to the internet so that corecheck/tests/res_search
477 (a test that the DNS resolver works) can function.
478
sewardj9d916ed2003-07-14 23:38:40 +0000479As ever, thanks for the vast amount of feedback :) and bug reports :(
480We may not answer all messages, but we do at least look at all of
481them, and tend to fix the most frequently reported bugs.
482
483
484
sewardj37918822003-05-05 01:05:09 +0000485Version 1.9.6 (7 May 2003 or thereabouts)
486~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
487
488Major changes in 1.9.6:
489
490- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
491 RedHat 9, to name but two ...) It turned out that 1.9.5
492 had problems with threading support on glibc >= 2.3.2,
493 usually manifested by threaded programs deadlocking in system calls,
494 or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
495 is the first valgrind which gives reasonable support for
496 glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
497
498- Majorly expanded FAQ.txt. We've added workarounds for all
499 common problems for which a workaround is known.
500
501Minor changes in 1.9.6:
502
503- Fix identification of the main thread's stack. Incorrect
504 identification of it was causing some on-stack addresses to not get
505 identified as such. This only affected the usefulness of some error
506 messages; the correctness of the checks made is unchanged.
507
508- Support for kernels >= 2.5.68.
509
510- Dummy implementations of __libc_current_sigrtmin,
511 __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
512 good enough to keep alive programs which previously died for lack of
513 them.
514
515- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
516
sewardj3d47b792003-05-05 22:15:35 +0000517- Fix bug in the DWARF2 debug line info loader, when instructions
518 following each other have source lines far from each other
519 (e.g. with inlined functions).
520
sewardj37918822003-05-05 01:05:09 +0000521- Debug info reading: read symbols from both "symtab" and "dynsym"
522 sections, rather than merely from the one that comes last in the
523 file.
524
525- New syscall support: prctl(), creat(), lookup_dcookie().
526
527- When checking calls to accept(), recvfrom(), getsocketopt(),
528 don't complain if buffer values are NULL.
529
530- Try and avoid assertion failures in
531 mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
532
533- Minor bug fixes in cg_annotate.
534
535
536
sewardj90238792003-05-05 00:23:42 +0000537Version 1.9.5 (7 April 2003)
538~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539
540It occurs to me that it would be helpful for valgrind users to record
541in the source distribution the changes in each release. So I now
542attempt to mend my errant ways :-) Changes in this and future releases
543will be documented in the NEWS file in the source distribution.
544
545Major changes in 1.9.5:
546
547- (Critical bug fix): Fix a bug in the FPU simulation. This was
548 causing some floating point conditional tests not to work right.
549 Several people reported this. If you had floating point code which
550 didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
551
552- Partial support for Red Hat 9. RH9 uses the new Native Posix
553 Threads Library (NPTL), instead of the older LinuxThreads.
554 This potentially causes problems with V which will take some
555 time to correct. In the meantime we have partially worked around
556 this, and so 1.9.5 works on RH9. Threaded programs still work,
557 but they may deadlock, because some system calls (accept, read,
558 write, etc) which should be nonblocking, in fact do block. This
559 is a known bug which we are looking into.
560
561 If you can, your best bet (unfortunately) is to avoid using
562 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
563 If your glibc is 2.3.1 or earlier, you're almost certainly OK.
564
565Minor changes in 1.9.5:
566
567- Added some #errors to valgrind.h to ensure people don't include
568 it accidentally in their sources. This is a change from 1.0.X
569 which was never properly documented. The right thing to include
570 is now memcheck.h. Some people reported problems and strange
571 behaviour when (incorrectly) including valgrind.h in code with
572 1.9.1 -- 1.9.4. This is no longer possible.
573
574- Add some __extension__ bits and pieces so that gcc configured
575 for valgrind-checking compiles even with -Werror. If you
576 don't understand this, ignore it. Of interest to gcc developers
577 only.
578
579- Removed a pointless check which caused problems interworking
580 with Clearcase. V would complain about shared objects whose
581 names did not end ".so", and refuse to run. This is now fixed.
582 In fact it was fixed in 1.9.4 but not documented.
583
584- Fixed a bug causing an assertion failure of "waiters == 1"
585 somewhere in vg_scheduler.c, when running large threaded apps,
586 notably MySQL.
587
588- Add support for the munlock system call (124).
589
590Some comments about future releases:
591
5921.9.5 is, we hope, the most stable Valgrind so far. It pretty much
593supersedes the 1.0.X branch. If you are a valgrind packager, please
594consider making 1.9.5 available to your users. You can regard the
5951.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
596are no plans at all for further releases of the 1.0.X branch.
597
598If you want a leading-edge valgrind, consider building the cvs head
599(from SourceForge), or getting a snapshot of it. Current cool stuff
600going in includes MMX support (done); SSE/SSE2 support (in progress),
601a significant (10-20%) performance improvement (done), and the usual
602large collection of minor changes. Hopefully we will be able to
603improve our NPTL support, but no promises.
604