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